Abandoned Cart Recovery on WhatsApp: A Step-by-Step Automation Guide
The exact webhook, the REST endpoint, the message sequence and the consent rules — not just "WhatsApp increases conversions," but how the cart event actually reaches WhatsApp and back.
Last updated: September 17, 2026 · Technical details checked against current Shopify developer docs and WooCommerce plugin behavior
Quick answer: Shopify fires a checkouts/create webhook the moment someone starts checkout, and exposes an Abandoned Checkouts endpoint (REST, being superseded by a GraphQL abandonedCheckouts query) that includes a built-in recovery URL. WooCommerce has no equivalent built in — you need a plugin that polls for abandoned carts and posts the data to a webhook. Either way, the cart event needs to reach your WhatsApp Business API platform, trigger a template message within about an hour, and stop the moment the customer actually buys.
Why WhatsApp works for cart recovery
Cart abandonment is a near-universal ecommerce problem — most published estimates put it around 70% of carts industry-wide. What varies enormously is how well any given channel recovers those carts.
WhatsApp's advantage over email isn't a fixed number — reported recovery and conversion rates for WhatsApp cart recovery vary widely by market, vendor and how the message is built, from roughly 8% at the conservative end up to much higher claims from specific case studies. Treat any single "X% conversion" figure as a vendor's result, not a universal guarantee, and track your own numbers once live. The structural reason it tends to outperform email is consistent everywhere: messages are read within minutes rather than sitting unopened in an inbox, and a customer can reply immediately with the exact objection stopping them from buying — a delivery question, a sizing doubt, a COD concern — turning a passive reminder into an actual sales conversation.
Shopify: the checkouts/create webhook
Shopify has a specific, built-in concept of an abandoned checkout — a checkout where the customer provided contact information but didn't complete the purchase.
The checkouts/create webhook fires the moment a customer initiates checkout, which is the trigger most integrations use for cart recovery. Separately, Shopify's Abandoned Checkouts resource can be queried to list and count abandoned checkouts directly — useful for periodic syncs rather than pure webhook-driven flows. As of the 2024-10 API version, several REST fields on that resource were deprecated (cart_token, closed_at, currency, gateway, landing_site and others), with a newer abandonedCheckouts query on the Admin GraphQL API replacing the REST listing endpoint going forward — worth knowing before building new integrations on the older REST resource. The Admin REST API itself is now considered legacy, and new public apps are required to use GraphQL.
What the webhook payload gives you
Each abandoned checkout object tracks the customer's cart contents, pricing, addresses and timestamps, and — critically for recovery — includes a recovery URL that sends the customer straight back to a pre-filled checkout rather than the store homepage. That link is what should go in the WhatsApp message; sending someone to the homepage after they've already selected products just adds friction back in.
Webhook mechanics worth knowing
| Detail | What it means for your integration |
|---|---|
| Required headers | X-Shopify-Topic, X-Shopify-Hmac-SHA256 (signature), X-Shopify-Shop-Domain, X-Shopify-Webhook-Id, X-Shopify-Event-Id (for deduplication), X-Shopify-Triggered-At |
| Response requirement | Acknowledge with a 2xx response within 5 seconds; do heavy processing asynchronously afterward |
| Retry behavior | Failed webhooks are retried for up to 48 hours with exponential backoff; the subscription is removed after 19 consecutive failures |
| Scope required | orders access scope for the Abandoned Checkouts resource |
For the broader pattern of wiring a store event to an outbound WhatsApp message — not just Shopify specifically — see how to integrate WhatsApp Business API into your software, CRM and apps, and for building the actual trigger-to-template automation, the n8n automation workflows guide covers connecting webhooks like this one into a working flow without custom backend code.
WooCommerce: no native event, so a plugin
This is the part that catches people out coming from Shopify: WooCommerce doesn't track abandoned carts at all out of the box.
There's no built-in "abandoned cart" webhook topic or REST endpoint in core WooCommerce. To get cart-abandonment data, you need a dedicated plugin that detects abandonment — typically by checking on a schedule (commonly every 5 minutes via a cron job) whether a cart has been updated recently — and then posts the captured data to a webhook URL you control, as a JSON payload.
What a typical payload looks like
{
"user_id": 123,
"email": "[email protected]",
"phone": "+92XXXXXXXXXX",
"billing_address": { ... },
"cart_items": [ ... ]
}
That phone field is exactly what a WhatsApp automation needs to trigger the recovery template — provided it was captured with consent in the first place. Some newer WooCommerce cart-recovery plugins go further and expose their own REST API endpoints (authenticated through WooCommerce's REST API) so you can pull abandoned-checkout lists and summary stats directly, rather than relying purely on the webhook push.
Practical implication: a Shopify integration can often be built by subscribing to an existing webhook topic. A WooCommerce integration almost always means installing and configuring a cart-tracking plugin first — there's no way around that extra step, since the platform simply doesn't generate the event on its own.
The 3-message sequence that actually gets used
Across the markets and vendors covered in this research, the same basic sequence structure keeps showing up — timing and content differ slightly, but the shape is consistent.
- ~1 hour after abandonment: a plain reminder — product name, product image, exact price, direct link back to the cart. No discount, no marketing content. This is usually a utility message.
- ~24 hours: address a likely objection — delivery timing, COD confirmation, sizing, return policy — rather than repeating the same reminder.
- ~48–72 hours: a small incentive, sent only to contacts with marketing opt-in. This message is a marketing template and priced and governed accordingly.
Cap it at three messages per abandoned cart, and suppress the entire sequence the instant the order-confirmation event fires — a completed customer should never receive a stale "you left this in your cart" message afterward.
Utility vs marketing templates: the distinction that changes everything
This is the single most common technical mistake in cart-recovery setups, and it affects both cost and compliance.
A message that simply states what's in the cart and links back to it is generally treated as a utility message. The moment that same message adds a discount code or promotional incentive, it becomes a marketing message — a different template category, priced differently by Meta, and one that requires its own explicit opt-in separate from any consent given for order updates.
India's rate card makes the gap concrete: a plain cart-nudge utility template runs around ₹0.115 per message, while the same message with a discount attached — now classified as marketing — runs around ₹0.8631, roughly 7.5 times more, and is subject to Meta's marketing frequency cap on top of that. The lesson generalizes well beyond India: know which category each message in your sequence falls into before you build it, not after a compliance review flags it.
UAE, Pakistan, India, UK & more
UAE — PDPL consent plus COD verification
UAE ecommerce cart recovery sits alongside COD verification as one of the most common WhatsApp automations in the market — retailers and marketplace sellers commonly run both through the same number. Effective UAE recovery setups keep marketing opt-in PDPL-compliant, respect opt-outs immediately, and generally limit recovery to one message per abandoned-cart event rather than escalating. For the underlying COD confirmation pattern this often runs alongside, see WhatsApp API for COD ecommerce order confirmation and RTO reduction.
Pakistan — COD-first, so recovery and confirmation overlap
Pakistani ecommerce is heavily COD-driven, which makes cart recovery and order confirmation two sides of the same automation rather than separate projects: a cart-recovery message that converts a hesitant COD shopper to a confirmed, prepaid order (via a WhatsApp payment link with a small incentive) reduces both abandonment and return-to-origin risk in one flow. For the CRM side of managing that volume, see WhatsApp CRM Pakistan.
India — the clearest documented rate structure
India has the most explicit published breakdown of the utility/marketing split described above, plus a well-established sequence: utility reminder at 1 hour, utility follow-up with help offered at 24 hours, marketing incentive at 72 hours to opted-in contacts only. Indian D2C brands report recovering roughly 8–20% of opted-in abandoned carts through this pattern, against a commonly cited 2–5% for email — figures worth treating as directional benchmarks to test against your own data, not guarantees.
UK — PECR consent, and an honest data gap
UK sellers face a specific legal distinction: PECR Regulation 22 permits sending abandoned-cart email reminders to existing customers under a "soft opt-in," but WhatsApp marketing messages need their own explicit consent captured separately — existing customer status alone isn't enough. Worth being upfront about: UK-specific published conversion-rate data for WhatsApp cart recovery is genuinely thin, since most published benchmarks come from Indian and Brazilian markets with different WhatsApp usage patterns. A conservative planning estimate sits somewhere in the 8–15% range, but UK sellers should treat that as a starting point to validate against their own results, not an imported guarantee.
USA, Bangladesh & Australia
The mechanics — webhook, sequence, utility/marketing split — don't change by market. What changes is the consent layer: general opt-in-before-marketing-message principles apply everywhere, Australia sits under the Spam Act 2003's consent and opt-out requirements, and Bangladesh-specific published guidance on this exact use case is thin enough that the safest approach is to apply the same opt-in discipline as everywhere else rather than assume a lighter-touch rule exists.
For pricing across all of these markets in one place, see the 2026 WhatsApp API pricing guide, and for keeping a number healthy once marketing-category recovery messages are going out at volume, protecting your WhatsApp quality rating is worth reading before launch.
Good vs bad cart-recovery setup
❌ Bad
- Sends a marketing-style discount message with no separate opt-in.
- Links back to the store homepage instead of the actual cart.
- No suppression — keeps messaging after the customer already bought.
- WooCommerce store with no cart-tracking plugin at all — nothing fires.
✅ Good
- Utility reminder at 1 hour, objection-handling at 24, opted-in incentive at 72.
- Uses the actual recovery URL / pre-filled cart link, not the homepage.
- Sequence stops the moment the order webhook confirms purchase.
- Consent captured and stored with a timestamp, separate from order-update opt-in.
Frequently asked questions
Does Shopify have a built-in webhook for abandoned carts?
Does WooCommerce have a native abandoned cart API?
Is a WhatsApp abandoned cart message a marketing or utility template?
Do I need separate consent for WhatsApp cart recovery messages?
How fast should the first WhatsApp cart recovery message go out?
Wire the cart event to WhatsApp properly, once
The webhook, the sequence and the consent layer are the whole system. Get those three right and the recovery numbers follow.
Explore WhatsApp for Ecommerce →

