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_stageto "active" after they complete onboarding - Increment
scoreby 10 when they engage with an email - Set a custom field like
last_journey_completedfor 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:
countryequals "US" → send US-specific offer on Yes pathscoregreater than 80 → VIP treatment on Yes pathplan_typeequals "free" → send upgrade pitch on Yes pathphoneis 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_dateminus 3 days → send trial ending warning - Wait until
birthday→ send birthday email - Wait until
renewal_dateminus 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:
- The action runs (or condition is evaluated)
- The contact moves to the next connected step
- 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.