Skip to main content

Journey Builder

The journey builder is a visual editor for designing the structure of a journey. It uses a drag-and-drop canvas where each node represents a step and connections define the execution order.

Builder Interface

The builder consists of three areas:

  • Node palette (left) — Drag step types onto the canvas.
  • Visual canvas (center) — Arrange and connect steps. Supports zoom, pan, and auto-layout.
  • Properties panel (right) — Configure the selected step's settings.

Node Types

Each node in a journey graph serves a specific role:

Node TypeDescription
TriggerEntry point of the journey. Defines when and how users enter (URL match, custom event, element click, or manual). See "Configuring Triggers".
ContentRenders a content item — a tooltip, beacon, announcement, survey, task list, or an existing flow. The journey advances when the user finishes it.
WaitPauses the journey for a fixed duration or until a specific calendar date.
Wait for EventPauses until the user performs a specific action, with an optional timeout for users who never do.
ConditionBranches into two or more paths based on user traits or past actions.
SplitDistributes users across two or more branches by percentage for A/B experimentation within a journey.
Goal CheckEvaluates whether the user has achieved a goal. Routes to a success or fallback path accordingly.
ExitEnds the journey. Every path must terminate at an Exit node. Multiple Exit nodes represent different outcomes.

Configuring Triggers

A Trigger node defines when and how users enter the journey. Select the trigger type and configure its matching criteria in the node's properties panel.

Trigger TypeFires whenAdditional config
URL MatchThe user visits a URL matching the pattern.URL pattern (e.g. /onboarding), match type (Contains / Exact / Starts With / Regex)
Custom EventA custom tracking event fires with the given name.Event name (e.g. user_signed_up)
Element ClickThe user clicks an element matching a CSS selector.CSS selector (e.g. button.get-started)
ManualThe journey is enrolled programmatically via the SDK.

Configuring Content Nodes

A Content node displays a specific piece of content and advances the journey when the user finishes it. In the properties panel, select the content type (flow, tooltip, announcement, survey, or task list) and then pick the specific item from your content library.

The journey pauses at the Content node until the user completes or dismisses the content, then continues to the next connected node.

Configuring Waits

Wait nodes accept the following delay options:

  • Fixed duration — Pause for a set number of hours or days (e.g., wait 3 days before the next step).
  • Until date — Pause until a specific calendar date and time.

Configuring Wait for Event

Wait for Event nodes pause the journey until the user performs a specific action:

  • Event name — The name of the custom event to wait for (e.g., user:feature_used).
  • Timeout — The maximum time to wait. If the user does not trigger the event within the timeout window, they continue down the timeout branch instead.

Every Wait for Event node has two outgoing connections: event received and timed out.

Configuring Splits

Split nodes distribute users across branches by percentage:

  • Define two or more outgoing connections from the Split node.
  • Assign a percentage weight to each connection (weights must sum to 100).
  • Assignment is deterministic — a user always takes the same branch across sessions.

Use splits to run A/B tests within a journey — for example, showing different onboarding flows to 50% of new users each.

Configuring Goal Checks

Goal Check nodes evaluate whether a user has achieved a defined goal and route them to a success or fallback path based on the result.

Goal TypeSucceeds when
Custom eventThe user has triggered a specific custom event.
Page visitThe user has visited a URL matching a specified pattern.
Attribute matchA user trait matches a condition (e.g., plan is Enterprise).
Flow completedThe user has completed a specific flow.

You can also set an optional deadline — a number of days from enrollment. Users who have not met the goal by the deadline are routed down the fallback branch.

Condition Branching

Condition nodes evaluate a rule and route the user down one of two or more paths:

  • User trait conditions — Branch based on attributes like role, plan, signup date, or custom properties (e.g., if a user's role is Admin, take path A; otherwise take path B).
  • Action conditions — Branch based on whether the user has performed a specific action (e.g., completed a flow, visited a page, clicked a button).
  • Default branch — Every condition node requires a default (else) branch for users who do not match any defined rule.

Connecting Nodes

  1. Hover over a node to reveal its connection handle.
  2. Drag from the handle to another node to create a connection.
  3. Label connections to describe the transition (e.g., "Flow Completed", "Score 8 or above").
  4. Rearrange nodes by dragging them on the canvas. The builder validates that no nodes are orphaned and that no infinite loops exist.