Skip to main content

Journey Steps Reference

This is your complete guide to every step available in the journey builder. Steps are organized into three groups — the same way they appear in the builder sidebar.

Actions — Do Something

Send Email

The most-used step. Sends an email to the contact currently moving through the journey.

You'll configure:

  • Step name — label for your reference (e.g., "Welcome Email")
  • Subject line — what shows in the inbox
  • From name / From email — sender identity
  • HTML content — the email body, with full support for merge tags ({{firstName}}, {{email}}, etc.)
  • SMTP Connection — which email provider sends it

Works exactly like campaign emails — same merge tags, same editor.

Update Field

Changes a value on the contact's profile. Useful for tagging contacts based on their journey behavior.

Common uses:

  • Set lifecycle_stage to "active" after they complete onboarding
  • Increment score by 10 when they engage with an email
  • Set a custom field like last_journey_completed for your records

Add to List

Adds the contact to a list. Use this to move people between lists based on what they do in the journey.

Example: After a welcome series, add contacts to your "Onboarded" list so you can target them differently in future campaigns.

Remove from List

Removes the contact from a list.

Example: Remove from "Prospects" list once they complete the purchase journey.

Fire Webhook

Sends an HTTP POST request to an external URL with the contact's data. This is how you connect journeys to outside tools.

Use cases:

  • Notify your CRM when a contact reaches a milestone
  • Trigger a Slack alert when someone completes a journey
  • Send data to your analytics platform
  • Kick off a process in Zapier, Make, or n8n

Logic — Make a Decision

All logic steps create a Yes/No fork in the flow. The contact goes down one path based on whether the condition is true or false.

Condition

Checks a field on the contact's profile against a value you set.

You'll configure:

  • Field — which contact field to check
  • Operator — equals, not equals, contains, greater than, less than, is set, is not set, etc.
  • Value — what to compare against

Examples a marketer would use:

  • country equals "US" → send US-specific offer on Yes path
  • score greater than 80 → VIP treatment on Yes path
  • plan_type equals "free" → send upgrade pitch on Yes path
  • phone is set → include SMS follow-up info on Yes path

Email Engagement

Checks whether the contact engaged with a specific email within this journey.

You'll configure:

  • Event — opened, clicked, or not opened
  • Step — which Send Email step to check

This is the bread and butter of journey branching. "Did they open Email #1?" → Yes: move forward → No: send a reminder.

Segment Check

Checks if the contact currently belongs to a specific segment.

Since segments are always up-to-date (they recalculate in real time), this evaluates against the contact's current data — not where they were when they entered the journey.

Example: Check if the contact is in your "High-Value Customers" segment → Yes: send exclusive offer → No: send standard offer.

Event Condition

Checks if a specific email event happened for this contact, optionally filtered to a specific campaign and time window.

You'll configure:

  • Event type — opened, clicked, bounced, etc.
  • Campaign (optional) — limit to a specific campaign
  • Time window — within the last N hours/days/months

Example: "Did this contact click any email in the last 7 days?" → Yes: they're active → No: they need re-engagement.

Flow — Control Timing and Endings

Wait

Pauses for a fixed amount of time before the contact moves to the next step.

You'll configure:

  • Duration — a number
  • Unit — minutes, hours, days, or weeks

Best practices:

  • Welcome series: 2–3 days between emails
  • Cart abandonment: 1 hour for the first reminder
  • Re-engagement: 5–7 days between attempts

Wait Until

Pauses until a specific date stored in the contact's profile.

You'll configure:

  • Date field — which contact field contains the date
  • Offset (optional) — before or after that date

Examples:

  • Wait until trial_expiry_date minus 3 days → send trial ending warning
  • Wait until birthday → send birthday email
  • Wait until renewal_date minus 7 days → send renewal reminder

Wait for Event

Pauses until the contact does something — with a timeout so they don't get stuck forever.

You'll configure:

  • Event type — what you're waiting for (e.g., "clicked")
  • Timeout — maximum time to wait
  • Timeout path — where to send the contact if the event doesn't happen

Example: After sending a promo email, wait up to 24 hours for a click. If they click → fast-track to thank-you email. If timeout → send a reminder instead.

Exit

Ends the journey for this contact. They're marked as "completed" and (depending on your re-entry rules) may or may not be eligible to enter again.

Every path in your journey should eventually reach an Exit step — or a dead end (a step with no outgoing connection), which works the same way.

How Steps Execute

When a contact reaches a step:

  1. The action runs (or condition is evaluated)
  2. The contact moves to the next connected step
  3. If the next step is a delay, they wait there

Every contact moves through the journey independently. You might have thousands of contacts at different steps in the same journey at the same time — each one tracked separately.