Baymard’s meta-analysis of shopping cart research pegs the average abandonment rate at roughly 70 to 80 percent, which means most of the checkout traffic a store works hard to earn simply walks away.
Klaviyo’s own benchmark data shows why that number matters so much: automated flows generate nearly 41% of total email revenue from just ~5.3% of sends, and abandoned cart is the single highest-earning flow type, historically outperforming welcome series and browse abandonment at stores with AOV above $200.
That gap between “most people leave” and “this flow earns the most per email” is exactly why klaviyo abandoned cart best practices deserve more scrutiny than any other flow in a Klaviyo account.
This list is built for Shopify and DTC operators who already have Klaviyo running and want the abandoned cart flow to pull its weight, not marketers starting from zero.
The ten practices below are ranked editorially by impact: #1 addresses the change most likely to move revenue, and each entry ties back to a specific, sourced detail rather than a design opinion.
Most roundups on this topic skip the one failure that makes every other tactic irrelevant: if Klaviyo’s Started Checkout or Added to Cart events never fire in the first place, no amount of copy, timing, or discount tuning inside the abandoned cart flow will recover a cent, which is exactly what the tracking practice further down covers.
For a look at how these flows should actually be built and styled once the events are firing, see our abandoned cart email templates for Klaviyo.
TL;DR: The Klaviyo Abandoned Cart Practices That Matter Most
The highest-impact Klaviyo abandoned cart practices are fixing event tracking first, then triggering on Started Checkout, tight timing on the first send, and disciplined discounting.
- For recovering the most carts: fix the tracking gap before touching copy or design, since ad blockers, Safari’s cookie limits, and cross-device sessions can silently block the Started Checkout and Added to Cart events an abandoned cart flow depends on.
- For stronger intent data: trigger on Started Checkout rather than Added to Cart, since it fires only after someone enters checkout information, which is a clearer signal of purchase intent.
- For the fastest recovery window: send the first email within an hour of abandonment, before intent cools off.
- For protecting margin: hold any discount until the final email in the sequence rather than leading with one.
- For higher click-through: show the exact product left in the cart instead of generic cart-reminder copy.
- For catching Shopify-specific gaps: confirm the Track behavioral events setting is enabled, since Shopify stores need it switched on for Added to Cart to fire at all.
Klaviyo benchmark data backs the ordering above: abandoned cart is the top-earning flow type at roughly $14.14 per recipient for stores with an average order value above $200, well ahead of welcome series or browse abandonment.
None of that revenue shows up if tracking is broken, which is why fixing the tracking gap ranks above every copy or design decision in this list.
For the templates that pair with a correctly firing flow, see our Klaviyo abandoned cart email templates.
How We Ranked These Abandoned Cart Practices
Four criteria decide the order of this list, and every entry below gets scored against all four.
Revenue impact per recipient
Practices rank higher when a measurable revenue-per-recipient figure backs them up.
Klaviyo’s own benchmark data puts abandoned cart at roughly $14.14 per recipient for stores with an average order value above $200, the highest of any flow type, which is why fixes that protect or grow that number sit at the top of the list.
Anchored to a sourced benchmark
Every practice in this list cites a real number rather than a design opinion.
That includes Baymard’s 70 to 80 percent cart abandonment rate, Klaviyo’s documented 2 to 4 hour and 20 to 48 hour send windows, and the 2 to 3 message range Klaviyo cites as optimal for an abandoned cart sequence.
Where a practice can’t be tied to a sourced figure, it gets dropped rather than propped up with a vague claim.
Deliverability and list safety
A practice loses rank if it risks sender reputation, even when it might lift short-term clicks.
Over-sending to unengaged segments, skipping suppression filters for recent purchasers, or ignoring engagement-based segmentation all count against a practice here, because a flow that damages inbox placement costs more than it recovers.
Effort to implement in Klaviyo
Each entry states plainly whether the fix is a settings toggle, a flow filter, or a rebuild of the trigger logic.
A one-click setting change (like enabling Shopify’s Track behavioral events) ranks differently in practicality than a full server-side tracking migration, even when both address the same underlying gap in klaviyo abandoned cart tracking.
These four criteria carry through every entry’s strengths and weaknesses section, so the ranking logic stays consistent from practice #1 to practice #10.
1. Fix the tracking gap before optimizing anything else
Overview
The most common reason a Klaviyo abandoned cart flow underperforms is not copy, it is that the trigger events never reach Klaviyo.

Started Checkout and Added to Cart are the two events almost every abandoned cart flow depends on, and both are sent from scripts running in the shopper’s browser.
When those scripts fail to fire, the flow doesn’t break in any visible way, it just quietly stops triggering for a growing share of real abandonment.
Best for: any Shopify or DTC store that hasn’t audited its Klaviyo event volume against actual checkout traffic in the last few months.
Why it works
Ad blockers stop Klaviyo’s tracking script from loading at all, so a shopper can add to cart, reach checkout, and abandon without a single event reaching the account.
Safari’s Intelligent Tracking Prevention limits first-party cookie lifetimes, in some cases to as little as 24 hours of inactivity, so a returning shopper can lose their Klaviyo identity between sessions.
Cross-device journeys break the chain further: someone adds to cart in Instagram’s in-app browser on their phone, then finishes shopping (or abandons) on a laptop, and Klaviyo treats the two sessions as different people.
Shopify theme updates can silently strip or overwrite tracking snippets, which means a change made six months ago could be the actual reason abandoned cart tracking has been quietly broken since.
Consent banners and cookie-blocking browser settings add a further layer, since a shopper who declines tracking consent never generates a trackable event in the first place.
How to do it in Klaviyo
Pull Started Checkout and Added to Cart event volume from Klaviyo’s Analytics > Events for the last 30 days.
Compare that number against Shopify’s Reached Checkout metric for the same period, which counts every session that hit checkout regardless of whether Klaviyo received anything.
A gap larger than 30 to 40 percent between the two numbers signals a real tracking problem rather than normal anonymous-visitor noise.
Server-side tracking, which sends these events directly from Shopify’s backend instead of relying on a browser script, is the standard fix once that gap is confirmed.
Watch out for
A flow that looks completely healthy in Klaviyo’s dashboard while actually triggering for under 30 percent of real abandoned sessions is the exact failure mode this practice catches.
Before assuming a tracking problem, rule out overly restrictive flow filters by checking how many Klaviyo profiles that reached checkout actually triggered the abandoned cart flow.
The number behind it
One documented case (HoneyBalm) found it was missing 74 percent of Add to Cart events due to browser-side tracking failures.
After moving to server-side capture, flow triggers increased by 220 percent and abandonment revenue rose by 213 percent.
No single vendor or tool is the only way to close this gap, but the fix always comes down to capturing events server-side instead of depending entirely on a browser script that ad blockers, Safari’s ITP, and theme updates can all silently break.
2. Trigger on Started Checkout, not Added to Cart
Overview
Started Checkout is the recommended primary trigger for a Klaviyo abandoned cart flow because it reflects stronger purchase intent and usually carries an email address.
Added to Cart still has a role, but that role is a separate, earlier flow rather than the main abandoned cart trigger.
Best for: any store deciding which event should fire the primary abandoned cart flow versus a supplementary browse or cart-add sequence.
Why it works
Email is typically captured at the point a shopper enters checkout, not when they first add an item to their cart.
That means a Started Checkout event resolves to a real, mailable customer profile far more often than an Added to Cart event does.
A shopper who reaches checkout has also moved further down the funnel, so the trigger itself is a stronger intent signal than a cart add.
How to do it in Klaviyo
Most pre-built Klaviyo flows in the flow library already trigger on Started Checkout by default, so this is often a matter of confirming the setting rather than rebuilding anything.
Some ecommerce integrations track Added to Cart instead, and the setup requirements differ by platform: BigCommerce needs this metric configured manually, while Shopify requires the Track behavioral events setting to be turned on before Added to Cart fires at all.
Added to Cart works best as a separate, earlier flow aimed at browse-stage engagement rather than as a replacement for the Started Checkout trigger.
Watch out for
Added to Cart fires before most shoppers have entered an email address, so a large share of those events stay anonymous and can’t be mailed at all.
Building a flow around Added to Cart alone, without a checkout-stage trigger behind it, risks missing the very customers who moved closest to completing a purchase.
The number behind it
Started Checkout carries more associated customer data than Added to Cart, since email is typically captured at checkout initiation rather than at the cart-add stage.
That data advantage is exactly why Started Checkout functions as the more reliable trigger for recovering revenue, not because Added to Cart is a bad signal, but because fewer of its events ever resolve to a real customer record.
3. Send the first reminder 2 to 4 hours after abandonment
Overview
Send the first abandoned cart email 2 to 4 hours after checkout starts, then a second one 20 to 48 hours later if the shopper hasn’t engaged.
Klaviyo’s pre-built flows default to a 4-hour delay before the first message goes out.
Best for: stores using a standard checkout flow where the buying decision doesn’t require days of consideration.
Why it works
Sending too soon after abandonment risks landing while whatever distracted the shopper (a phone call, a closed tab, a kid who needed something) is still happening, which makes the email feel poorly timed and easy to ignore.
Waiting too long lets purchase intent decay, and the shopper may have already bought elsewhere or lost interest entirely.
The 2 to 4 hour window sits in the middle: close enough that the cart is still fresh, distant enough that the original distraction has usually passed.
How to do it in Klaviyo
Klaviyo’s pre-built abandoned cart flow ships with a 4-hour delay before the first send, and that default works well for a broad range of stores.
Products that require more consideration, like mattresses or other big-ticket items, often perform better with a longer delay than something quick to decide on, like shoes.
The second message in the sequence should go out 20 to 48 hours after the first, giving non-openers a follow-up window without feeling repetitive.
Watch out for
Stores that don’t sync through Shopify or BigCommerce often update checkout data on an hourly (or slower) cycle, so a delay set too short can trigger the email before Klaviyo has even received the abandonment event.
For those integrations, a delay of at least 1 hour and 15 minutes protects against sending based on stale or incomplete sync data.
The number behind it
Klaviyo’s own guidance names a 2 to 4 hour window for the first email and a 20 to 48 hour window for the second, and there’s no single best time that applies to every store.
The right delay depends on the buying cycle for what’s being sold, not a fixed number copied from a different business’s flow.
4. Keep the flow to 2 or 3 messages
Overview
Klaviyo’s benchmark data across thousands of stores shows 2 to 3 abandoned cart messages perform best.
That’s enough surface area to catch shoppers who missed the first send without tipping into the kind of repetition that trains people to ignore the whole sequence.
Best for: any store running (or building) a standard abandoned cart flow, regardless of platform.
Why it works
A single email only reaches whoever happens to open that one message, so a second and third send give the flow more chances to catch non-openers.
Each message in a short sequence can take a different angle instead of repeating the same pitch: a plain reminder first, a slightly more persuasive follow-up second, and a final nudge or product suggestion third.
That variation matters more than the raw number of sends, since three identical reminders feel like nagging while three distinct angles feel like a real sequence.
How to do it in Klaviyo
A simple three-email structure covers most stores: email one reminds the shopper what’s in their cart, email two follows up for non-openers with a bit more urgency or personalization, and email three offers a product recommendation or a modest incentive.
Stores with a higher average order value, above roughly $200, sometimes see incremental revenue from adding a fourth email built around a larger offer.
Lower-ticket stores can often get by with two messages, since the buying decision doesn’t need as much reinforcement.
Watch out for
Pushing past three sales-oriented emails rarely helps once a shopper has already bought elsewhere or decided against the purchase entirely.
At that point, a fourth or fifth send just adds noise (and inbox fatigue) without adding order volume.
The number behind it
Klaviyo’s guidance across its customer base points to 2 to 3 messages as the optimal length for an abandoned cart flow.
Separately, email marketer Chase Dimond has reported that a full sequence can drive 69 percent more orders compared to sending a single abandoned cart email, which is the kind of gap that makes the difference between a flow and a one-off reminder.
5. Add flow filters that exclude recent purchasers
Overview
Flow filters are what stop a buyer from getting a “you left something behind” email after they’ve already checked out.

Without them, the flow has no way to know the cart it’s emailing about no longer exists.
Best for: any live abandoned cart flow, since this is a hygiene fix rather than an optional refinement.
Why it works
A shopper can trigger the flow, then complete their purchase before the next scheduled email goes out.
Klaviyo doesn’t automatically know the order happened unless a filter checks for it, so without one, the message still fires on schedule regardless of what the customer did in between.
Getting a reminder about a cart you already paid for reads as sloppy at best and makes the brand look like it isn’t paying attention.
How to do it in Klaviyo
Add a flow filter for Placed Order zero times since starting this flow, which stops the send the moment a purchase clears during the flow’s timing window.
A second filter, hasn’t been in this flow in the last X days, prevents the same shopper from getting hit with a fresh abandoned cart sequence every time they add an item without buying.
Stores using Amazon Buy with Prime need a separate flow entirely, triggered by the Buy with Prime checkout event, with its own placed-order filter tied to that specific order path.
Watch out for
Seeing a chunk of profiles listed as skipped due to failing profile filters is normal, and it’s actually the filter doing its job by keeping buyers out of the send.
Smart sending helps Klaviyo avoid over-messaging the same profile, but it isn’t a substitute for an explicit Placed Order filter, since smart sending manages frequency, not purchase status.
The number behind it
Klaviyo checks profile filters against each message right before it sends, which is why the filter has to be attached to the flow itself rather than assumed from the trigger.
That check-before-send behavior is the mechanism that makes the flow safe to run at higher frequency without risking a post-purchase send.
6. Build the email around the dynamic product block
Overview
The dynamic product block, the exact item a shopper left behind, should be the core of the email, not a launchpad for a new pitch.
Klaviyo’s default abandoned cart flow already includes this block, pulling in the image, title, quantity, and price for each item in the cart.
Best for: any abandoned cart flow, pre-built or custom, since this is a content decision that applies regardless of platform.
Why it works
An abandoned cart email is recovery, not discovery: the shopper already chose the product, so the job of the email is to make finishing that choice as easy as possible.
Leading with the exact item, followed by a direct Return to Cart button, keeps the message focused on the one action that matters instead of asking the reader to reconsider from scratch.
The dynamic block repeats automatically for each item if the cart holds more than one product, so a multi-item cart doesn’t need a separate template.
How to do it in Klaviyo
In a pre-built flow, the dynamic content block and its Return to Cart button come populated automatically based on the store’s ecommerce integration.
Building a flow from custom HTML means looping the triggering event’s line items yourself, and the array name and field paths are not the same across platforms.
Shopify uses event.extra.line_items, BigCommerce uses event.extra.items, Magento 2 uses event.Items, and WooCommerce uses event.extra.Items, so a template built for one platform’s field paths will render blank on another.
Single-product events like Added to Cart or Viewed Product don’t need a loop at all, since they only ever carry one item and use a static content block instead.
Watch out for
Event-scoped variables such as these line-item arrays only resolve inside a metric-triggered flow, never inside a plain campaign.
Get that scope wrong, and the block doesn’t throw an error, it just renders blank, which is easy to miss until a real customer sees an empty product section.
The number behind it
Klaviyo’s dynamic block pulls exactly four data points per product: image, title, quantity, and price, plus a Return to Cart link that in some integrations can rebuild the customer’s full cart regardless of the device they click from.
Sticking to only the abandoned products, rather than padding the email with unrelated cross-sells, keeps the message aligned with what converts: the item the shopper already decided they wanted.
7. Hold discounts until the final email, and only for new buyers
Overview
Don’t put a coupon in the first email, since that trains customers to abandon carts on purpose to get the discount.
Holding the incentive back until the final message in the sequence, and limiting it to shoppers who haven’t purchased before, keeps margin intact while still giving hesitant buyers a reason to convert.
Best for: stores with repeat traffic where the same shoppers abandon carts across multiple sessions.
Why it works
A discount that shows up in every abandoned cart email, every time, quickly stops being an incentive and starts being an expectation.
Once a shopper learns that abandoning gets them a coupon, they’ll abandon on purpose the next time, which erodes margin on purchases that would have happened anyway.
Reserving the discount for the last email in the sequence, and typically only for first-time buyers, avoids devaluing the brand upfront while still giving genuinely price-sensitive shoppers a reason to come back.
How to do it in Klaviyo
A conditional or multi-branch split can route first-time buyers down a path that includes a discount, while repeat customers continue through a version of the flow without one.
Personalized, time-limited codes work better than a static storewide coupon, since a unique code with a visible expiry (or a countdown) creates urgency without implying the discount is always available.
Segmenting by average order value also matters: for stores where margin doesn’t support a blanket discount, limiting the incentive to higher-value carts protects overall profitability while still recovering the sends most worth recovering.
Watch out for
Repeat cart abandoners who’ve learned the pattern will wait for the discount before buying, so offering the same incentive to that segment every time works against the store rather than for it.
One-off discount codes limited to new customers sidestep this problem, since a shopper who’s already redeemed a first-time offer won’t qualify for another one.
The number behind it
Economic pressure has pushed 37 percent of consumers to actively seek out discounts and promotions from retail and ecommerce brands in the past six months, according to Klaviyo’s own consumer research.
Separately, Baymard’s research on cart abandonment found that 39 percent of shoppers abandon a cart because of unexpected extra costs like shipping or fees, which is a different problem than price sensitivity and one a blanket discount doesn’t actually fix.
8. Use free shipping as the alternative to a discount
Overview
When extra costs are the reason people walk, free shipping often beats a discount at getting them back.
It addresses the actual objection that made someone abandon in the first place, rather than just making the whole order cheaper across the board.
Best for: stores where shipping cost, not product price, is the more common reason carts get abandoned.
Why it works
Baymard’s research found that 39 percent of cart abandoners walk away because extra costs, like shipping, are too expensive relative to the product price they expected.
McKinsey has found that shipping costs that feel too high cause the vast majority of shoppers in that situation to back out of the purchase entirely.
A free shipping offer answers that specific objection directly, while a percentage-off discount cuts into the product price even for shoppers who were never bothered by shipping cost to begin with.
How to do it in Klaviyo
Introduce the free shipping offer toward the end of the abandoned cart automation rather than in the first message.
Gating it with engagement filters targets subscribers who opened or clicked earlier sends and are still on the fence, rather than offering it to everyone regardless of interest.
Surfacing the offer at the top of the email, paired with a clear line about how long it’s available, gives the incentive the same urgency a discount code would carry.
Watch out for
Free shipping only makes sense where the shipping cost itself doesn’t eat the entire margin on the order, so segmenting by cart value before offering it matters just as much as it does for discount codes.
Stacking free shipping and a percentage discount on the same send erodes margin twice for one recovered order, so pick one lever per email rather than combining both.
The number behind it
Baymard’s data puts extra costs, including shipping, as the reason 39 percent of shoppers abandon a cart, making it one of the most common objections behind an abandoned checkout.
McKinsey’s research corroborates that shipping cost perceived as too high causes more than 90 percent of affected shoppers to abandon rather than complete the purchase, which is why removing that specific cost tends to outperform a general discount.
9. Personalize the flow with cart value and browsing data
Overview
True personalization goes past the first name, it splits the flow by cart value, browsing intent, and behavior.

A shopper who browsed the same product five times in a week is a different case than one who added an item and left after a single glance, and the flow should treat them differently.
Best for: stores with enough order and browsing volume to justify building out conditional logic rather than a single linear flow.
Why it works
A high-value cart carries more revenue potential than a low-value one, so it justifies extra attention: a stronger incentive, a more personal message, or a higher priority in send timing.
Repeated product views signal stronger intent than a single add-to-cart, which means the same generic reminder copy undersells the shopper who’s clearly closer to buying.
Treating every abandoned cart the same way, regardless of size or signal, means both overspending on low-value carts and underdelivering on high-value ones.
How to do it in Klaviyo
Trigger splits can activate an incentive, like free expedited shipping or a discount, only when cart value crosses a set threshold, so the more valuable carts get the stronger nudge.
Conditional splits handle the content side: a one-item cart can get benefit-focused copy about that specific product, while a multi-item cart can shift toward a bundle-style message that reflects the broader purchase intent.
Excluding customers with an open support ticket from the flow avoids sending a purchase nudge to someone who’s mid-conversation about a problem, and surfacing loyalty points or tier status where available adds another layer of relevance.
Watch out for
Klaviyo has no endpoint that lists every custom profile field on an account, so any tool or integration pulling that data is sampling recent profiles rather than reading a complete schema.
That means the exact list of available personalization fields may be incomplete, and it’s worth checking what’s actually populated on real profiles before building a split around a field that turns out to be sparsely filled.
The number behind it
Manly Bands built a survey-based split into its abandoned cart flow and saw a placed-order rate 4.8 times its peer median, a result tied directly to routing shoppers based on what they’d actually indicated about their purchase.
Personalization that stops at a first name doesn’t get anywhere near that kind of lift, since the name field carries no signal about cart value, intent, or what would actually move that specific shopper to buy.
10. Add SMS to the flow for high-intent nudges
Overview
For a high-intent flow like abandoned cart, SMS adds urgency on the channel some shoppers prefer over email entirely.
Layering a text reminder into the sequence reaches subscribers who ignore email but check their phone within minutes of a notification.
Best for: stores that have already collected phone numbers and SMS consent, and want to add a second channel to an existing email-only flow.
Why it works
Some subscribers simply engage more with text than with email, so an email-only flow leaves that portion of the list unreached no matter how good the copy is.
A quick text about the specific item left behind can be the nudge that gets someone back to checkout when three emails already went unopened.
How to do it in Klaviyo
Set up the abandoned cart flow as email-only first, then layer in SMS for the subset of subscribers who’ve opted in and provided a phone number.
Klaviyo’s channel affinity feature can route each subscriber to whichever channel they engage with most, so email-preferring shoppers stay on email and SMS-preferring shoppers get the text instead of both.
For US recipients, three compliance rules apply: SMS consent must be collected through double opt-in, only one abandoned cart text can go to each recipient, and that text has to send within 48 hours of the cart being abandoned.
Watch out for
Sending SMS without collected consent isn’t a gray area, it’s a compliance violation, so this practice only applies to subscribers who’ve explicitly opted in through a proper double opt-in flow.
The one-text-per-recipient limit also means SMS works as a single high-impact touchpoint in the sequence, not a parallel track of multiple reminders the way email can be.
The number behind it
CurrentBody’s SMS reminders in its abandoned cart sequence achieved the highest click rates of any message in the flow, ahead of every email in the same sequence.
That result lines up with the broader logic behind adding SMS at all: it’s not a replacement for email, it’s a way to reach the portion of the list that email alone doesn’t move.
For the full guide to building and styling this flow end to end, see our Klaviyo abandoned cart email templates.
Klaviyo Abandoned Cart Best Practices Comparison Table
The table below summarizes all 10 klaviyo abandoned cart best practices side by side, so you can scan revenue impact and implementation effort without re-reading every entry. Each row pulls the core action, sourced benchmark, and main risk directly from the practice above it.
| Practice | Best For | Core Action in Klaviyo | Sourced Benchmark | Main Risk If Skipped |
|---|---|---|---|---|
| 1. Fix the tracking gap | Stores with unaudited event volume | Compare Klaviyo events vs Shopify Reached Checkout | HoneyBalm: +220% triggers, +213% revenue | Flow looks fine, misses most abandonments |
| 2. Trigger on Started Checkout | Choosing a primary trigger event | Set flow trigger to Started Checkout | More associated customer data at checkout | Anonymous events that can’t be mailed |
| 3. Send first reminder 2-4hrs later | Standard checkout flows | Set 2-4hr delay, second email 20-48hrs later | Klaviyo: 2-4hr / 20-48hr window | Sent too early (ignored) or too late (intent lost) |
| 4. Keep flow to 2-3 messages | Any standard abandoned cart flow | Build 3-email sequence with varied angles | Chase Dimond: +69% more orders vs single email | Repetition fatigue or missed non-openers |
| 5. Add flow filters | Any live abandoned cart flow | Add “Placed Order zero times” filter | Filters checked before every send | Post-purchase emails, reputation damage |
| 6. Build around dynamic product block | Pre-built or custom HTML flows | Loop event line items (per-platform field paths) | 4 data points per product (image, title, qty, price) | Blank block from wrong field path or scope |
| 7. Hold discounts until final email | Stores with repeat abandoners | Split first-time buyers into discount path | Klaviyo: 37% of consumers now seek discounts | Training shoppers to abandon for a coupon |
| 8. Use free shipping as alternative | Shipping-cost-driven abandonment | Gate offer with engagement filters late in flow | Baymard: 39% abandon over extra costs | Margin loss if stacked with a discount |
| 9. Personalize with cart value and browsing data | Stores with order/browsing volume | Trigger and conditional splits by cart value | Manly Bands: 4.8x peer median placed-order rate | Flat, name-only personalization underperforms |
| 10. Add SMS for high-intent nudges | Stores with SMS consent collected | Layer SMS onto opted-in numbers, US: 48hr window | CurrentBody: highest click rate in sequence | Compliance violation if sent without consent |
How to Choose Which Practices to Implement First
Not every store needs all 10 practices on day one, and doing them out of order wastes effort on refinements that a broken foundation will undermine anyway. Three decision factors determine the right sequence for a given store.
Start with event tracking and filters
Fix tracking and flow filters before touching anything else, since a well-written flow that never triggers, or one that mails people who already bought, wastes every other improvement on this list.
Copy, timing, and incentives only matter once the flow reliably captures abandonment events and reliably excludes buyers, so this is the non-negotiable starting point regardless of store size or product category.
An abandoned cart flow built on a tracking gap looks like it’s working in the dashboard while quietly missing most of the traffic it should be catching.
Match timing and message count to your product
Big-ticket or high-consideration products, the kind that require research before buying, generally need longer delays between sends and can support a longer sequence without feeling pushy.
Low-ticket, quick-decision products usually do better with tight timing and a shorter flow, since there’s less to think over before the shopper decides one way or the other.
The right combination isn’t a fixed number so much as a match between how long your customer actually takes to decide and how much space the flow gives them to do that.
Layer incentives only where margin allows
Add a discount or free shipping offer only where cart value and margin actually support it, and only after a no-incentive reminder has already had its chance to convert the sale on its own.
Incentivizing every abandoned cart from the first email trains shoppers to expect one, which costs margin on sales that would have closed anyway without any offer at all.
Segmenting by cart value before adding any incentive keeps the extra cost concentrated on the orders where it can still generate a net gain.
Sequence the work in that order: fix tracking (practice 1), add flow filters (practice 5), and confirm the Started Checkout trigger (practice 2) first.
Then dial in timing and message count (practices 3 and 4) once the foundation holds.
Everything else, from the dynamic product block through discounts, free shipping, personalization, and SMS (practices 6 through 10), builds on top of a flow that’s already firing correctly and excluding the right people.
Frequently Asked Questions
What is the best abandoned cart flow trigger in Klaviyo?
Started Checkout is the best trigger for most stores, since it reflects stronger purchase intent and usually captures the shopper’s email address at the same time.
Added to Cart fires earlier, before many shoppers have entered their email, so a large share of those events can’t actually be mailed. It works better as a separate, earlier flow rather than the main abandoned cart trigger.
How many abandoned cart emails should I send?
Klaviyo’s benchmark data points to 2 to 3 abandoned cart emails as the optimal sequence length across most stores.
That range gives enough chances to catch non-openers while letting each message take a different angle: a reminder, a follow-up, and a final nudge or incentive. Pushing past 3 sales-oriented sends rarely improves results once a shopper has already bought elsewhere or moved on.
When should the first abandoned cart email go out?
The first email should go out 2 to 4 hours after checkout starts, with a second message following 20 to 48 hours later if there’s no response.
Klaviyo’s pre-built flow defaults to a 4-hour delay, which works for a broad range of stores. Products that require more consideration, like big-ticket items, often perform better with a longer delay than something quick to decide on.
Should I include a discount in my abandoned cart flow?
Hold any discount to the final email in the sequence, or limit it to first-time buyers, rather than including one in the first message.
Leading with a coupon trains shoppers to abandon carts on purpose to get it, which costs margin on purchases that would have happened anyway. Free shipping is often a stronger alternative when extra costs, rather than price, are the reason people are walking away.
How do I stop abandoned cart emails after someone buys?
Add a flow filter for Placed Order zero times since starting this flow, which stops the send the moment a purchase clears during the flow’s timing window.
Klaviyo checks this filter against each message right before it sends, so it has to be attached to the flow itself rather than assumed from the trigger. Smart sending helps manage overall send frequency, but it isn’t a substitute for this explicit filter.
Can I use dynamic product blocks in custom HTML?
Yes, a custom HTML flow can loop the triggering event’s line items to build its own dynamic product block, but the array name and field paths differ by platform.
Shopify uses event.extra.line_items, BigCommerce uses event.extra.items, Magento 2 uses event.Items, and WooCommerce uses event.extra.Items. A template built around one platform’s field paths will render blank on another, and these event-scoped variables only work inside a metric-triggered flow, never inside a plain campaign.
Why is my Klaviyo abandoned cart flow triggering for so few people?
A low trigger rate usually points to a tracking gap rather than a problem with the flow itself.
Compare Klaviyo’s Started Checkout and Added to Cart event volume in Analytics > Events against Shopify’s Reached Checkout metric for the same period. A gap larger than 30 to 40 percent signals that ad blockers, Safari’s cookie limits, cross-device sessions, or a theme update are silently blocking events before they ever reach Klaviyo.