The usual pitch for marketing automation is that it saves time. That is true and it is the least interesting thing about it.
The real argument is timing. A shopper abandons a cart at 11pm on a Tuesday. Nobody is going to notice, look up what they left, and write to them — but an automation will, an hour later, with the right products in the message. Automation is the only way to be present at the moment intent is highest, for every customer, indefinitely.
This guide covers how flows are actually constructed, the six worth building first, and the production details — exit conditions, re-entry rules, identity — that decide whether a flow earns money or quietly embarrasses you.
The anatomy of a flow
Every automation, in every tool, is the same five parts. Understanding them separately is what lets you debug one.
1. Trigger
The event that starts enrollment: added to cart, started checkout, placed an order, subscribed, viewed a product. A flow does nothing until an event arrives that matches its trigger.
2. Entry conditions
Filters applied at the moment of the trigger. "Started checkout and cart value is over $100" behaves very differently from "started checkout", and lets you justify an expensive channel for high-value carts only.
3. Delays
The wait between steps. This is where most of the tuning happens, and the rule is that the delay should match how fast the intent decays — hours for a cart, days for a welcome series, weeks for a win-back.
4. Branches
Conditional splits that send different people down different paths. The genuinely useful ones are simple: did they open the previous message, is this their first order, is the cart above your threshold. Two-way splits on facts you can rely on beat elaborate trees on data you cannot.
5. Exit conditions
The events that remove someone mid-flow. Most flows need at least one, and getting this wrong is the most damaging mistake in the whole category — enough that it gets its own section below.
The six flows to build first
1. Abandoned cart
Trigger: added to cart, no purchase since. Exit: purchase.
Baymard Institute's aggregate of published studies puts cart abandonment at roughly seven in ten, which makes this the largest single pool of recoverable revenue most stores have. Two or three messages: a reminder with the actual cart contents within a few hours, a follow-up that answers the real objection, and optionally a final nudge with a deadline.
Resist the urge to lead with a discount. A meaningful share of abandonment is distraction, not price — those people convert on a reminder, and discounting them costs you margin you did not need to spend.
2. Abandoned checkout
Trigger: checkout started, not completed. Exit: purchase.
Worth separating from cart abandonment because the intent is much higher and the failure is usually mechanical — shipping cost at the last step, a payment method that was not offered, a forced account creation. Address those directly in the message rather than repeating the product pitch.
3. Welcome series
Trigger: subscribed. Exit: first purchase, optionally.
Three to five messages over the first week. Set expectations, explain what makes your product different, show proof, then give a reason to buy. If someone purchases at message two, either exit them or branch them into post-purchase — continuing to sell the first order to someone who placed it is a small failure people notice.
4. Post-purchase
Trigger: order placed. Exit: order cancelled or refunded.
Order confirmation, shipping update, a usage or care email timed to arrival, then a review request a week or two later. This flow does double duty: it builds the repeat purchase and it deflects a real share of "where is my order" support tickets.
WhatsApp is often the better channel here. Order and shipping updates are exactly the kind of message people are glad to receive on it, and utility-category messages are cheaper to send than marketing ones.
5. Browse abandonment
Trigger: product viewed repeatedly, no cart add. Exit: cart add or purchase.
One message, helpful in tone. Someone looking at the same product three times usually has an unanswered question — sizing, materials, delivery time, returns. Answer it rather than repeating the price.
6. Win-back
Trigger: days since last order crosses your lapsed threshold. Exit: purchase.
Set the threshold from your own repeat purchase interval, not a default. Two or three messages spread over a few weeks: what is new, then a reason to come back, then a genuine last attempt before you suppress them for good.
Exit conditions: the part everyone skips
An abandoned-cart flow with no exit condition will, reliably, message customers about the thing they just bought. It is the fastest way to look like you are not paying attention, and it happens because exits are easy to forget: the flow works perfectly in testing, where you never complete a purchase.
Rules worth applying:
- Every recovery flow exits on purchase. Cart, checkout, browse — no exceptions.
- Post-purchase flows exit on cancellation or refund. "How are you enjoying your order?" to someone who returned it is worse than silence.
- Win-back exits on any order. The moment they are back, they belong in the normal programme.
- Consider a global suppression for recent buyers. Someone who ordered yesterday probably should not receive a promotional flow today, whatever triggered it.
Test exits deliberately: enroll yourself, then complete the goal action, then confirm the remaining messages do not arrive. That test takes ten minutes and is the highest-value one in this entire guide.
Re-entry rules and duplicate triggers
Two production problems that only appear once a flow is live.
Duplicate events. Platform webhooks are not guaranteed to fire exactly once. A fulfilment webhook can arrive twice, and a naive flow sends two shipping notifications. The fix is a short re-entry cooldown — an hour is usually enough — so a repeat trigger for the same contact is absorbed rather than acted on.
Re-entry policy. If a shopper abandons a cart in March and again in June, should they get the sequence twice? For cart recovery, yes — it is a new intent. For a welcome series, absolutely not. Set this per flow rather than accepting a default, and set a cooldown even where re-entry is allowed, or a shopper who repeatedly adds and removes items will get messaged repeatedly.
Identity: who can actually be enrolled
This is the constraint that surprises people most, and it explains most "why is my flow reaching nobody" questions.
A flow can only enroll a shopper the triggering event can identify — the event has to carry an email address or a phone number. An anonymous visitor who browses, adds to cart, and leaves without ever giving you either cannot be enrolled, no matter how well the flow is built.
What raises the identified share:
- Capture email early — a newsletter signup, an account, or a first-step checkout field, rather than only at payment.
- Make sure your tracking passes identity through. An event that fires but carries no email is invisible to enrollment even though it appears in your analytics.
- Stitch sessions. If a shopper identifies themselves at checkout, earlier events in the same session can be attributed to them retrospectively — which turns a browsing session into an enrollable one.
Check this number before you blame the flow. Events arriving and events carrying identity are two different measurements, and only the second one produces enrollments.
Common mistakes
- Building ten flows before validating one. Each live flow is something that can go wrong silently. Get two right, then add.
- No exit conditions. Covered above, and worth repeating because it remains the most common failure.
- Delays copied from a template. A template's timing was tuned for someone else's purchase cycle. Yours is different.
- Branching on data you rarely have. A split on a field that is empty for most contacts sends almost everyone down the default path — and you will not notice, because it still looks like it is working.
- Never auditing live flows. Catalogs change, templates get archived, integrations get disconnected. A flow that worked in January can be silently failing in June. Review each one quarterly.
- Overlapping flows. A shopper who abandons a cart during a welcome series can end up in both. Decide which one wins and enforce it, or they get four messages in a day.
How CampGain runs flows
In CampGain, a flow is an event-triggered campaign built on a visual canvas, separate from scheduled blast campaigns because the two behave differently.
- Start from a template or from scratch. Ready-made flows cover abandoned cart, abandoned checkout, welcome series, post-purchase, review request, win-back, and a transactional WhatsApp set for order confirmation, shipping, and delivery — each shipping with sensible timing and exit events already configured.
- Drag-and-drop graph builder. Message nodes, delays, and conditional splits on a canvas, so the flow you see is the flow that runs.
- Exit events on the trigger. Purchase exits a cart flow; cancellation and refund exit a transactional one. Configured on the flow, not bolted on per message.
- Re-entry cooldowns so duplicate platform webhooks do not produce duplicate messages.
- A readiness panel that checks a flow before you activate it — message nodes with no template chosen, channels with no connected provider, nodes nothing can reach, and abandonment flows with no exit event. Clicking a warning jumps to the node that caused it.
- Mixed channels in one journey. A flow can send email, then WhatsApp, then SMS, using the same merge variables and the same synced Shopify catalog throughout.
- Event ingestion built in — a storefront pixel and Shopify webhooks feed the events that trigger enrollment, with a live feed so you can confirm they are arriving and carrying identity before you go live.
See how flows and campaigns fit together.
Start with one
Build abandoned cart. Two messages, an exit on purchase, and a test where you enroll yourself and then complete the purchase to confirm the second message does not arrive.
Let it run for a month and measure revenue per enrollment. That single flow usually justifies the whole exercise — and it teaches you the mechanics you will reuse on every flow after it. For how these flows fit alongside scheduled sends, see our multi-channel campaign guide; for the audiences behind them, the segmentation guide.