Abandoned checkout recovery on WhatsApp, honestly
Build it — but build it fifth, and know what it costs before you switch it on.
An abandoned checkout recovery flow waits a set time after Shopify reports an abandoned cart, then sends the customer a reminder containing their checkout link. It is the most written-about WhatsApp automation in ecommerce, and the one with the most constraints left out of the writing.
Three of them decide whether this flow is right for your store, so they go first.
The three constraints
- It is a marketing template, not a utility one. An abandoned checkout is not a completed transaction, and the message exists to cause a purchase. Merchants expect this to qualify as utility because it references a specific basket; it does not.
- It is charged, every time, to every recipient. Marketing templates are charged whether or not a conversation window is open, per Meta's pricing documentation.
- US phone numbers will not receive it at all. Meta's documentation states that US numbers cannot receive marketing template messages. If you sell to the United States, this flow does not work there — see what's left for US stores.
Build it fifth, not first. Order confirmation, shipping updates and order-status answering are utility flows: free inside an open window, deliverable everywhere, and welcomed. Cart recovery is the one that costs money on every send. Get the free ones working before you start paying.
The flow
Two nudges, and only if they stay quiet
They engaged. Do not chase a conversation you are already in.
One more, then stop.
Install this flow
You'll need Shopify connected and an approved marketing template carrying the checkout link.
Add this automation to my account It installs as a draft. Nothing is switched on and no customer is messaged until you press Publish.How long should you wait?
There is no researched answer we can point you at, and you should be suspicious of anyone who offers one with a decimal point in it. What we can offer is the reasoning.
| Delay | Argument for | Argument against |
|---|---|---|
| 15–30 minutes | Catches them while intent is live | Many are still shopping; reads as surveillance |
| 1 hour | They have genuinely left; still same-session memory | — |
| 4–6 hours | Feels less pushy | Intent has cooled |
| 24 hours | Good as a second message | Too late as a first |
One hour for the first, roughly a day for the second, and no third. Test it against your own data rather than ours — and be aware that any published cart-recovery percentage you find is almost certainly vendor marketing rather than a study.
Should the first message include a discount?
Usually not, and the reason is commercial rather than moral. A discount in the first reminder teaches customers that abandoning a cart produces a coupon, and a share of the people who receive it would have completed anyway — so you have paid for a message and discounted a sale you already had.
A defensible structure is: first reminder with no discount, second reminder with one only if your margin supports it. Better still, use the second message to answer the objection rather than to cut the price — shipping cost, delivery time and payment options abandon more carts than price does.
The collision to design around
A customer abandons a checkout and completes the order twenty minutes later. Your one-hour reminder then tells them they left something behind. It is a small thing that makes a store look careless.
The Has the Customer Replied? branch in the flow above handles the case where they engaged in chat. For the case where they simply completed the order on your website, the practical guard is a longer first delay and a check that the customer is not also in your order-confirmation flow that hour. Flow collisions are covered in how many automations a store should run.
Opt-in is not optional here
Because this is marketing, consent matters in a way it does not for order updates. Meta requires an opt-in stating that the person is opting in to receive communication from your business and naming the business, per its opt-in documentation — and in the UK and EEA, GDPR and ePrivacy set a higher bar than Meta's.
A separate, unticked checkbox at checkout for offers, distinct from the one for order updates, is the structure that satisfies both. See opt-in rules.
Measuring it without fooling yourself
Any recovery flow will report impressive numbers, because a share of the people it messages would have returned regardless. The only honest measurement is a holdout: exclude a random slice of eligible customers for a period and compare conversion between the two groups.
If you cannot run a holdout, at least compare recovered revenue against message spend rather than counting recovered carts. Measuring whether your automation works goes through it.
Where it goes wrong
- Template rejected as the wrong category — submit it as marketing from the start.
- Every US recipient fails with error 131049 — that is the marketing pause, and there is nothing to fix.
- The checkout link is empty — a variable that resolves to nothing produces error 132000 and the customer receives nothing at all.
- Rising opt-outs — you are sending too many, or to people who never agreed.
Writing the message
A cart reminder is interrupting someone who chose not to buy, so the useful question is what would change their mind rather than how to say "you forgot something" more insistently.
| Instead of | Try | Why |
|---|---|---|
| "You left items in your cart!" | "Still thinking about the {{1}}? Here's your basket: {{2}}" | Names the product; assumes deliberation, not forgetfulness |
| "Complete your purchase now" | "Any questions before you order? Just reply here." | Invites a reply, which opens a free window |
| "Last chance — 10% off!" | "Free delivery over {{1}}, and returns are free for 30 days." | Answers the real objection instead of discounting |
The middle row is worth dwelling on. A reminder that asks a question and gets a reply opens the 24-hour window, after which you can answer objections, send photographs and follow up as much as the conversation warrants — all free, none of it a template, none of it counted against per-user marketing limits. One charged message buys a day of unrestricted selling.
Why people actually abandon
Before adding a second reminder, it is worth being honest that most abandonment is not indecision about the product. The common causes are shipping cost appearing late, delivery time being longer than expected, a payment method the customer does not have, an account being required, or simple comparison shopping.
Only some of those are fixable with a message, and none of them is fixable with a discount that does not mention them. A reminder that names your delivery time and returns policy addresses two of the five directly. If your abandonment is concentrated at the payment step, the fix is a payment option, not a WhatsApp flow.
Where cash-on-delivery markets differ
The cart-recovery playbook is written for markets where the order is paid at checkout, so abandonment happens before you have anything. In markets where cash on delivery dominates, most of the equivalent loss happens after the order — the customer places it and then refuses at the door.
That means the highest-value flow for a cash-on-delivery store is not this one. It is order confirmation, which catches the same lost revenue at a point where you have a real order to save and have not yet paid a courier. Build that first, and treat cart recovery as the second priority rather than the headline.
A pre-launch checklist
- Shopify connected and abandoned-checkout events confirmed arriving.
- A marketing template approved, carrying the checkout link as a variable.
- Marketing opt-in collected separately from order-update consent — see opt-in rules.
- A reply check before the second message, so people already in conversation are not chased.
- A frequency cap, so a repeat browser is not messaged weekly.
- A decision about US customers, who will not receive this at all.
How many reminders is too many
Two is the practical ceiling, and the second should only go to people who did not engage with the first. A third reminder converts very little and reliably produces opt-outs and blocks, which damage the quality rating that governs how many people you can reach at all.
A useful test before adding another message: would you send it if you had to hand it to the customer personally? Cart recovery is one of the few flows where merchants routinely send something they would never say face to face, and the platform's feedback mechanisms are unusually good at noticing.
There is also a cost you cannot see: each send is charged whether or not it is read, and marketing sends compete for a per-user allowance shared across every business messaging that customer. Chasing hard makes the next campaign less likely to land — for you and for the messages you actually need delivered.
Frequently asked questions
Is an abandoned cart reminder a utility or marketing template?
Marketing. An abandoned checkout is not a completed transaction and the message exists to cause a purchase, so it is charged on every send and cannot be delivered to US numbers.
How long should I wait before the first cart reminder?
About an hour is a defensible default — long enough that they have genuinely left, soon enough that they remember. There is no independently researched figure, so test against your own data.
Should the first reminder include a discount?
Usually not. It teaches customers that abandoning produces a coupon, and discounts sales you would have had anyway. Save it for a second message, or answer the real objection instead.
How do I know cart recovery is actually working?
Run a holdout — exclude a random slice of eligible customers and compare conversion. Without one, the flow claims orders that would have arrived anyway.