How to recover abandoned carts with AI: a 5-step Shopify playbook

If you've run a Shopify store for more than six months, you've stared at the same dashboard I have. Cart abandonment hovering somewhere between 68% and 82%. A Klaviyo flow firing three "You left something behind!" emails into the void. A recovery rate of 4% on a good week, 1.5% on a bad one. And a nagging suspicion that the entire flow is held together with the same copy your competitor down the road is using, because you both downloaded it from the same template marketplace in 2022.

Here's the uncomfortable truth: most abandoned cart sequences are templated, generic, and easy to ignore. They're not bad because the team running them is lazy. They're bad because writing genuinely personal recovery copy for thousands of carts a week, segmented by behaviour, value, and history, is impossible to do by hand. So everyone defaults to the same three emails, and customers train themselves to delete them on sight.

AI changes the maths. Not because it writes more emails — you don't need more emails — but because it can finally do the work that used to be theoretically possible and practically impossible: read every customer's history, match the right tone, segment by intent rather than by status, and draft something that sounds like it came from a human who actually knows the store.

This is a 5-step playbook for rebuilding your Shopify cart recovery flow with AI in the loop. It assumes you're using Klaviyo or a similar ESP, that you have at least 1,000 monthly orders, and that you have the patience to do this properly rather than just plugging ChatGPT into a Zapier webhook and hoping.

Why most abandoned cart emails fail (three reasons)

Before the playbook, the diagnosis. There are three structural reasons most cart flows underperform, and if you don't fix these, the AI tooling won't help.

One: they treat every abandoner as the same customer. A first-time visitor who added a £39 candle and bounced is not the same person as a returning VIP who left £480 of skincare in their basket because their toddler started screaming. They need different emails. Most flows send them the same one.

Two: they reference the product but not the person. "You left the Linen Throw in your cart!" is not personalisation. Personalisation is "Last time you bought from us in November you paired this exact throw with the matching cushion — want me to bundle them?" One requires Shopify variables. The other requires reading the customer's order history.

Three: they treat copy as decoration, not signal. Brands spend weeks on the homepage hero image and then ship a cart email written by an intern at 4pm on a Friday. Customers can tell. Voice consistency across the funnel is one of the strongest trust signals you have, and abandoned cart emails are usually where it dies.

Now, the playbook.

Step 1 — Segment by intent and value, not just by status

The single biggest lift you'll get is from segmentation, not copy. Before you change a word, change who receives what.

A reasonable starting taxonomy for a mid-sized Shopify store:

  • High-intent VIPs: returning customers, lifetime value above your top 20% threshold, cart value above £150. These people don't need a discount. They need a reminder and a friction-removing CTA.
  • High-value first-timers: no purchase history, cart value above your AOV. These are the riskiest segment — you don't know if they'll come back. Worth a small incentive on email two or three.
  • Curious browsers: cart value below AOV, no history, came in from paid social. These convert poorly regardless of what you send. Don't burn discount budget on them. One reminder, then drop them into the general newsletter.
  • Resurrection candidates: lapsed customers (90+ days since last order) who abandoned. These deserve a different sequence entirely — closer to a win-back than a cart recovery.
  • Repeat abandoners: have abandoned three or more times in the last 60 days without buying. Stop sending cart emails. They're costing you sender reputation. Move them to a quarterly check-in.

The point is not these exact buckets. The point is that "abandoned cart" is not a segment. It's a status. Real segmentation requires combining cart behaviour with order history, browse history, and source. Klaviyo can do this with enough effort. Most stores don't bother.

Step 2 — Pull customer history into the draft

This is where AI starts earning its keep. Once segments are right, the next step is making each email feel like it was written by someone who actually opened the customer's order history before hitting send.

The data points worth pulling per customer:

  • Last three products ordered, with dates
  • Categories they tend to buy in
  • Average order value
  • Whether they've ever responded to a discount code
  • Time since last order
  • Whether they've reviewed a product (and what they said)
  • Geographic clues (delivery address city, not the full address)
  • Source of the abandoned session (organic, paid, email click)

A templated email uses zero of these. A good AI draft uses three or four — selectively, not all at once. The trick is contextual relevance, not stuffing every variable into the body.

For example, a high-intent VIP who abandoned a £200 cart of skincare and ordered the same brand's serum two months ago should get something like:

> Subject: That serum top-up plus the new toner?

>

> Hi Sara — saw you came back for more of the Vitamin C serum. Good timing, that batch has been going fast since the December restock. You also added the new hydrating toner — for what it's worth, the formulator we work with built it specifically to layer under the serum you've been using. If you want both, your basket's still saved here.

That's not a template. It references the actual product, the actual previous purchase, and gives a non-pushy reason to bundle. And it took a generation model about four seconds to draft once it had the customer's history loaded.

The key word is "loaded". The model has to actually have the data. A lot of teams plug an LLM into their email tool and then feed it the cart contents and nothing else, and wonder why the output is generic. It's generic because the input is generic.

Step 3 — Match copy to brand voice

Now the harder problem. Even with perfect segmentation and rich history, AI-generated copy often falls flat because it doesn't sound like your brand. It sounds like an LLM doing its best impression of an ecommerce email, which is to say, it sounds like every other LLM doing its best impression of an ecommerce email.

There are two ways to fix this, and you need both.

The first is a written voice guide that's actually specific. Not "friendly and professional". That tells the model nothing. A useful voice guide looks more like:

  • We use British spellings (colour, organise, behaviour)
  • We never use exclamation marks in subject lines
  • We never use the word "amazing"
  • We write short sentences. Often very short.
  • We address customers by first name once, then drop it
  • Our humour is dry, never zany
  • We never use phrases like "treat yourself" or "self-care moment"
  • We mention sustainability only if the product warrants it — never as filler

That kind of guide, fed to the model alongside the customer data, gets you 80% of the way to consistent voice.

The second is feedback over time. A good system reads which emails the team actually approves, which they edit, and which they reject — and adjusts. Most stores don't build this loop. They generate, they ship, they move on, and the model never gets better at sounding like them.

This is the bit where a generic AI tool falls down. ChatGPT doesn't remember that your founder hates the word "curated". A purpose-built system should.

Step 4 — Time the send window

Cart abandonment timing is one of those areas where the conventional wisdom — "send the first email within an hour!" — is usually wrong, and AI helps because it can actually run the experiment.

Here's what I've seen across enough stores to call it a pattern, not an anecdote:

  • For impulse categories (fashion, accessories, beauty under £80), the 1-hour send works.
  • For considered purchases (furniture, electronics, anything over £200), a 1-hour email feels pushy and reduces open rates. A 6-hour or even 24-hour delay performs better.
  • For B2B-adjacent stores (workwear, restaurant supply), send during the next business day window. Evening and weekend cart emails get ignored.
  • The second email in the sequence is more important than the first. Most stores under-invest in it because the first one gets all the attention.
  • A "we're closing your cart in 24 hours" email at hour 47 still works, but only if you actually do close the cart. Empty threats train customers to ignore you.

AI helps here in two ways. One, it can pick the right window per customer based on past engagement timing — if they always open emails at 9pm, queue the send for 9pm. Two, it can A/B test more variations than your team has time to set up manually, and feed results back into the targeting.

Step 5 — Loop in win/loss data

The last step is the one nobody does, and it's the one that compounds.

When a cart is recovered, that's a signal. When it isn't, that's also a signal. Most flows treat these as opposite outcomes; they should be treated as training data.

For each abandoned cart, after 14 days, log:

  • Did they buy from the cart? (Recovered)
  • Did they buy something else within 14 days? (Substituted)
  • Did they buy from a different channel? (Cross-channel)
  • Did they bounce permanently? (Lost)
  • Did they unsubscribe? (Burned)

That last one matters more than people realise. A cart flow that recovers 4% but burns 1.5% of its audience per send is a flow that's eating your list. Over a year, that's catastrophic.

Once you have that signal loop, the next time a similar customer (similar segment, similar cart, similar history) abandons, the system already knows what worked and what didn't. The decisions get sharper. The discount budget gets used more efficiently. And the emails stop being sent at all to the segments that consistently burn rather than recover.

A sample three-email sequence (high-intent VIP, abandoned £180 skincare cart)

To make this concrete, here's a realistic sequence built on the principles above. The customer is a returning buyer, last ordered three months ago, has reviewed two products positively, and abandoned during a Tuesday evening session from organic search.

Email 1 — sent 4 hours after abandonment

> Subject: still mulling the toner?

>

> Hi Sara — your basket's saved if you want to come back to it. No rush. The hydrating toner you added is the same formulator who made the serum you reviewed in January (you gave it five stars, which we appreciated more than we let on at the time). Layered, they're meant to work as one routine.

>

> If you want to come back to it: [link]

>

> If not, no problem. Reply to this email if anything's putting you off and we'll sort it.

Email 2 — sent 36 hours later

> Subject: re: your basket

>

> Quick note — the toner stock from the December batch has nine units left. Not trying to pressure you, but if you've been waiting for a reason to decide, that's the most honest one we have. Once it's gone the next batch is mid-May.

>

> Same basket, still here: [link]

Email 3 — sent 5 days after abandonment, only if no engagement on previous two

> Subject: closing this out

>

> Sara — we'll release the items in your basket back to general stock tomorrow so other customers can buy them. If you want to keep them, here's the link one last time: [link]

>

> If something specific stopped you (price, timing, a question about the product), reply to this email — a real person reads it, and we'd rather know than not.

Notice what's not in those emails: no exclamation marks, no "DON'T MISS OUT", no 20% discount in the subject line, no urgency language that wasn't true. The third email is the only one with mild urgency, and it's tied to a real action (releasing stock) that the brand will actually take.

That sequence, written for one customer, took maybe eight minutes to draft by hand. Across 400 abandoned carts a week, it would take 53 hours. Which is why nobody writes them. Which is why they're all generic. Which is why AI is the only path to making this work at scale without lowering the quality bar.

How Ergora does each step automatically

We built Ergora's Ecom pack around exactly this loop. Connect Shopify and Klaviyo, and the Seat Brain reads cart, customer, and order data continuously. Voice is calibrated against your existing emails so the drafts sound like you. Segmentation rules are configurable but pre-built around the taxonomy above. Win/loss data feeds back into the model weekly so the suggestions sharpen instead of stagnating.

You can read more about the full Ecom pack and the brain architecture behind it at ergora.cloud — but more importantly, even if you build this yourself with your existing stack, the five steps above are the ones that matter. Get those right, and the technology you use to run them is almost incidental.