Skip to main content
This guide walks through creating a welcome journey from scratch.

Step 1: Create the Journey

  1. Navigate to Journeys
  2. Click New Journey
  3. Enter a name: “Welcome Series - Main List”

Step 2: Configure Triggers

Triggers define when contacts enter the journey.

Trigger Type: List Membership

The most common trigger—enter when joining a list:
Trigger: Contact added to list
List: Main Marketing List

Trigger Type: Custom Field

Enter based on a field value. The operator field is required:
Trigger: Custom field matches
Field: signup_source
Operator: eq
Value: "website"
Valid operators for custom field triggers:
OperatorMeaning
eqEquals
neNot equals
inValue is in a list
not_inValue is not in a list
existsField exists on the contact
containsField contains substring

Multiple Triggers

Triggers are organized using a JourneyTriggerGroup structure that supports nested logic:
TriggerGroup:
  operator: AND          # AND or OR
  conditions:
    - type: list
      list_id: "main_marketing_list"
    - type: custom_field
      field: signup_source
      operator: eq
      value: "website"
  groups:                # Optional nested groups
    - operator: OR
      conditions:
        - type: custom_field
          field: referral_source
          operator: eq
          value: "partner_a"
        - type: custom_field
          field: referral_source
          operator: eq
          value: "partner_b"
Each JourneyTriggerGroup has:
  • operator: AND or OR — how to combine the conditions and nested groups
  • conditions: Array of individual trigger conditions
  • groups: Optional array of nested JourneyTriggerGroup objects for complex logic
Only contacts matching the full trigger group will enter the journey.

Step 3: Add Steps

Click Add Step to add each journey step.

Send Message Step

Deliver a message:
  1. Click Add Step > Send Message
  2. Select a creative or define an inline message
  3. Optionally select an offer binding
Step: Send Message
Creative: "Welcome - 10% Off"
Offer: welcome_discount
You can also define messages inline directly in the step instead of referencing an existing creative:
Step: Send Message
Inline Message:
  body: "Welcome to {{brand_name}}! Use code WELCOME10 for 10% off: {{link1}}"
Inline messages support the same template variables as creatives ({{brand_name}}, {{linkN}}).

Wait Step

Pause before the next step:
  1. Click Add Step > Wait
  2. Set duration and unit
Step: Wait
Duration: 24
Unit: hours

Condition Step

Branch based on behavior:
  1. Click Add Step > Condition
  2. Configure the condition
  3. Define Yes and No branches
Step: Condition
Type: Has clicked
Timeframe: Since enrollment

Yes branch: → Go to step 5
No branch: → Go to step 6

Wait Until Step

Wait until a specific time of day before proceeding:
  1. Click Add Step > Wait Until
  2. Set the target time (HH:MM)
Step: Wait Until
Time: "09:00"
This is different from a regular wait step, which pauses for a duration. wait_until holds the contact until the next occurrence of the specified time (e.g., 9:00 AM).

Set Custom Field Step

Set a custom field value on the contact’s ListContact record:
  1. Click Add Step > Set Custom Field
  2. Specify the field key and value
Step: Set Custom Field
Field: onboarding_stage
Value: "completed_welcome"
Use this to tag contacts as they progress, enabling audience segmentation and trigger conditions in other journeys.

Unsubscribe Step

Unsubscribe the contact from the list:
  1. Click Add Step > Unsubscribe
Step: Unsubscribe
The contact will be unsubscribed from the sending list associated with the journey. Use this at the end of a branch when a contact should no longer receive messages.

Exit Step

End the journey:
  1. Click Add Step > Exit
Step: Exit

Step 4: Connect Steps

Steps flow sequentially by default. Use conditions to create branches.

Linear Flow

Step 1 (Send) → Step 2 (Wait) → Step 3 (Send) → Step 4 (Exit)

Branching Flow

Step 1 (Send)

Step 2 (Wait 2 days)

Step 3 (Condition: Clicked?)
   ↓ Yes        ↓ No
Step 4 (Exit)  Step 5 (Send reminder)

               Step 6 (Exit)

Step 5: Review and Activate

Preview

Before activating:
  1. Click Preview
  2. Review the flow visually
  3. Check trigger conditions
  4. Verify creatives are correct

Activate

  1. Click Activate
  2. Journey starts enrolling new matching contacts
  3. Existing contacts are NOT enrolled (only new matches)
Activating a journey is immediate. Make sure everything is configured correctly.

Example: Simple Welcome Series

Let’s build a 3-message welcome:
1

Create journey

Name: “Simple Welcome Series”
2

Set trigger

List: Main Marketing List
3

Step 1: Send welcome

Creative: “Welcome! Here’s 10% off your first order.”
4

Step 2: Wait 24 hours

Duration: 24 hours
5

Step 3: Send bestsellers

Creative: “Check out our bestsellers”
6

Step 4: Wait 3 days

Duration: 3 days
7

Step 5: Send offer

Creative: “Last chance: 15% off expires today”
8

Step 6: Exit

End the journey
9

Activate

Turn on the journey

Editing Active Journeys

You can edit active journeys, but be careful:
ChangeEffect
Add step at endSafe - affects future enrollees
Change creativeAffects enrollees who haven’t reached that step
Change timingAffects future waits, not in-progress waits
Change triggerOnly affects new enrollments
Delete step⚠️ May break in-progress enrollments
For major changes, create a new journey version and sunset the old one.

Monitoring Journeys

Enrollment Stats

View in the journey dashboard:
  • Total enrollments
  • Active enrollments (in progress)
  • Completed
  • Exited early

Step Performance

See metrics per step:
  • How many reached this step
  • Conversion to next step
  • Drop-off rate

Troubleshooting

Check:
  • Is the journey active?
  • Do contacts match trigger conditions?
  • Are they already enrolled (one enrollment per journey)?
Check:
  • Is the contact still subscribed?
  • Is the creative active?
  • Are there sending list issues?
Wait steps process on schedule. Check:
  • Is the job server running?
  • Is next_step_at set correctly?

Next Steps

Conditions

Add branching logic

Wait Steps

Timing best practices