Automated journeys are everywhere now — but most of them are just dressed-up drip campaigns. A real journey is different: it reacts to what your customer does, in real time, and it gets better the more it runs.
Here's the playbook we use when teams ask us where to start.
Start with the moment, not the message
Too many journeys start with "what email do we send on day three?" Flip that around and start with a customer moment:
- A new signup who hasn't activated.
- A power user about to churn.
- A shopper who abandoned their cart twice.
Every moment is an opportunity to observe a signal and respond. That's the raw material of a good journey.
Keep the state machine in your head
A journey is a state machine. The customer enters, moves between states based on events, and eventually exits.
signup -> activated -> onboarded
signup -> inactive -> re-engaged
signup -> churned -> win-back
If you can draw the states on a whiteboard, you can build the journey. If you can't, you're not ready to automate yet.
Let the agent do the branching
The boring work in journey design is the branching logic. Should a user who opens every email get a different experience than one who never opens? Yes — and that's exactly the kind of decision an agent can make for you.
def route(user):
if user.engaged_30d and not user.on_paid_plan:
return "upsell"
if user.activation < 0.4:
return "onboarding_boost"
return "maintain"
Measure what the journey changes
The easiest metric is sends. The most honest metric is lift. Compare a control group to the journey audience and measure the difference in activation, retention, or revenue.
If you can't say what a journey changes, you can't say it works.
Start small, compound fast
Build one journey, watch it run, then build the next. Intelligence compounds — every interaction teaches the system something that makes the next message sharper.
Want to see how it fits together? Book a walkthrough with our team.