Abandoned cart recovery starts with a reliable unfinished-purchase event and a reliable purchase exit. Send a helpful reminder to an eligible shopper, check again before the next message and stop when they buy. Start without an automatic discount so you can understand whether the problem is timing, checkout friction or price.
Use email or WhatsApp according to the customer's permission. Give checkout recovery priority over generic campaigns, assign an owner for replies and check purchase status before every send.
Distinguish an abandoned cart from an abandoned checkout
Adding an item to a basket and entering contact details at checkout are different events. A visitor who taps “add to cart” may still be comparing sizes. A checkout starter has moved further through the buying process and may have left usable contact information.
Klaviyo's abandoned cart documentation, updated in October 2026, explains cart and checkout triggers and the need to exclude completed purchases. Check the event your integration actually records. Do not name a flow “checkout recovery” if it is triggered by a product view.
Open a test profile and follow the event trail. Start a checkout, wait for the event to appear, complete the order and confirm the purchase arrives. Note the delay between the store event and its appearance in the messaging system. Your first reminder needs enough room for that sync delay as well as ordinary customer behaviour.
If you cannot identify or contact a shopper with permission, leave them out of direct-message recovery. Anonymous carts can still reveal checkout problems in aggregate, but a basket event does not create permission to send marketing.
Remove duplicate recovery messages
List every automation that could contact a checkout starter. Include Shopify, the email provider, a WhatsApp provider and any recovery app. Klaviyo explicitly advises turning off default platform recovery messages when replacing them with its flow to avoid duplication.
Choose one owner for the sequence. Decide whether email and WhatsApp are alternatives or a coordinated journey. Sending the same reminder through both channels at the same moment gives the customer duplicate work.
Before switching anything off, save the current flow and check whether messages are already queued. Assign someone to verify the handover. The new journey should have a named owner and a written rule for what happens when the customer replies or completes the purchase.
Start with a helpful recovery sequence
Example sequence for an Indian D2C store, measured from checkout start. Adjust the delays to your product, working hours and event sync.
| Elapsed time | Message job | Check before sending |
|---|---|---|
| Around 2 hours | Restore the checkout and offer help | No purchase; valid contact permission; working cart link |
| Around 24 hours | Answer a likely buying concern | Still eligible; item available; no unresolved reply |
| Around 48 hours | A final useful reminder or a selective offer test | No purchase; incentive allowed; no misleading expiry |
You do not need every stage. Begin with the first reminder and inspect actual customer replies. If people ask about delivery charges, make those charges clearer at checkout. If they ask whether a colour is available, improve the stock information.
The follow-up should add information. Repeating “you left something behind” with a new subject line does not answer a size question. Link the relevant size guide, delivery estimate or return policy close to the primary action.
Use a real expiry only when the offer actually expires. Do not imply that a normal basket is reserved if stock is not held for that shopper. A calm reminder can work without a countdown or a fabricated shortage.
Write an abandoned cart WhatsApp message carefully
The WhatsApp Business Messaging Policy, updated 23 September 2026, requires the person's contact details and opt-in permission for subsequent contact. Business-initiated conversations use approved templates. Free-form replies are allowed within the customer service window, which runs for 24 hours from the user's last message; outside that window approved templates are required.
A checkout action on your website does not open that service window. Do not assume that having a phone number is enough. Keep evidence of what the person agreed to receive and honour requests to stop.
Example message to submit in your provider's marketing template format:
Hello from our store. Your selected storage set is still in your basket. Return to checkout using the button below. If delivery or sizing is unclear, reply and our team can help. Reply STOP to stop these reminders.
Replace the sender description with the actual business name before use. Check that the item and button match the event. Submit the completed template for approval before enabling the flow.
Meta classifies abandoned cart reminders as marketing, including reminders without a coupon. The WhatsApp Business API guide explains categories and billing. Have a person available to handle replies before asking customers to start a conversation.
Check every exit before turning the flow on
The purchase filter matters more than a polished subject line. In a checkout flow, verify that a purchase since entry makes the shopper ineligible for later recovery messages. Inspect cancellation and refund paths separately; they should not accidentally restart an abandoned-checkout discount sequence.
Run these cases with staff-owned test contacts:
- Start checkout and place an order during the first delay. No recovery promotion should arrive after the purchase is recorded.
- Start checkout and unsubscribe before the next send. Optional marketing should stop.
- Change a variant or quantity. The reminder must use the intended current or event-based basket, with no stale price promise.
- Let a component go out of stock. The link should not promise an available product that cannot be bought.
- Reply with a support problem. The contact should move into the agreed support treatment rather than receiving an unhelpful reminder.
Test the cart link on a phone in a fresh browser. Check that it opens the right store and preserves valid items. If the platform rebuilds an expired cart rather than restoring a checkout, verify the resulting prices and explain that behaviour internally.
Keep the flow paused until the event trail and exits pass these tests. Confirm that a completed purchase reaches the messaging platform before the next scheduled send.
Calculate recovery rate with one denominator
Define an abandonment window before reporting results. Then group unique checkout attempts that meet that definition. Decide how you deduplicate repeated starts from one shopper and state whether test checkouts or invalid contacts are excluded.
Example calculation: 500 unique eligible checkouts remained incomplete after your chosen abandonment window. Within the following 7 days, 40 of those checkouts became qualifying orders.
Recovery rate for that defined cohort is 40 divided by 500, or 8%. This measures observed recovery after abandonment. Use a comparable holdout group to measure how many orders the reminders added.
If only 300 of the 500 received a message, do not divide all 40 recovered orders by 300 and call the result a send conversion rate. Match the numerator to the exact recipient group. Label delivery-based and checkout-based metrics separately.
The cart abandonment rate uses carts created, while a checkout abandonment rate uses checkout starts. Keep event names beside both formulas. Missing event coverage can make a neat percentage misleading.
Test discounts on contribution, not attributed revenue
A recovery order still pays for the product and delivery. A discount also reduces the money available to cover those costs. Compare the eligible group receiving an offer with a comparable group receiving the reminder without the offer, where your audience supports a useful test.
For a hypothetical basket, assume ₹1,500 in tax-exclusive product revenue, ₹600 product cost, ₹120 fulfilment and packaging and ₹30 payment and contact costs. Contribution before returns and overhead is ₹750. A ₹150 coupon reduces it to ₹600 if other costs stay the same.
At those assumptions, 10 full-price recovered orders contribute ₹7,500. You would need more than 12 discounted orders to exceed that amount, because 12 multiplied by ₹600 is ₹7,200. Compare the settled contribution from both groups before extending the offer.
Keep returns, cancellations and coupon leakage in the review. Stop the test if a broken exit sends offers after purchase. Inspect customer complaints alongside the settled revenue. A recovery flow should finish an unfinished purchase without teaching every shopper to abandon checkout for a discount.
For the wider journey, place recovery within the ecommerce email flow plan. Once an order is completed, the next useful job is product help and an appropriate route into the second-order retention plan.
Questions, answered.
What should an abandoned cart WhatsApp message say?
Identify the business and the item clearly. Offer a valid return link and a way to ask for help or stop messages. Use the approved template required for the situation and contact only people with the necessary permission.
How do I calculate abandoned cart recovery rate?
Define an eligible group of unique abandoned checkouts and a fixed recovery window. Divide checkouts from that group that later become qualifying orders by the original eligible group. State exclusions and do not count message recipients as the denominator unless you label it separately.
What is the abandoned cart rate formula?
For a consistently tracked cohort divide carts that did not become orders within the chosen window by total carts created in that cohort. A checkout abandonment rate uses started checkouts instead. These are different funnel stages.
How do I start abandoned shopping cart recovery?
Confirm the event and purchase tracking first. Remove duplicate automations and test purchase and unsubscribe exits. Start with a helpful reminder before testing a selective incentive.
Sources: Klaviyo abandoned cart flow documentation; WhatsApp Business Messaging Policy updated 23 Sep 2026. Checked 06 Nov 2026. Sequence timings and copy are practitioner starting points.