Fundamentals
Journey Builder lets you automate sequences of interactions across channels — email, SMS, push notification, advertising — based on who a customer is and how they behave. Unlike a one-off send, a journey is a living programme that contacts flow through over time.
When to use Journey Builder vs Email Studio
| Use case | Use |
|---|---|
| One-off newsletter or promotion | Email Studio send |
| Welcome series for new subscribers | Journey Builder |
| Post-purchase follow-up sequence | Journey Builder |
| Abandoned cart reminder | Journey Builder |
| Re-engagement campaign | Journey Builder |
| Timezone-aware scheduled send | Journey Builder (send at optimal time) |
| Triggered transactional email | Journey Builder or Triggered Send |
Journey statuses
| Status | Meaning |
|---|---|
| Draft | Being built — no contacts, not live |
| Running | Live — contacts can enter and are being processed |
| Paused | No new contacts enter; existing contacts continue their path |
| Stopped | All processing halted — contacts freeze at their current activity |
| Finished | Journey completed naturally (e.g. single-run journey exhausted) |
Entry sources
Entry sources define how contacts enter the journey. The entry source is always the first block on the canvas.
| Entry source | How contacts enter | Best for |
|---|---|---|
| Data Extension | Contacts in a specified DE are injected on a schedule (hourly, daily, etc.) | Welcome series, re-engagement, date-based triggers |
| API Event | An API call injects a single contact in real time | Real-time triggers (sign-up, purchase, app event) |
| Salesforce Data | Contacts enter based on Salesforce CRM object changes (requires MC Connect) | Sales lifecycle journeys, CRM-triggered comms |
| Audience | A Salesforce Audience Studio segment enters the journey | Audience-based journeys using advertising data |
| CloudPages | Form submission on a Cloud Page enters the contact | Sign-up journeys, event registrations |
| Inbound Chat | Triggered by a Messaging conversation event | Conversational journeys |
Entry schedule and re-entry
For DE-based entry sources, set how often SFMC checks the DE for new entries (e.g. daily at 8am). Configure re-entry rules:
- No re-entry — a contact can only enter once ever (use for welcome series)
- Re-entry anytime — a contact can re-enter whenever they appear in the entry DE (use for recurring triggers like birthday emails)
- Re-entry after exit — a contact must fully exit before they can enter again
Activity types
Message activities
| Activity | What it does |
|---|---|
| Sends an email from Content Builder to the contact | |
| SMS | Sends an SMS via MobileConnect |
| Push notification | Sends a push via MobilePush |
| In-app message | Displays an in-app message in your mobile app |
| LINE | Sends a LINE message (Japan/APAC) |
Flow control activities
| Activity | What it does |
|---|---|
| Wait by Duration | Pauses the contact for a fixed time period (e.g. 3 days, 1 hour) |
| Wait until Date | Holds the contact until a specific date (e.g. their subscription renewal date) |
| Wait until Event | Holds the contact until they perform a specific action (e.g. click a link, make a purchase) |
| Random Split | Randomly assigns contacts to paths (useful for holdout groups) |
| Engagement Split | Branches based on whether the contact interacted with a previous message |
| Decision Split | Branches based on contact data attributes |
Data activities
| Activity | What it does |
|---|---|
| Update Contact | Updates a field in a Data Extension for this contact |
| Salesforce Activity | Creates or updates a Salesforce CRM record (requires MC Connect) |
| Fire Event | Fires an API event that can trigger another journey |
| Custom Activity | Calls your own web service endpoint with the contact's data |
Decision splits
Splits let you branch the journey based on data or engagement. They are one of the most powerful Journey Builder features.
Engagement Split
Evaluates whether a contact engaged with a specific previous message in the journey. You configure a lookback window (e.g. opened within 24 hours of Email 1). Path A = engaged, Path B = didn't engage.
Place an Engagement Split after a Wait activity that gives contacts enough time to engage. An Engagement Split placed immediately after an Email send will show near-zero engagement because contacts haven't had time to open the email yet.
Decision Split
Evaluates contact data attributes — fields from the entry DE, computed attributes, or Salesforce CRM data. Example paths:
- Path A: LoyaltyTier = "Gold" → send the Gold member email
- Path B: LoyaltyTier = "Silver" → send the upgrade offer
- Path C: everyone else → send the standard email
Decision Splits support up to 5 paths (Path A–E plus a default path).
Wait Until Event (Einstein Send Time Optimization)
A special Wait activity that holds a contact until they're most likely to engage, based on Einstein's analysis of their past behaviour. Requires Einstein Send Time Optimization to be enabled on your account.
Goals & exit criteria
Goal
A Goal defines what "success" looks like for a contact in the journey. When a contact meets the goal condition, they exit the journey immediately rather than continuing through remaining activities.
Example goals:
- Contact made a purchase (check against an OrdersDE)
- Contact upgraded their subscription tier
- Contact booked a demo
Goals are evaluated at each Wait activity and on a configurable schedule. Set a goal that can reasonably be expected during the journey's lifespan.
Exit criteria
Exit criteria remove contacts from the journey when a condition is met — regardless of where they are in the path. Common exit criteria:
- Contact unsubscribed
- Contact's data changed (e.g. country changed, making them out of scope)
- Contact purchased (if you don't have a Goal configured)
A Goal is a positive outcome — the contact achieved what you wanted. An Exit criterion is a condition that makes continuing the journey inappropriate. Both result in the contact leaving, but they're tracked separately in journey analytics.
Versions & updates
Running journeys cannot be edited. To make changes, you must create a new version. When you activate a new version:
- New contacts enter the new version
- Contacts already in the journey continue in the previous version until they exit
- You can have multiple versions running simultaneously during transition
For journeys with long paths (e.g. a 3-month onboarding series), consider pausing the old version once the bulk of contacts have passed the entry point, so they don't receive an outdated experience while contacts in the new version get an updated one.
Journey patterns
These are the most common journey architectures in SFMC.
Welcome series
Entry: DE-based, runs daily. Goal: first purchase within 14 days.
| Step | Activity | Timing |
|---|---|---|
| 1 | Email: Welcome & brand story | Immediately on entry (Day 0) |
| 2 | Wait: 1 day | |
| 3 | Email: Best sellers / top picks | Day 1 |
| 4 | Wait: 3 days | |
| 5 | Engagement Split: Opened email 2? | |
| 6a | Email: Exclusive first-purchase offer (clicked) | Day 4 |
| 6b | Email: Re-engagement nudge (didn't click) | Day 4 |
| 7 | Wait: 7 days → End | Day 11 |
Abandoned cart recovery
Entry: API Event fires when a cart is abandoned (typically from your e-commerce platform). Exit criteria: contact makes a purchase.
| Step | Activity | Timing |
|---|---|---|
| 1 | Wait: 1 hour (give them a chance to buy) | |
| 2 | Decision Split: Already purchased? | |
| 3 | Email: Cart reminder (no purchase path) | ~1hr after abandon |
| 4 | Wait: 23 hours | |
| 5 | Engagement Split: Clicked reminder email? | |
| 6a | Email: Offer/incentive (didn't click) | ~24hrs after abandon |
| 6b | End (clicked — they engaged, don't over-message) |
Re-engagement
Entry: DE query runs weekly to find subscribers with no engagement in 90 days.
| Step | Activity | Timing |
|---|---|---|
| 1 | Email: "We miss you" re-engagement | Day 0 |
| 2 | Wait until event: Click/open OR 7 days | |
| 3 | Engagement Split | |
| 4a | Update Contact: Mark as re-engaged → End | If engaged |
| 4b | Email: "Last chance" with unsubscribe prominent → End | If not engaged |
| 5b | Update Contact: Mark as sunset → suppress from future sends |
Journey analytics
Each running journey has a Journey Analytics tab showing contacts at each activity, engagement rates per email, and goal achievement rates.
Key journey metrics
- Contacts in journey — how many people have entered vs are still in progress
- Goal achievement rate — % who met the goal before completing the journey
- Per-email metrics — open, click, unsubscribe for each Email activity
- Path distribution — at each split, how many contacts went to each path
- Exit reasons — how many left via Goal, Exit criteria, or natural completion