Multi-step journeys that actually run.
The campaign canvas isn't just a picture. A journey enrolls each member once and advances them through the steps over time — sends, waits and A/B branches executed per member — and reports how each node performed. Same consent rules and send engine as a single campaign; the journey just adds the sequence.
How a journey runs
Enroll → advance → measure.
Enroll once
Members enter one of two ways — a segment resolved when the journey starts, or a live trigger event (a checkout abandoned, an order paid, a new sign-up, a member gone quiet) that enrolls that single member the moment it fires. Either way each member is enrolled once, and their A/B branch is decided deterministically at enrollment so their path is stable.
Advance over time
A scheduler advances each enrollee through the canvas: send a message node; hold at a wait node until its delay elapses — or at a reactive wait-for-event node that releases the moment the member acts, up to a timeout; follow the member's branch; then continue — one member at a time, on their own clock. Condition- and segment-based decision splits are judged on the member's state at the moment they reach the split — after any waits — so "wait three days, then route by whether they purchased" routes on what actually happened, not a stale snapshot from enrollment.
Measure per node
Every node entry and send is logged, so the campaign's Flow tab shows a per-node funnel: entered → sent, what was skipped, and where members drop off. An optional journey-level holdout arm measures incremental lift (treatment vs a held-out control), and goal conversions carry attributed revenue.
Start from a proven flow
Templates and triggers, not a blank canvas.
Five DTC flows, ready to run
A starter library ships with the engine — Welcome & Onboarding, Abandoned Cart Recovery, Post-Purchase → Repeat, Replenishment Reminder, and Win-Back Lapsed Members — each a complete multi-step canvas you tune, not a blank page.
Or describe it in plain language
Tell the AI the outcome you want and it drafts the journey — entry trigger, steps, waits and messages — as an editable canvas you review before anything runs.
Trigger-based entry
Beyond a segment, a journey can enter members from a live behavior — a checkout abandoned, an order paid, a new sign-up, a member gone inactive — enrolling that one member the moment the event fires.
Goals & exit rules
Set a conversion goal (say, a purchase) and exit conditions; a member who converts or meets an exit rule leaves the journey early, and the goal surfaces in the per-node conversion analytics.
Recurring, without the spam
Recurring flows (birthday, abandoned-cart, replenishment) re-enter a member only after their previous run has ended and a per-journey cooldown has passed; a member with a live run never re-enters, so the journey recurs without over-messaging.
Per-node analytics
See exactly which step loses people.
Every node logs who entered and who was actually sent (the gap = held back for consent or frequency). The Flow tab turns that into a funnel per node.
{
"enrollments": { "active": 120, "completed": 640, "exited": 40, "total": 800 },
"nodes": [
{ "nodeId": "welcome-email", "entered": 800, "sent": 786, "skipped": 14 },
{ "nodeId": "day3-followup", "entered": 640, "sent": 590, "skipped": 50 }
]
}Guarantees
Built on the campaign engine you already trust.
Consent at every step
Each node's send goes through the same delivery path as a normal campaign — unsubscribe and marketing-consent withdrawal are checked per member, per step. A member who opts out mid-journey stops receiving the rest.
One enrollment per member
A member is enrolled at most once per journey (unique per campaign+member), and each node send is idempotent — a retry or an overlapping scheduler tick never double-sends.
Reuses the send engine
Journey sends ride the existing channel plan (email / push / SMS) — the same rendering, tracking and deliverability as single-send campaigns. Journeys add the sequencing, not a second send stack.
Live, with a kill switch
The journey engine runs in production by default; a single environment switch disables it, falling back to single sends with no change to existing behavior. Every journey send also passes the same frequency cap, quiet hours, topic opt-out and per-team send quota as a normal campaign.