> ## Documentation Index
> Fetch the complete documentation index at: https://docs.switchbord.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Journeys

> Automated, multi-step WhatsApp conversation flows — triggers, branching logic, and where journeys fit in the data model.

Journeys are Switchbord's automation primitive for multi-step conversations — onboarding sequences, abandoned-cart reminders, drip campaigns, automated surveys. Where a [Campaign](/features/campaigns) is a one-shot send to an audience, a journey is a graph: a contact enters at a trigger, moves through message and wait steps, branches on conditions, and can reach a goal.

This page is the overview. For the graphical editor itself — canvas, node types, versioning — see the [Graphical Journey Editor](/whatsapp/journey-editor) deep-dive.

## How a journey is built

Journeys are authored on a visual canvas (built on React Flow) where you drag, drop, and connect nodes:

<CardGroup cols={2}>
  <Card title="Message node" icon="message">
    Sends a specific WhatsApp template or free-text message to the contact.
  </Card>

  <Card title="Wait node" icon="hourglass">
    Pauses the journey for a set duration before continuing — e.g. "wait 2 hours".
  </Card>

  <Card title="Condition node" icon="code-branch">
    Branches the flow based on logic such as "if button clicked" or "if tag exists".
  </Card>

  <Card title="Goal node" icon="flag-checkered">
    Marks successful completion of a conversion event, tracked in the journey's performance stats.
  </Card>
</CardGroup>

Edges connect nodes and represent the path a contact takes — a single node can branch into multiple edges triggered by different customer actions (a button click, a keyword reply).

## Real-time execution

Journeys react to incoming webhooks as they happen. When a contact interacts with a message — clicking a button, replying with a keyword — the journey engine evaluates the relevant condition immediately and advances the contact to the next node, without a polling delay.

## Drafts and publishing

New journeys start in **Draft** mode, where you can build and test the graph without affecting any live contacts. When you publish a new version, you choose whether contacts already partway through the previous version finish it as-is or migrate onto the new logic — so you can iterate on a live journey without disrupting contacts mid-flow.

## Performance monitoring

Every node in a published journey shows live stats: how many contacts **entered** that step, how many **dropped** (stopped progressing), and how many **converted** onward toward a goal. This makes it straightforward to spot the exact step where a flow is losing people.

## Data model

Journeys are stored as `journeys` records, with contact progress tracked against the definitions in `templates` (for message steps) and the core `conversations`/`messages` ledger for execution history. See [Data Model](/platform/data-model#templates-campaigns-and-journeys) for how journeys relate to templates, campaigns, and the rest of the schema.

## Drafting with Margaret

You can describe a journey in plain language and ask [Margaret](/features/margaret) to draft the graph shape for you — she proposes a structure you review and approve before it's created, the same draft-and-approve pattern used for templates and replies.

## See also

* [Graphical Journey Editor](/whatsapp/journey-editor) — the canvas, node types, and versioning in full detail.
* [Data Model](/platform/data-model) — how `journeys` fits with `templates`, `campaigns`, and the message ledger.
* [Campaigns](/features/campaigns) — the one-shot alternative to a multi-step journey.
* [Automations](/features/automations) — how journeys combine with Margaret's automation capabilities.
