# Journeys

> Build ongoing, automated campaigns that run for each customer based on a trigger event or segment.

A Journey is an ongoing automated campaign. Once active, it runs automatically for every customer who meets the entry condition — you don't need to send it manually. Use Journeys for welcome series, re-engagement flows, birthday messages, and any campaign that should repeat for each customer individually.

> **Plan** Available on Growth and above (Omnichannel module). Journey limits vary by plan: 25 on Growth, 75 on Business, effectively unlimited on Enterprise.

## Open Journeys

Go to `/business/:id/marketing` and click the **Journeys** tab, or open **Omnichannel** in the sidebar and select **Journeys**.

<!-- screenshot: the Journeys list view showing journey names, status badges (Active/Paused/Draft), and last-updated dates -->

## How a journey works

A journey has three building blocks:

| Block | What it does |
|---|---|
| **Entry trigger** | The condition that enrolls a customer — joining a segment, submitting a form, or a specific event. |
| **Steps** | Messages (Email, SMS, WhatsApp, Telegram, Push) sent along the way. |
| **Delays and splits** | Wait a set time between steps, or branch based on whether a customer is in a segment. |

Customers move through the steps in order. Once they exit (reach the end or leave the entry segment), they don't re-enter until the journey is paused and restarted, or you use a new entry condition.

## Create a journey

You can create a journey two ways:

- **AI Generator** — describe the campaign and let the AI build the journey. See [AI Campaign Generator](ai-campaign-generator).
- **Template Library** — start from a pre-built journey. See [Template Library](template-library).

To build directly in the journey editor, click **+ New journey** on the Journeys tab.

## Entry triggers

Every journey requires an entry trigger. The supported trigger types are:

| Trigger type | When a customer enters |
|---|---|
| **Segment** | When a customer joins (or is already in) a specific segment. |
| **Form submission** | When a customer submits a specific form. See [Attach a form to a journey](attach-a-form-to-a-journey). |
| **Event** | When a tracked event fires for that customer. |

> **Important** A journey that uses a Segment entry with a split node must use a segment that the journey itself can evaluate. If you see a validation error on deployment, check that the entry segment exists and is correctly named.

## Add steps, delays, and splits

Inside the journey editor:

1. Click **+ Add step** to add a message node. Select the channel (Email, SMS, WhatsApp, Telegram, Push) and choose or create a template.
2. Click **+ Add delay** between steps to wait a set number of hours or days.
3. Click **+ Add split** to branch the journey based on segment membership. Customers in the segment take the "true" branch; others take the "false" branch.

## Activate, pause, and archive

| Action | What it does |
|---|---|
| **Activate** | The journey starts enrolling customers immediately. |
| **Pause** | Stops new enrollments; customers already in-flight continue. |
| **Archive** | Removes the journey from the active list. Cannot be undone from the UI. |

To change the status, open the journey and use the status control at the top of the editor, or use the **⋯** menu on the Journeys list.

> **Note** You cannot edit the entry trigger of an active journey. Pause the journey first, make your changes, then reactivate.

## Segments {#segments}

Segments are the groups of customers that journeys and broadcasts target. Manage them on the **Segments** tab of **Omnichannel** (`?component=segments`). See also [Customers](../customers/index).

## Next steps

- [Broadcasts](broadcasts) — one-time sends to a segment.
- [Attach a form to a journey](attach-a-form-to-a-journey) — trigger a journey from a form submission.
- [Marketing analytics](marketing-analytics) — view per-journey performance.
- [Channels](channels/index) — set up the channels your journey steps send through.
