Skip to main content
Condition steps let you branch your journey based on contact behavior or attributes. Send different messages to different segments.

How Conditions Work

A condition step evaluates a rule and routes contacts to different branches:
Condition: Has clicked?
    ↓ Yes (true)      ↓ No (false)
   Branch A          Branch B

Condition Types

Did the contact click any link since enrolling?
Type: Clicked
Scope: Any link
Timeframe: Since enrollment
Use case: Reward engaged users, follow up with non-clickers. Did they click a specific offer/link?
Type: Clicked
Scope: Specific offer
Offer: summer_sale
Timeframe: Since enrollment
Use case: Different follow-up based on interest.

Custom Field Value

Does a field match a value?
Type: Custom field
Field: state
Operator: equals
Value: "California"
Use case: Region-specific messaging.

Time-Based

How long since enrollment?
Type: Time since enrollment
Operator: greater than
Value: 7 days
Use case: Different messaging for contacts who’ve been around longer.

Setting Up a Condition

  1. Add a condition step
  2. Configure the rule
  3. Define the “Yes” branch steps
  4. Define the “No” branch steps
  5. Merge branches or exit separately

Visual Example

Step 1: Send "Welcome"

Step 2: Wait 3 days

Step 3: Condition - Clicked welcome offer?
    ↓ Yes                    ↓ No
Step 4a: Send "Thanks!"   Step 4b: Send "Don't miss out"
    ↓                         ↓
Step 5a: Exit             Step 5b: Wait 2 days

                          Step 6b: Send "Last chance"

                          Step 7b: Exit

Multiple Conditions

Chain conditions for complex logic:
Condition 1: Clicked?
    ↓ Yes        ↓ No
   Exit       Condition 2: State = CA?
                ↓ Yes        ↓ No
              Send CA offer  Send General offer

Condition Operators

OperatorUse WithExample
equalsText, numberstate = “CA”
not equalsText, numberplan != “premium”
containsTextemail contains “@gmail”
greater thanNumberrevenue > 100
less thanNumberclicks < 3
is setAnyphone_number is set
is not setAnyemail is not set

Best Practices

Every branch doubles complexity. Keep journeys manageable with 1-2 conditions.
Every branch should eventually reach an exit step. Avoid infinite loops.
Ensure both Yes and No branches work correctly before activating.
What if the condition can’t be evaluated? (Missing data, etc.)

Examples

Clicker vs Non-Clicker

Wait 2 days → Condition: Clicked?
→ Yes: Exit (already engaged)
→ No: Send reminder → Wait 2 days → Send final offer → Exit

VIP Treatment

Condition: Lifetime revenue > $500
→ Yes: Send VIP welcome → Exit
→ No: Send standard welcome → Continue normal journey

Geographic Targeting

Condition: State = California
→ Yes: Send CA-specific offer
→ No: Send general offer

Merging Branches

Sometimes branches should reconverge:
Condition
  ↓ Yes      ↓ No
Step A     Step B
    ↘    ↙
   Merged Step C

      Exit
Configure by pointing both branches to the same next step.

Next Steps