Menu
Resources/
Email and retention
/
Build a Klaviyo Abandoned Cart Flow
Playbook

Build a Klaviyo Abandoned Cart Flow

Which trigger to use, the filter that stops it emailing buyers, when each of the three emails sends, and what to measure.

Email and retention
·
6
min read
·
August 16, 2026
·
Jimmy Ha
Summarize with ChatGPT
Ask questions about this page
Key takeaways
  • Turn off your ecommerce platform's own abandoned cart email before you build. It keeps sending after you build yours, and the customer gets two reminders about the same cart from the same brand.
  • Two triggers, two shoppers. Added to Cart catches the browser and needs the app embed plus Track behavioral events. Checkout Started catches someone who entered an email and saw the total, and Klaviyo builds it by default, so start there.
  • Add a flow filter of Has Placed Order zero times since starting this flow. It re-checks before every send, so a buyer drops out and the rest of the sequence never arrives.
  • Running both flows needs Started Checkout zero times since starting this flow on the Added to Cart version, joined with AND. Joined with OR the filter excludes almost nobody.
  • Klaviyo's guidance is three emails at two to four hours, a day later, and two to three days. Hold any discount to the third, for first-time buyers.
  • Measure recovered revenue per recipient and recovery rate at thirty days. Open rate tells you nothing useful here.

Before you build an abandoned cart flow, go and check whether your store is already sending abandoned cart emails on your behalf.

It usually is. Most ecommerce platforms ship an abandonment email switched on by default, and it keeps sending after you build your own. The customer gets two reminders about the same cart, from the same brand, an hour apart, and the one that arrives first is the one you didn't write. Klaviyo's own setup documentation tells you to turn the platform's version off, and it's the step most guides skip.

So: platform settings, find the abandoned checkout email, switch it off. Then build this.

If you're deciding which flows to build at all, the parent guide to Klaviyo flows covers the build order across the whole account. This is the second one on that list.

Two triggers, and most people pick the wrong one

Klaviyo starts this flow from one of two events, and they catch different people.

Added to Cart fires when someone puts an item in the cart. It needs the Klaviyo app embed installed and the integration setting Track behavioral events switched on. Klaviyo describes it as reaching the more casual shopper, the one who hasn't started checkout yet.

Checkout Started fires when someone reaches the checkout page. This is the default abandoned cart flow, and Klaviyo builds a version of it for you when you connect the store.

The difference matters more than the naming suggests. Adding to cart is browsing behaviour. Starting checkout means entering an email address and looking at the total, which is a decision most of the way made. Volume runs higher on Added to Cart and intent runs higher on Checkout Started.

Build Checkout Started first. It reaches fewer people and more of them come back, and it's the one Klaviyo sets up by default. Add the Added to Cart version later if you want the wider net, and keep the two apart with filters rather than running them at each other.

Added to Cart against Checkout Started, what each one catches and which to build first
Volume on the left, intent on the right. Start on the right.

The filter that stops it emailing buyers

One flow filter does the heavy lifting here. Add Has Placed Order zero times since starting this flow. A flow filter re-checks before every send, so the moment an order lands the profile drops out and the rest of the sequence never arrives. Without it, someone who buys after the first email still gets the second one asking why they didn't.

Running both versions needs a second condition on the Added to Cart flow: Started Checkout zero times since starting this flow. Someone who moves from browsing to checkout then leaves the casual sequence and picks up the higher-intent one, instead of sitting in both.

Both conditions have to hold at the same time, which means AND rather than OR. Set it to OR and the filter passes whenever either one is true, which is nearly always, and the flow stops excluding anyone at all.

Three emails, and when they send

Klaviyo's own guidance is a first email two to four hours after the trigger, a second a day or two later, and two to three emails in total.

Email 1, two to four hours. A reminder and nothing else. Show what they left, link straight back to the cart, keep it short, and skip the discount.

Email 2, roughly a day later. Handle the reason they stopped. Shipping cost, returns, sizing, whether it arrives in time. Reviews of the exact product in the cart work harder here than reviews of your brand.

Email 3, two to three days after the trigger. This is the last call, and a discount belongs here if you use one at all, reserved for someone who hasn't bought from you before.

Send the first one sooner than feels comfortable. The cart is still open in a tab at two hours and forgotten by tomorrow.

Don't open with a discount

A discount in email one teaches people to abandon carts.

The effect compounds against you. Shoppers learn that leaving a full cart produces a code within the hour. Your regulars learn it first, and you end up paying a margin point to close sales that were closing anyway.

Hold it back to email three, restrict it to first-time buyers, and give it an expiry. If your margin won't carry a discount at all, free shipping over a threshold does similar work for less.

Link to the cart, not the homepage

Klaviyo rebuilds the cart from the trigger event, so the button should drop the reader into a populated checkout rather than onto your front page.

That sounds obvious and it breaks more often than anything else in this flow, usually after a theme change. A cart link that has lost its contents turns a recovered sale back into a browse from scratch.

Click it yourself, from a real test cart, before the flow goes live.

What to measure

Two numbers tell you whether this works, and open rate is not one of them.

Recovered revenue per recipient. Revenue Klaviyo attributes to the flow, divided by the people who entered it. Watch this one across changes, because it holds up when your traffic moves around.

Recovery rate. How many people who triggered the flow went on to order. This moves when you change the timing or the copy, so it's the one to read after a test.

Read both at thirty days. One caution on the numbers. Klaviyo credits a sale using its own attribution window, which is the stretch of time after a send during which it will still count an order. A cart email and a campaign in the same week both claim the same sale.

When the abandoned cart flow is live and flat

Three things account for most of it, and all three are quick to rule out.

The platform email is still on. Your reminder is landing second, behind one you didn't write, so the recovery gets credited somewhere you aren't looking. Check the platform settings again rather than assuming the first pass caught it.

The cart link is empty. Click through from a real test cart. A link that has lost its contents converts like a homepage visit, because that's what it is.

The filter is set to OR. Open the flow filter and read the logic rather than the conditions. Two conditions joined by OR exclude almost nobody, so buyers keep receiving the rest of the sequence and the recovery rate reads worse than the flow deserves.

If all three are clean and it's still flat, the problem is upstream. A flow recovers the carts your store creates and no more, and a checkout that nobody reaches has nothing to abandon.

What to do this week

Turn off the platform's own abandonment email. Build the Checkout Started flow with three messages at two to four hours, one day, and three days. Add the flow filter. Send yourself through it with a real cart and click the button.

That's an afternoon, and it's the flow with the highest intent in the account.

If you'd like a second read on what you've already got, we run a free teardown and send it back in two business days. Our email marketing service builds and maintains these flows, and the Klaviyo welcome flow playbook covers the other sequence worth building first.

Before you ask

Common questions

Should an abandoned cart flow use Added to Cart or Checkout Started?

Checkout Started. It fires when someone reaches the checkout page, so they entered an email address and saw the total. The intent is higher than a cart add, and more of them come back. Klaviyo builds a version of it for you when you connect the store, so it is also the least work. Added to Cart fires earlier and reaches more people, and it needs the Klaviyo app embed plus the integration setting Track behavioral events. Add it later if you want the wider net, and keep the two apart with filters.

How do you stop an abandoned cart flow emailing people who already bought?

One flow filter: Has Placed Order zero times since starting this flow. A flow filter re-checks before every send, so the moment an order lands the profile leaves and the remaining emails never go out. An Added to Cart flow needs a second condition on top: Started Checkout zero times since starting this flow. Somebody moving from browsing to checkout then leaves the casual sequence. Both conditions have to hold at once, which means AND. Set it to OR and the filter passes whenever either is true, so it excludes almost nobody.

Keep reading
Same category, three items