top of page

Abandoned cart email: how to recover sales in your online store

Writer: Rocket Fuel Ads
Rocket Fuel Ads
4 days ago
13 min read

Imagine you run an online pet supplies store. Anna finds the right bed for her dog, picks the size, adds it to the cart and goes to checkout. She types in her email, ticks the box to receive the store's news and, when she sees the shipping cost, hesitates. Maybe she wants to compare prices, maybe she was interrupted. She closes the page.

For the store, it's another sale that didn't happen. And it's not rare: on average, around 70% of online shopping carts are never paid for (70.22%, in a compilation of 50 studies by the Baymard Institute updated in September 2025). Each of those visitors cost something to bring to the store, whether in ads, SEO or promotions.

Anna has already shown what she wanted to buy. The abandoned cart email reminds her of that purchase and brings her back to checkout, without paying again to bring her to the store. But sending reminders isn't the same as having a strategy that recovers sales. This guide explains the difference: why customers give up, who you can email in the EU, how many emails to send and when, how to set it up in Shopify, WooCommerce and Klaviyo, and how to tell whether it's really working.

Before recovering the sale, understand why the customer gave up

It's tempting to think that anyone who abandons a cart simply forgot about the purchase. Sometimes that's true. If Anna was interrupted by a phone call, a reminder a few hours later may be enough. But if she gave up because she thought shipping was too expensive, receiving the same bed with the same shipping cost changes nothing.

When the Baymard Institute asked online shoppers in the United States why they had abandoned a purchase during checkout, the most common answer was extra costs that were too high, such as shipping, taxes and fees (40%). Next came delivery that was too slow (20%), not trusting the site with card details (19%), being required to create an account (18%) and a checkout that was too long or complicated (17%).

This is data from another market, but it shows something useful for any store: not every abandonment can be solved with an email. Google also notes that clear information about shipping and returns reduces cart abandonment. So, before building the automation, it's worth checking whether shipping costs appear early, whether the returns conditions are easy to see and whether checkout is simple on mobile. Email works best when it complements a good shopping experience, not when it tries to make up for a bad one.

With that sorted, the practical question remains: what exactly happens when Anna closes the page?

How an abandoned cart email works

The automation detects that the purchase was left halfway, waits for a set time and, if the customer still hasn't bought, sends her an email with the products she left behind and a button to go back to checkout. If Anna buys in the meantime, the sequence stops. Nobody on the team has to follow up carts one by one.

There are, however, two different cases, and the tools handle them differently:

  • Abandoned checkout: the customer started checkout, entered her email and didn't pay. This is Anna's case. In Shopify, a checkout counts as abandoned when it's left incomplete for more than ten minutes after the customer enters her email. This is what Shopify's automation handles and the most common trigger in Klaviyo, with the Started Checkout event.

  • Abandoned cart: the customer added products to the cart and left without starting checkout. In Klaviyo, this case uses the Added to Cart event, which in the Shopify integration requires turning on behavioural event tracking (Track behavioral events).

To start with, the abandoned checkout is the most direct route: the customer has already moved forward in the purchase and the store already has her email. But having the email isn't enough to be allowed to send.

Who can receive the email in the EU

The abandoned cart email shows products and invites the customer to complete the purchase, and Shopify itself treats it as marketing: Shopify's marketing automations only send emails to subscribed customers. In the EU, marketing email to individuals is governed by Article 13 of the ePrivacy Directive (2002/58/EC), which each country transposes into its own law, and the handling of contacts by the GDPR. In practice, there are two situations:

  • With prior consent, you can send to people who agreed to receive marketing communications. Under the GDPR, pre-ticked boxes are not valid consent, so the box must be left unticked.

  • Customers who have already bought can receive, without consent, communications about your own products similar to those they bought, if the contact was obtained in that sale and they were given, at collection and in every message, an easy and free way to object. The exception refers to contacts obtained in a sale, so it doesn't cover someone who abandons their first checkout without consenting.

Anna ticked the box, so the store can send her the reminder, as long as the text next to the box says she will receive marketing communications by email. Shopify specifically asks you to adapt that text if your store sends abandoned cart reminders. Where to set it up:

  • Shopify: in Settings > Checkout > Marketing opt-in > Email. Shopify lets you pre-select the box by region; for customers in the EU, leave it unticked.

  • WooCommerce with the Cart Abandonment Recovery extension: in WooCommerce > Cart Abandonment > Settings, the Enable GDPR Integration option adds a consent message below the email field, with editable text.

  • Klaviyo: with WooCommerce, consent given at checkout only reaches Klaviyo after the order is submitted. Check how your store sends that consent before turning on the flow for people who haven't bought.

This summary is not legal advice, and national rules may add requirements.

How many emails to send, and when

This is where many stores overcomplicate things. Some send a single reminder, others build long sequences with ever bigger discounts. The recommendations from Klaviyo, CartFlows and Mailchimp point to the middle ground: two or three emails in total, each with a different role.

First email: a reminder, not a promotion

A few hours have passed since Anna closed the page. Klaviyo recommends sending the first email 2 to 4 hours after checkout starts; CartFlows suggests 1 hour and Mailchimp at least 1 hour. Anna may just need an easy way back: the bed she chose, the button to resume the purchase and a contact in case she has questions.

No discount. Klaviyo advises using discounts only when the first reminder doesn't work and preferably for higher-value carts, and Shopify's guide also leaves it out of the first email. The reason is margin: if Anna was going to buy anyway, the discount comes out of the sale's profit. For example, on an €80 cart with a 30% gross margin, the store keeps €24; a 10% discount takes away €8, a third of that margin.

Second email: helping her decide

About a day has passed and the order is still incomplete. Klaviyo recommends the second email 20 to 48 hours later; CartFlows suggests 24 hours. Repeating the first email adds nothing. This is the moment to address what might be holding the purchase back, and Baymard's reasons give the clue: shipping costs, delivery times, trust, returns. Before any discount, Klaviyo suggests alternatives such as free returns or shipping conditions. In Anna's case, the email can remind her of the shipping and returns terms, or say whether the bed is machine washable.

Third email, optional: an incentive, if it makes sense

If Anna still hasn't bought after three days, CartFlows suggests a third email with a coupon. Do the margin maths first and decide whether the incentive is for all carts or only for higher-value ones.

Table with the abandoned cart email sequence: one to four hours later, about a day later and three days later

Whatever the tool, there's one rule that can't fail: if the customer buys partway through the sequence, she stops receiving the following emails. All that's left is to get this working in your store.

How to set it up in Shopify, WooCommerce and Klaviyo

The logic is the same in all three: a trigger, a waiting time, the emails and an exit for people who buy. What changes is where you set it up. Menu names are as they appear in the English dashboard.

Shopify

Shopify has a built-in automation. The official step-by-step guide comes down to this:

  1. In the admin, open Apps > Messaging and click Automations.

  2. In the Abandoned checkout emails by Shopify automation, open the actions menu and choose Edit settings.

  3. Select Send abandoned checkout emails automatically.

  4. Under Send to, choose which visitors receive the email; under Send after, how long to wait after the abandonment.

  5. Click Save. Under Customize email you can edit the template.

In Orders > Abandoned checkouts you can see each incomplete checkout, with the email and recovery status, and send a manual reminder. Automatic recovery works on the Online Store and Buy Button channels.

WooCommerce

WooCommerce has no built-in abandoned cart emails (versions 11.0 and 11.1 had an experimental feature, removed in 11.2), so you need an extension. The most installed on wordpress.org is Cart Abandonment Recovery for WooCommerce, by CartFlows, with more than 300,000 active installations. Once it's installed:

  1. In WooCommerce > Cart Abandonment > Settings, set the time after which a cart counts as abandoned (Cart abandoned cut-off time, in minutes, with a minimum of 10), the order statuses that don't receive emails (Exclude Email Sending For) and the consent integration.

  2. In WooCommerce > Cart Abandonment > Follow-up Emails > Add New Template, create each email in the sequence, with the send time in minutes, hours or days. The coupon is optional and is set up only in the template where you want to use it (percentage, fixed amount or free shipping, with an expiry date).

  3. The sequence stops when the order is completed.

Klaviyo

Klaviyo isn't just an abandoned cart extension: it's an email marketing and automation platform. Shopify and WooCommerce tell it what customers do in the store, such as checkouts started, orders and refunds, and Klaviyo triggers emails based on those events: welcome, abandoned cart, post-purchase, shipping updates or winning back past customers. It also sends one-off campaigns, such as a promotion. For abandoned carts:

  1. Connect the store: on Shopify, through the Klaviyo integration; on WooCommerce, through the Klaviyo extension, with the Connect Account option. Klaviyo integrates with many other store platforms.

  2. Create the abandoned cart flow from the template, with the Started Checkout trigger. In pre-built flows, the first email goes out 4 hours after the trigger.

  3. Check the Placed Order zero times since starting this flow filter, which removes people who have already bought from the flow.

  4. On Shopify, turn off the native abandoned checkout automation, so the customer doesn't receive two reminders.

Before turning it on, make a test purchase from start to finish. Once the automation is running, another risk appears: Anna receiving too many messages.

When the reminder joins the store's other messages

Imagine that, in the hours after closing the page, Anna receives the weekly newsletter and the cart reminder, and sees ads for the same bed everywhere. Each message makes sense on its own; together, they wear her out. The solution isn't to communicate less, it's to coordinate:

  • Klaviyo: Smart Sending skips profiles that have already received an email in the last 16 hours (the default), when flows and campaigns run at the same time. Check that it's on for each email in the flow.

  • Only one tool sending the reminder: if you send it through Klaviyo or Omnisend, turn off Shopify's native automation, as both tools advise.

  • Ads: if you also show remarketing ads to people who abandoned their cart, Google Ads lets you limit how many times the same person sees them in Display and video campaigns.

On Black Friday

With more checkouts, the number of reminders sent goes up too, and inbox delivery matters more. Google requires SPF or DKIM from all senders and SPF, DKIM and DMARC from bulk senders: anyone who sends around 5,000 or more messages in 24 hours to personal Gmail accounts, adding up the whole primary domain. Anyone who reaches that volume once is treated as a bulk sender permanently. We explain how to set it up in the guide on emails going to spam and SPF, DKIM and DMARC records. The campaign's sending plan is in the Black Friday email marketing guide, and the rest of the preparation in the complete Black Friday guide for online stores.

How to tell whether the emails are recovering sales

Once the automation is on, the first temptation is to look at opens. Today, that number is misleading. In September 2026, 76.56% of the email opens recorded by Litmus came from Apple Mail, and in Europe iOS was on 35.31% of mobile devices in the same month. Apple's Mail Privacy Protection downloads email content in the background, whether or not the person opens it, which makes open rates inflated and inaccurate. The most reliable signals are clicks and purchases.

What each tool's dashboard shows

  • Shopify: the Abandoned checkouts emails report by Shopify, in the Growth section, shows the sessions and orders that came from the reminders, the conversion rates, the sales and the average order value.

  • WooCommerce with Cart Abandonment Recovery: recovery results are in WooCommerce > Cart Abandonment > Dashboard; opens and clicks per email are only available in the Pro version.

  • Klaviyo: each flow shows the order rate (Placed Order rate) and the attributed revenue. The default attribution window is 5 days and can be changed in Settings > Attribution.

There's a nuance worth keeping in mind. Shopify counts a checkout as recovered when the order is completed after the email, whether through the link or because the customer came back on her own. Klaviyo attributes to the email the purchases made within the attribution window. In other words, the dashboard number shows the sales the emails accompanied, including some that might have happened without them. Compare periods and follow the trend, rather than looking at a single figure.

Seeing email sales in Google Analytics 4

These dashboards report what happens inside each tool. But whoever runs the pet supplies store wants to know something else: in a month when they pay for ads, work on SEO and send reminders, where do sales actually come from? Google Analytics 4 is where channels are compared side by side. For that, GA4 needs to know that Anna arrived from an email.

That information travels in the link itself, as UTM parameters: small tags at the end of the address, such as ?utm_source=klaviyo&utm_medium=email&utm_campaign=abandoned-cart. When Anna clicks the button in the second email, the one about shipping, GA4 reads those tags and records the visit, and the purchase that follows, with the source, medium and campaign name. Google recommends always using these three. A fourth, utm_content, is optional and distinguishes links that lead to the same page, such as the button in the first and second emails: it's what shows which reminder convinced Anna.

One detail decides where the sale appears: the medium. GA4 only puts a visit in the Email channel when the source or medium is email (or the variants e-mail, e_mail and e mail, regardless of case). If the medium is, say, reminder, Anna's purchase ends up outside the Email channel. So the medium is always email.

In practice, you don't have to write the links by hand, because the tools add the tags. In Klaviyo, the option is in Settings > Other > UTM tracking (Klaviyo step-by-step guide). When you turn on Automatically add UTM parameters to links, new campaigns and new flow emails get UTMs by default; in each flow email, the option appears as Enable UTM Tracking. Since June 2025, the default medium is the message type, so it's worth checking that it stays as email. In WooCommerce, Cart Abandonment Recovery has the UTM Parameters field in WooCommerce > Cart Abandonment > Settings, in the Advanced Settings section. You enter one parameter per line (utm_source=store, utm_medium=email, utm_campaign=abandoned-cart), and the extension adds them to the checkout links in the emails. On Shopify, if the reminders go out through the native automation, the measure is still the Abandoned checkouts emails report; if they go out through Klaviyo, the UTMs are handled in Klaviyo. Before considering the setup finished, send yourself a test email, click the button and check that the store address opens with the tags at the end.

All of this assumes GA4 is properly installed in the store and recording purchases. If you're not sure, start with our Google Analytics 4 guide.

With the tags in place, the results are in Reports > Acquisition > Traffic acquisition. The default view groups visits by channel, and the Email row brings together everything that came from emails. If you change the dimension to Session campaign, the cart reminders appear on their own, with sessions, key events (Key events) and revenue (Total revenue).

Don't expect GA4 to give the same number as Klaviyo or Shopify, because it counts differently. Imagine Anna clicks the email, doesn't buy straight away and comes back the next day by typing the store's address. GA4 doesn't give the credit to that direct visit: direct sessions are associated with that person's previous UTMs, and no attribution model gives credit to direct visits when there was another touchpoint before. In addition, the default data-driven model splits the credit for the purchase across the channels the customer went through, and for purchases it looks back up to 90 days, compared with Klaviyo's 5 days. The tool's dashboard tells you how many sales the reminders accompanied; GA4 shows where email stands next to ads and search. Each number answers its own question.

Note: no UTM-based measurement is complete. People who refuse analytics cookies in the store's banner still send signals to GA4, but without cookies or an identifier, and Google only models that data when the property reaches minimum traffic volumes. Apple removes the information used to track people across sites from links opened in Mail, Messages and Safari private browsing; WebKit says that parameters used only for campaign attribution pass through, but doesn't publish the list. Firefox, in enhanced protection, removes known identifiers such as fbclid. So read GA4 numbers as a trend, not an exact count.

Where to start in your store

Back to Anna. If she closed the page because she was interrupted, a simple reminder a few hours later does the job. If it was the shipping cost, the second email, with the shipping and returns conditions, stands a better chance than a discount. And if many customers give up for the same reason, the answer may lie in the store, not in the email.

It's worth setting up this automation properly. In the benchmark data Klaviyo published in October 2026, based on more than 110,000 customers, each recipient of an abandoned cart email generated US$6.77 in revenue on average, and US$13.70 for the top 10% of stores.

Where to start: make sure the consent box at checkout is unticked and says you'll send marketing emails; turn on a single tool (Shopify's automation, Cart Abandonment Recovery on WooCommerce or the Started Checkout flow in Klaviyo); build two to three emails, with the discount only at the end and only if the margin allows it; make sure people who buy leave the sequence; and judge results by clicks, orders and revenue, not opens.

Agencies that want to offer these automations to their clients without growing the team can see our white-label email marketing and automation service.

Want a second opinion on your store's automations?

Sources

 
 
 

Comments


bottom of page