Klaviyo & EmailAugust 29, 2025 · Updated October 27, 2026

Klaviyo Abandoned Cart Flow: Score Yours in 10 Minutes

Abandoned cart flow not working? Score your Klaviyo abandoned cart flow in 10 minutes, find the leak, then book a flow audit for a fix list.

Mark Cijo

Mark Cijo

Founder, GOSH Digital

Klaviyo Abandoned Cart Flow: Score Yours in 10 Minutes

If your abandoned cart flow is not working, the leak is usually setup, not copy. Score the 10 checks below, 0 or 2 points each. A low score tells you what to fix first, before you rewrite a subject line.

I use this teardown on Shopify DTC accounts in Klaviyo. You can run it in about 10 minutes from Flows, Metrics, and Shopify Messaging.

Last reviewed: October 27, 2026. Trigger, filter, SMS, and Smart Sending notes checked against the Klaviyo Help Center, including troubleshooting a metric-triggered flow.

Why is my abandoned cart flow not working?

Most founders open the email and start editing the headline. I open the trigger.

Klaviyo will let a flow sit in Draft or Manual and still look like a real program. Draft messages do not send and do not queue. Manual messages pile up under Needs Review until someone hits send. If revenue from this flow fell off a cliff, check status before you touch design.

The other silent failure is who never enters. On Shopify, Checkout Started can fire once Shopify has a valid email or phone, then the shopper moves on or the page reloads. A guest who leaves with a full cart and no email or phone never creates a profile, so your abandoned cart flow never sees them.

If people do enter and then get skipped, that is often correct. Everyone who starts checkout enters the flow. People who then place an order fail the profile filter. A pile of "Fails Flow Filters" skips is the flow doing its job.

When I want a second set of eyes after the score, I send people to book a flow audit. The rubric below is the same list I walk on that call.

How do I score my Klaviyo abandoned cart flow?

Open the flow. Keep this table next to it. Give each row 2 points if it is true, 0 if it is not. No half credit. Add the 10 rows. Maximum score is 20.

#Check2 points if0 points if
1Message statusEvery email and SMS in the flow is LiveAny step is Draft or Manual
2Checkout triggerYou have a Live flow triggered by Started Checkout / Checkout StartedYou only trigger on Added to Cart, or the checkout flow is off
3Purchase filterProfile filter is Placed Order zero times since starting this flowThe filter is missing, uses the wrong metric, or is "in the last X days" only
4Cart vs checkout splitAdded to Cart is a separate flow with Started Checkout zero times since starting this flow, or you chose not to run Added to Cart on purposeOne flow mixes both triggers, or Added to Cart also emails people who started checkout
5Shopify overlapShopify's abandoned checkout automation is offShopify Messaging or the legacy checkout setting is still sending recovery emails
6Sequence lengthThe checkout flow has 2 to 3 messagesOne email only, or a long stack with no account-level test behind it
7Cart contentsEmails show the abandoned items and a Shopify checkout rebuild link using event.extra.checkout_urlGeneric "you left something" copy with no items, or a homepage link
8First-message offerEmail 1 is a reminder with no couponThe first send leads with a code
9Abandoned cart SMSYou send no SMS, or you send one consented SMS that follows the US rules if you mail the USSMS goes to people without SMS consent, or you send 2 or more cart texts to US numbers
10Smart SendingYou checked Smart Sending on each step and know why it is on or offYou never opened the setting, and cart emails vanish after campaign days

How to read the score

  1. 18 to 20. The pipes are in. Next work is content, offer, and timing on your catalog, plus revenue per recipient against published flow ranges.
  2. 10 to 16. At least one structural leak is suppressing sends, double-sending, or training people to wait for a code. Fix the 0s in order, starting at row 1.
  3. 0 to 8. This is not a copy problem. The flow is not set up the way Klaviyo documents abandoned cart. Do not A/B a subject line yet.

The score is a teardown, not a forecast. It will not tell you how much revenue comes back. It tells you why the machine is stalling.

If you scored under 16 and you want the fix list in one sitting, book a Klaviyo flow audit. Bring the score. We will start at the first 0.

What's the difference between abandoned checkout and abandoned cart in Klaviyo?

People search this because the labels do not match.

Klaviyo's own wording: "abandoned cart" is the umbrella. Added to Cart targets abandoned carts. Started Checkout targets abandoned checkouts. They recommend both, as two flows, because someone who starts checkout has shown stronger purchase intent than someone who only added an item.

On Shopify the metric names are Checkout Started and Added to Cart. Checkout Started records checkout activity, including checkouts that later convert. The "abandoned" part is the time delay plus the Placed Order filter, not a separate Abandoned Checkout metric.

Added to Cart is easy to miss. For Shopify you have to enable the Klaviyo app embed and Track behavioral events so the event syncs. Klaviyo's Added to Cart flow template expects these two filters together: Checkout Started zero times since starting this flow, and Placed Order zero times since starting this flow.

Their example is clean. A shopper adds a jacket at 1 PM and enters Added to Cart. At 1:30 PM they start checkout and stop. The filter drops them from the cart flow. The checkout flow takes over. That is the split you want.

If you only run Added to Cart, you are talking to a colder audience and missing the people who typed an email at checkout. If you only run Started Checkout, you never reach identified shoppers who never opened checkout. Neither choice is "wrong." Running one flow for both audiences is.

What should abandoned cart emails include?

Klaviyo's pre-built emails put the abandoned items at the center: image, title, quantity, price, repeating for each line, with a return-to-cart button. They also say to keep other products out. The job is to finish this cart, not to restart browsing.

For Shopify, the rebuild link is the event property event.extra.checkout_url. In the template it sits inside double curly braces. Save the dynamic block before you restyle the email. If you delete that block while cleaning up the layout, the email stops being a cart email.

Klaviyo's published starting point on timing: first message 2 to 4 hours after checkout starts, second message 20 to 48 hours later. The library default is a 4-hour first delay. They say each business is different, and that a fast send on a high-consideration product can feel pushy. I treat 2 to 4 hours as a default to test, not a law.

They also do not want a coupon on the first email. The stated risk is training people to abandon on purpose. If you use an incentive, they suggest holding it for the last email, or only offering it to people who have never purchased. That split is account-specific. A replenishment SKU and a $400 jacket should not share a discount rule just because a blog said "10% at 48 hours."

Abandoned cart email examples

These are examples, not winners. Steal the structure. Write the voice in your brand.

Example 1, first email, no offer

  • Subject: Still want this, first name?
  • Preview: Your cart is saved. Here is what is in it.
  • Body: The dynamic items. One button: Complete your order. One line offering help if size or shipping was the blocker. No code.

Example 2, second email, proof or help

  • Subject: Quick question about the items you left
  • Body: Same cart block. Two or three reviews for the exact product if you have them. A short FAQ on shipping or returns. Still no code unless you already tested that your buyers need one.

Example 3, last email, optional incentive

  • Subject: Your cart is still here
  • Body: Cart block again. If you use a coupon, a unique Klaviyo coupon, not a sitewide code that lives on Reddit. A path with no coupon for people who have already placed an order with you.

Klaviyo's 2026 abandoned cart report describes a common sequence some brands use: a reminder email in that 2 to 4 hour window, a text later, a last message around 48 hours. Use it as a sketch. Build the version your margins and consent rules can support.

Should I add abandoned cart SMS?

SMS is optional. Compliance is not.

Klaviyo's setup guide: only send marketing SMS to people who opted in. Put the SMS on the path for people who can receive text message marketing. Keep quiet hours on. They do not recommend turning quiet hours off for cart reminders.

If you send to the US, their cart-abandonment SMS rules are specific:

  1. Double opt-in on the list or keyword you use to collect consent.
  2. One SMS per recipient in the cart abandonment flow.
  3. Send that SMS within 48 hours of the trigger.
  4. The shopper agreed to cart reminders, not only to "texts from us."
  5. Disclosures live in your mobile terms and privacy policy.

US carriers require double opt-in for cart abandonment SMS. A checkout checkbox that is easy to miss is not a strategy. I will not tell you how to phrase legal copy. Have counsel read the Klaviyo pages and your forms.

Smart Sending does not cross channels. Email defaults to a 16-hour window. SMS defaults to 24 hours. A campaign email that morning can skip a cart email if Smart Sending is on. It will not skip a cart text. Skipped messages are not rescheduled. That is how a "working" flow looks dead on a heavy campaign week.

If you want SMS and email designed as one email and SMS program, that is the work. The channel add is not a toggle.

Why did someone get a cart email after they already bought?

This one burns trust faster than a weak subject line.

Klaviyo's filter for it is Placed Order zero times since starting this flow. They re-check that filter before every later message. If the order is in Klaviyo before the next step, the person is skipped.

When it still leaks, their troubleshooting guide says to confirm Placed Order is recording, then compare the two timestamps on that event: when Shopify marked it, and when Klaviyo stored it. A late Placed Order sync can let the first email go out after the purchase.

Separately, if the trigger event itself is delayed 6 hours or more between Shopify's timestamp and Klaviyo's recorded timestamp, a metric-triggered flow may not fire on that event at all.

Also look outside Klaviyo. Klaviyo tells you to turn off Shopify's abandoned checkout automation before you take the Klaviyo flow live. In Shopify that lives under Apps > Messaging > Automations. Some stores still have the older switch under Settings > Checkout. If both systems are on, the customer gets two reminders. Your Klaviyo flow can be perfect and still feel broken.

One more skip check: open Recipient activity > Skipped on the message. Fails Flow Filters is normal on abandonment flows. Smart Sending, Manual status, or a filter you added during a test and forgot is not.

How do I fix a low-scoring abandoned cart flow?

Work the 0s from the top of the table. Status and filters move money sooner than a new hero image.

If row 2 or 4 is a 0, split the audiences the way Klaviyo describes. Checkout starters in one flow. Cart-adders who never check out in another. Their Shopify Added to Cart article is the checklist for the second flow.

If row 5 is a 0, turn Shopify off, then set Klaviyo to Live. Do that in that order with almost no gap, so you do not leave a hole in recovery sends.

If row 6 or 8 is a 0, add the second and third messages before you invent a fourth. Klaviyo's own research lands on 2 to 3 messages. More than that is a test you should be able to defend with your data, not a default.

If row 10 is a 0, decide per message. I keep Smart Sending on for most campaign mail. On the first cart email I often turn it off, because a person who just started checkout is not the same as someone you already mailed this morning. That is a judgment call for your send volume. There is no multiplier I can give you that is honest.

Then look at the number the flow is actually producing. Klaviyo's 2026 abandoned cart benchmarks, from more than 110,000 customers, put average abandoned cart email revenue per recipient at $6.77, with the top 10% at $13.70. Average click rate on that email flow is 6%, and 11.3% for the top 10%. Abandoned cart SMS in that report averages $4.48 RPR and a 10.3% click rate. Compare your flow to those published figures, and to the ranges in our Klaviyo flow revenue benchmarks. Do not borrow a "good recovery rate" from a thread with no source.

EXAMPLE: made-up inputs, for math only. Say 600 people start checkout in a month and do not place an order. Your checkout flow's email RPR is $3.00. Klaviyo's published 2026 average is $6.77. The gap on those 600 people is 600 times $3.77, or $2,262 in attributed flow revenue for that month. Your AOV, attribution window, and volume will move this. It is not a target I am setting for you.

If you want that kind of teardown done with you, the Klaviyo experts at GOSH Digital will pull the flow up and score it live. We work with 150+ clients, $70M+ revenue, $23M+ ad spend, as a Klaviyo Gold Partner.

Book the flow audit. Bring your score. We will start at the first 0.

Sources

Mark Cijo

Written by Mark Cijo

Founder of GOSH Digital. Klaviyo Gold Partner. Helping eCommerce brands grow revenue through data-driven marketing.

Book a free strategy call →

Want results like these for your brand?

Book a free call. We'll look at your data and show you what's possible.

Pick a Time

30 minutes. No pitch deck. Just your data and our honest take.