Abandoned cart recovery: how to win back lost sales
What causes abandoned carts and how to recover them over WhatsApp, email and SMS on Shopify and WooCommerce, with examples and two Hellotext playbooks.
An abandoned cart is a sale that stopped halfway: the shopper picked products, added them to the cart and left without paying. Across the 50 studies tracked by Baymard Institute, the average documented cart abandonment rate is 70.22%. Many of those shoppers were just browsing, but others needed an answer, a reminder or a shorter path to checkout.
This guide covers abandoned cart recovery best practices that work for any store, what Shopify and WooCommerce do out of the box, how to use WhatsApp, email and SMS without wearing customers out, and how to automate cart recovery with Hellotext's two playbooks: a fixed route included from the Starter plan, and an AI playbook that writes a different message for every cart.
What is an abandoned cart?
A cart is abandoned when a shopper adds products to an online store's cart and leaves without placing the order. That's different from an abandoned checkout: there, the shopper has already started paying and left their contact details.
The difference matters because it changes who you can contact:
Abandoned checkout.Shopify records an abandoned checkout when a customer enters their email at checkout and doesn't complete payment within ten minutes. Since you already have a contact, you can send a reminder.
Abandoned cart. The shopper never paid. To reach them, you need to know who they are: they're logged in, they're a subscriber, or you identified them earlier through WhatsApp, a form or a past order.
In Hellotext, a cart with products and no activity for 30 minutes is recorded as abandoned. If the shopper is identified, that event can start recovery. If they abandoned several carts at the same time, the highest-value one is used so they don't get two messages.
Why shoppers abandon their carts
In its latest study of abandonment reasons, Baymard found that 42% of US online shoppers had abandoned a cart because they were just browsing or not ready to buy. Setting that group aside, the most common reasons are:
Extra costs too high (shipping, tax, fees): 40%.
Delivery was too slow: 20%.
Didn't trust the site with their card details: 19%.
The site wanted them to create an account: 18%.
Checkout was too long or complicated: 17%.
The website had errors or crashed: 17%.
That leaves you two jobs. Part of the abandonment can be prevented at checkout: show costs up front, allow guest checkout, cut form fields and offer more payment methods. Baymard estimates the average large ecommerce site can gain a 35.26% increase in conversion rate through better checkout design alone. The rest is recovered afterwards, with a timely reminder that resolves whatever stopped the purchase.
How to recover abandoned carts: 10 best practices
Reach out while intent is fresh. Send the first reminder while the shopper still remembers what they picked, ideally the same day and at a reasonable hour. A message in the middle of the night feels intrusive.
Take shoppers back to their cart, not your homepage. Use a link that restores the cart or checkout with the products, size and quantity they chose. Every extra click is another chance to drop off.
Show what they left behind. Product name, photo and variant. A reminder that just says "you forgot something" makes the shopper work out what it was.
Offer one clear action. One button, such as "Finish purchase" or "View my cart". If you show several products, each can have its own button, as long as they all lead to the same checkout.
Discount only when it helps. If every reminder carries a discount, shoppers learn to abandon carts and wait for it. Start without an incentive, set a cap and save it for shoppers who need it, for example when shipping cost was the blocker.
Answer the question that stopped the purchase. Shipping, returns, sizing or payment methods. On a conversational channel like WhatsApp, invite a reply and make sure someone answers: your team or an AI agent.
Personalize with real data. Name, products and context such as available stock. Never invent urgency: if you say stock is low, it has to be true.
Stop once the shopper buys. Check for a purchase before every send and cap how many messages one person gets per week. Few things hurt trust like a reminder for something you already paid for.
Get consent and follow each channel's rules. Message only people who agreed to hear from your brand, identify yourself with your store's name and make opting out easy.
Measure recoveries, not just clicks. Compare attributed purchases with delivered messages, track how long purchases take and test one change at a time.
Here's the difference between a generic reminder and one that follows these practices: the second shows the product and size, and goes straight to checkout.
L
LumaWhatsApp
Hi! You left something in your cart. Head back to the store to finish your purchase.
Go to store
L
LumaWhatsApp
Ana, your Adidas Samba OG in size EU 38 are still in your cart. Go straight back to checkout to finish your purchase.
Finish purchase
Illustrative example from Luma, a fictional store: a generic reminder that links to the store, and one that shows the Adidas Samba OG in size EU 38 and links straight to checkout. Names and products are demonstration content.
Abandoned cart recovery on WhatsApp, email and SMS
There's no single best channel for cart recovery. Choose based on the consent you have and where your customer actually replies:
WhatsApp. Lets you show a product photo, buttons and product carousels, and customers can reply with a question. Meta requires prior opt-in that names your business and classifies cart reminders as marketing templates. Outside an open conversation you need an approved template, and Meta charges its own fees for those messages.
Email. A good fit when the shopper left their email at checkout. It can carry more content, such as several products or your shipping and returns policies, but it's often read later.
SMS. Short and direct, useful when the shopper doesn't use WhatsApp. Include your store name, a short link and opt-out instructions.
Three templates to start with, with variables in braces:
WhatsApp: "Hi {name}! We saved your {store} cart: {products}. Finish your purchase whenever you're ready." With a "View my cart" button.
Email subject line: "{name}, your cart is waiting" or "Your {product} is still in your cart".
SMS: "{store}: {name}, we saved your cart at {link} so you can finish your purchase anytime. Reply STOP to opt out"
Abandoned carts on Shopify and WooCommerce
Shopify. Shopify records abandoned checkouts and, from the Shopify Messaging app, can send an automated abandoned checkout email with a link back to the checkout. By default it only goes to customers subscribed to email marketing, and you adjust the wait time in Shopify Flow. It covers the Online Store and Buy Button checkouts; carts that never reach checkout don't get a reminder.
WooCommerce. Since version 11.0, WooCommerce includes an experimental abandoned cart recovery email, disabled by default. It sends a single reminder per order, only when there's a valid billing email, and the automatic email goes out two hours after the order is left in Pending payment. For multi-step flows, WooCommerce's own documentation points to tools like AutomateWoo or MailPoet.
Where Hellotext fits. Once you connect your store (Shopify, WooCommerce, VTEX, Wix, Fenicio and other integrations), Hellotext detects abandonment in both the cart and the checkout and can reach identified shoppers on WhatsApp, SMS or email. If you also use your platform's native emails, coordinate both flows so a cart doesn't get two reminders.
Hellotext's two cart recovery playbooks
Hellotext gives you two ways to automate abandoned cart recovery. Both start from the same event and check whether the shopper already bought; they differ in how they decide what to send.
Cart Saver is a route: a fixed sequence your team defines step by step. It's included in every plan, including Starter, the plan with no monthly fee.
AI Cart Saver is a playbook: it looks at each cart and each customer and prepares a different message for every case. It's available from the Grow plan.
If you turn on both, AI Cart Saver receives the abandoned cart first; the route acts as the fallback when the playbook isn't active.
Explore playbooks in Hellotext, showing the Cart Saver and AI Cart Saver cards.
Cart Saver: the route included in Starter
It's the fastest way to get started. Go to Playbooks, click Explore playbooks, choose Cart Saver, review the steps and publish. In its default setup, the route:
Starts when an abandoned cart is recorded.
Waits for the time you set.
Checks whether the customer already purchased.
If they didn't, sends a reminder with fixed copy.
Repeats the wait and the check, and sends a second reminder if they still haven't bought.
Stops when the customer buys or when there are no steps left.
You can change the wait, the channel, the copy and the condition, add a coupon or remove the second reminder. In the copy, {name} adds the customer's name, and the {cart.products} and {cart.checkout_url} tags fill in the products and the link that restores the cart. Since everyone gets the same copy, write it so it works with one product or several.
Cart Saver route in the editor: abandoned cart, wait, purchase check and reminder with products and cart link.
L
LumaWhatsApp
Hi Ana! We saved your Luma cart: Adidas Samba OG. Finish your purchase whenever you’re ready 🛒
View my cart
LLuma
Today 19:10
Text Message · SMS
Luma: Ana, we saved your cart with Adidas Samba OG at example.com/cart/ana so you can finish your purchase anytime. Reply STOP to opt out
Text Message · SMS
Illustrative example of the Cart Saver route’s fixed reminder: on WhatsApp with a button and on SMS with a sample link and opt-out instructions. No messages are sent.
When to choose it: you want one or two predictable reminders, you already know the copy and offer, and you'd rather review every step before publishing.
How to test it: use a test profile with consent, abandon a cart with real products, and confirm the event shows up on the profile, the link opens the right cart and a test purchase stops the reminder. After launch, review entries, sends, clicks, purchases and failures in the route reports. The Cart Saver route guide has the full checklist.
AI Cart Saver: a different message for every cart
AI Cart Saver doesn't use fixed copy. When a cart is abandoned, it prepares a single message for that shopper and decides whether sending it still makes sense.
What it considers
The cart's products: name, photo, variant and catalog attributes.
Stock: if only a few units are left, it can say so.
Recent behavior: coming back to the same product several times is different from comparing several.
The customer: their name, their value to your store, their customer stage and how likely they are to buy.
Your settings: allowed channels, discount strategy and tone.
L
LumaWhatsApp
Ana, your Samba OG in size EU 38 are still in your cart 🚨 Only one pair is left in that size, so here’s a direct link to finish your purchase.
Complete purchase
L
LumaWhatsApp
Ana, we saved the two items you picked at Luma. If you’re still deciding, here’s each one in your size so you can finish your purchase.
Adidas Samba OGSize EU 38USD 85
Complete purchase
Oversized striped teeSize MUSD 32
Complete purchase
Illustrative AI Cart Saver example: a shopper who kept coming back to the Samba OG sees the photo and a note that only one pair is left; another who compared options gets a carousel of her cart. Prices and stock are demonstration content.
How it decides when and where to send
One message per cart, on the right channel. It chooses among the channels you enabled based on where the shopper can be reached and which channel is ready: WhatsApp, SMS, email, Instagram, push or webchat, depending on your plan and connections.
At a good time. It schedules the send in the first available slot within the next 24 hours, during your store's morning, midday or early-evening windows. Never in the middle of the night.
Without overloading customers. It sends at most one message from this playbook per customer every seven days and respects a weekly limit shared with your other playbooks. It doesn't send if the customer recently bought those products or if they're out of stock.
With an approved WhatsApp template. For each message it creates a marketing template and submits it to Meta for approval before the scheduled time. If Meta doesn't approve it, the message isn't sent.
With one action: back to checkout. If the cart has one product, it sends the photo with a button. If it has several, it builds a carousel of up to ten products, each with its own button to complete the purchase.
Discounts with limits
You choose the offer strategy:
Store offers + AI (recommended): combines your store's existing promotions and shipping benefits with small AI incentives, without going over your cap.
Coupon: uses a code you created in Hellotext.
Store offers only: uses promotions and benefits that already exist in your store.
AI incentives only: lets the playbook decide when a small incentive helps.
No incentives: never offers discounts or free shipping.
For AI incentives you set a cap of 5, 10, 15 or 20%. The playbook uses the smallest discount it considers necessary, or none, and only mentions it once it's applied at checkout. On Shopify and VTEX, Hellotext creates the code directly in your store.
L
LumaWhatsApp
Ana, your Samba OG in size EU 38 are still in your cart. Whenever you’re ready, you can finish your purchase here.
Complete purchase
L
LumaWhatsApp
Ana, your Samba OG in size EU 38 are still in your cart. We’ve applied a 5% discount, and you’ll see it at checkout.
Complete purchase
Illustrative example of the Store offers + AI strategy with a 15% cap: the playbook adds no discount in one case and applies 5% in the other. Amounts are demonstration content.
Tone and replies
You pick up to three tones for the playbook's voice. AI Cart Saver writes the reminder, but it doesn't hold the conversation: if the message invites a reply, it lands in your Inbox, where your team or another AI agent handles it.
AI Cart Saver settings: channels, Store offers + AI offer strategy with a 15% cap, and tone.
How to test it: before turning it on for all customers, test with a profile that has consent and a real cart, preview the message and check what happens after the customer buys. The AI Cart Saver guide covers every control.
Route or AI playbook: how to choose
Choose the Cart Saver route if:
It's your first recovery flow and you want to start today.
You prefer fixed copy you can review word by word.
You're on the Starter or Small plan.
Choose AI Cart Saver if:
Your carts and customers vary a lot.
You want each message to use the product, stock and each shopper's behavior.
You want capped discounts that only apply when they're needed.
You want the playbook to pick the channel and send time.
A common path is to start with the route, learn from the first results and move to the AI playbook once your product data and cart signals are reliable. The full comparison is in the Help Center.
How to measure cart recovery
Track each flow with a few metrics and compare them over time:
Recovery rate: attributed purchases divided by delivered messages.
Attributed revenue and revenue per delivered message.
Average time to recovery: from message delivery to purchase.
Opt-outs and replies: if opt-outs rise, review timing, frequency or tone.
In Hellotext, the AI Cart Saver report shows the Triggered, Delivered, Engaged and Recovered funnel, plus attributed revenue by channel and by segment. By default, a sale is attributed when it happens within seven days of a click, or within 24 hours of message delivery.
Change one thing at a time (wait, copy, offer or channel) so you know what moved the result.
AI Cart Saver report with the recovery funnel and recovery rate, using demonstration data.
Abandoned cart recovery FAQ
How long should you wait before the first abandoned cart reminder? The same day, while the shopper still remembers what they picked, and at a reasonable hour. In Hellotext, a cart counts as abandoned after 30 minutes without activity: in the route you set the wait, and AI Cart Saver picks the first available send window.
Can you send abandoned cart reminders on WhatsApp? Yes, if the customer agreed to receive messages from your brand. Meta requires that opt-in, treats these reminders as marketing messages and requires an approved template. Check your local data protection rules too.
Should you offer a discount to recover an abandoned cart? Not always. A discount in every reminder cuts your margin and trains shoppers to wait for it. Set a cap and use incentives when price or shipping was the blocker.
How do you recover abandoned carts on Shopify? Shopify sends abandoned checkout emails from Shopify Messaging. To add WhatsApp or SMS and also reach shoppers who didn't complete checkout, connect your store to Hellotext and turn on Cart Saver.
How does WooCommerce abandoned cart recovery work? WooCommerce 11 includes an experimental email that sends a single reminder per order. For multi-step flows or channels like WhatsApp, connect WooCommerce to Hellotext and use the route or the AI playbook.
What's the difference between rule-based and AI cart recovery software? Rule-based software sends everyone the same message at the time you set. AI-based software adapts the copy, channel, timing and incentive to each cart, within the limits you configure.
Start recovering carts
Cart Saver is included from the Starter plan, with no monthly fee: connect your store, review the route and publish it. When you want messages that adapt to each customer, AI Cart Saver is available from the Grow plan. If you sell on WhatsApp, see how Hellotext's AI agents for WhatsApp work too.
We remember your signup source for one hour, even if you reject optional cookies. With permission, third-party tools analyze site use and measure or personalize ads. Configure cookies · Privacy policy
We couldn't save your choice in this browser. Check your browser's storage settings and try again. If you were withdrawing permission, close this page to stop tools that were already loaded.