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.
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.