Creating Journeys
Journeys are multi-step orchestrated experiences that guide users through complex workflows over time. Unlike individual flows (which run within a single session), journeys span multiple sessions and can include delays, conditions, and branching logic.
Journeys vs. Flows
| Flows | Journeys | |
|---|---|---|
| Scope | Single session, single page or feature | Multiple sessions, multiple features |
| Duration | Seconds to minutes | Hours to weeks |
| Steps | Tooltips, modals, beacons | Content items (including flows), surveys, wait periods, conditions |
| Use case | Feature walkthrough, tooltip tour | Onboarding program, training path, adoption campaign |
Creating a Journey
- Navigate to Content > Journeys in the dashboard.
- Click Create New Journey.
- Enter a name and description.
- Open the journey builder to add and connect steps (see Journey Builder).
- Configure enrollment rules (see Enrollment below).
- Click Publish when ready to launch.
Journey Statuses
Every journey has a lifecycle status that controls whether it accepts new enrollments:
| Status | Description |
|---|---|
| DRAFT | Journey is being designed. No users are enrolled. |
| PUBLISHED | Journey is live. New users matching the enrollment criteria are enrolled automatically. |
| PAUSED | Journey is temporarily suspended. Enrolled users stop progressing but retain their position. |
| ARCHIVED | Journey is hidden from the active list. Historical data remains accessible. |
Per-user state (whether a given user is
ACTIVE,COMPLETED,STOPPED, orARCHIVEDwithin the journey) is tracked separately as enrollment status and is returned byGET /api/journeys/:id/enrollments.
Enrollment
Control how users enter a journey:
- Auto-enroll -- Automatically enroll users who match a target audience. New users who satisfy the audience rules are enrolled as soon as the journey is
PUBLISHED. - Manual enrollment -- Enroll specific users or user lists via the dashboard or API.
Users can only be enrolled in a given journey once. If a user exits early, you can choose whether to allow re-enrollment.
Anonymous Enrollment
Set allowAnonymous: true on the journey to enroll users who have not yet been identified via DAP('identify'). The SDK can then call /sdk/journeys/:id/enroll and /sdk/journeys/:id/progress with an anonymousId instead of a userId. Use this for top-of-funnel onboarding (e.g., marketing-site visitors) where you do not yet have a stable user identifier. Anonymous enrollments are stitched to a real user record once the visitor identifies.