Chapter 1
Customer journeys trigger messages from user behavior, not a schedule. Learn how they differ from campaigns, why they matter, and the nodes that build them.

Last updated: July 2026
A customer journey is a series of automated messages triggered by what a user does in your product: a welcome when they sign up, a follow-up when they activate a key feature, a check-in when they go quiet, an escalation to account management when expansion signals appear. A journey platform runs all of it automatically, across every channel, without custom engineering per flow.

Most journey builders use a visual canvas: a graph where every step is visible at once, from the trigger that starts a run to the nodes that branch, wait, and send. It keeps a multi-step lifecycle readable for the whole team, and edits to steps, copy, and timing ship without a deploy.
Each tool has a different relationship with timing and behavior.
A fixed campaign sends the same sequence to everyone on schedule: day 3 intro, day 7 feature highlight, day 14 expiration warning. The user who activated on day 2 still gets the day-3 "here's how to use it" note, and the power user still gets the churn-prevention sequence. The schedule can't see what the user did, so the message lands at the wrong moment.
An event-driven journey adapts. Activation fires its branch and the generic onboarding stops. When an account hits a limit, the upgrade prompt arrives right then, not three weeks later on a calendar.
| Customer journey platform | Marketing automation | Email campaigns | |
|---|---|---|---|
| Triggers | Product events, behavioral signals | Form submissions, time-based | List segments, manual |
| Response time | Sub-second event processing | Minutes to hours | Batch, often daily |
| Best for | Lifecycle messaging, activation, retention | Lead nurture, campaign management | Announcements, newsletters |
| Non-technical access | Visual builder for PMs and lifecycle teams | Campaign designers | Email composers |
| Channels | Email, in-app, SMS, push, Slack, Teams | Primarily email | Email only |
The strongest stacks use both: a journey platform for behavior-driven messaging, campaign tools for broad announcements.
The point is to let your product respond on the user's timeline, not yours. Someone activates a feature at 11pm and the follow-up arrives when it's relevant, not when a nightly batch runs. Someone stalls mid-onboarding, and the journey notices and follows up instead of marking them complete.
The outcomes are concrete: higher trial-to-paid conversion from well-timed activation guidance, less churn from catching disengagement early, and more expansion from prompting upgrades when accounts approach a limit. Iteration also leaves the engineering queue, so lifecycle teams ship experiments faster. Companies that get personalization right generate 40% more revenue than those that don't, and in B2B software that gap shows up directly in conversion and retention. Teams like LaunchDarkly, Twilio, and DroneDeploy run this lifecycle messaging on Courier; Chapter 3 covers how.
The same patterns repeat across the lifecycle, whether you build developer tools, project management software, or a healthcare platform:
Chapter 4 turns each of these into a production-ready blueprint, including industry variants for SaaS, healthcare, HR tech, and marketplaces.
A journey is a graph of nodes, and each node does one thing:
Triggering a journey is a single API call or a Segment event. Everything downstream (which messages go out, in what order, on which channels) lives in the journey, not your application code, so you reshape the flow without touching the trigger. Chapter 2 builds a full journey around that, from trigger to send.
| Term | What it means |
|---|---|
| Customer journey | A sequence of automated messages and actions triggered by user behavior across channels. |
| Trigger | The entry point that starts a journey run, from a Segment event or an API call. |
| Node | A single step in a journey (trigger, branch, delay, throttle, fetch, AI, send, or exit). |
| Branch | A node that evaluates conditions and routes a user down one of several paths. |
| Throttle | A control that limits how often a journey can send to a user in a time window. |
| Digest | A single summary message that rolls up many events collected over a time window, instead of one message per event. |
| Experiment | A single send split across 2 to 10 weighted template variants, with results per variant; you promote one manually once you've seen enough. |
| Run | One user's execution of a journey, with its own state and inspectable history. |
| CDP | A customer data platform (like Segment) that collects behavioral events and routes them to tools such as a journey builder. |
| Omnichannel | Coordinated delivery across several channels (email, in-app, SMS, push, Slack, Teams) from one journey; also called multi-channel messaging. |
| Preference management | User-controlled settings for which messages they receive and on which channels. |
A customer journey is a sequence of automated messages triggered by user behavior rather than a fixed schedule. When a user signs up, activates a feature, hits a limit, or goes inactive, the journey responds with the right messages across the relevant channels, and stops when the user completes the intended action.
Use a journey when the right message depends on what a specific user actually did. Campaigns are the better fit for broad, time-based sends that go to everyone at once, like a newsletter or a launch announcement. Journeys are the better fit for behavior-driven lifecycle messaging: onboarding that adapts to activation, retention that reacts to a usage drop, expansion that fires when an account nears a limit.
A customer data platform collects behavioral events from your product and routes them to downstream tools. When you configure Courier as a destination in Segment, your application calls analytics.track("feature_activated", {...}), Segment forwards the event, and the matching journey starts immediately, with no custom webhook handlers and no batch-sync latency.
You need engineering once, to send events and trigger journeys; after that, product and lifecycle teams edit the flow on the visual canvas without a deploy. The trigger is an API call or a Segment event, and everything downstream (branches, timing, copy, channels) lives in the journey builder, so changing an onboarding sequence doesn't require a pull request.
© 2026 Courier. All rights reserved.