Abandoned cart emails are one of the highest-ROI automations in Klaviyo. The average abandoned cart rate is 70–80%. If your flow is capturing and converting even a fraction of those abandoned sessions, the revenue impact compounds over time.
But most Klaviyo abandoned cart flows are working with a fraction of the events they should receive. The result isn't a broken flow - it's a flow that looks fine while quietly missing the majority of its potential triggers. Here's why this happens, and how to fix it.
Why Klaviyo Misses Abandoned Cart Events
Your Klaviyo abandoned cart flow triggers on events like "Started Checkout" or "Added to Cart." These events are sent to Klaviyo by tracking scripts running in your visitor's browser. When those scripts don't run correctly - which happens more often than most store owners realize - the events never reach Klaviyo. The cart is abandoned. No email is sent.
The most common causes of missing cart events:
Ad blockers.
Klaviyo's tracking scripts can't load when an ad blocker is active. The visitor adds a product to their cart, gets to checkout, abandons - and Klaviyo never received any event to trigger on. This affects a substantial portion of your traffic.
Safari and iOS cookie limitations.
Safari's Intelligent Tracking Prevention limits first-party cookie lifetimes, in some cases to as little as 24 hours without active browser engagement. A customer who added to cart yesterday and returns today in the same browser may no longer have an active Klaviyo cookie. If Klaviyo can't identify them, the Started Checkout event can't trigger a flow.
Cross-device and cross-browser journeys.
A customer adds to cart on their iPhone (Instagram app's in-app browser), then continues shopping on their laptop. The two sessions are in different browser contexts. Klaviyo treats them as different users. The cart abandonment on the laptop - where most purchases actually complete - isn't connected to the known Klaviyo profile from the mobile session.
Theme updates removing tracking code.
Shopify theme updates can silently remove or overwrite tracking snippets. A theme update that happened six months ago may be the reason your abandoned cart events dropped off. These changes are easy to miss because Klaviyo doesn't alert you when event volume decreases.
Consent management blocking.
When visitors decline cookie consent, Klaviyo's tracking scripts may be blocked. Unconsenting users aren't tracked - even if they add to cart and abandon.
The Compounding Problem: Identification Failure
There are actually two separate failure modes that must both be avoided for an abandoned cart email to send:
Failure 1: The event doesn't reach Klaviyo.
If the "Started Checkout" or "Added to Cart" event is blocked by an ad blocker or browser restriction, Klaviyo receives nothing. No trigger. No email.
Failure 2: The event reaches Klaviyo but can't be matched to a profile.
If the event fires but Klaviyo doesn't know who the visitor is - because their cookie expired, they're in a new browser, or they're genuinely anonymous - the event exists in Klaviyo but has no profile to associate with. No email can be sent to an unknown visitor.
Both failures are common. Both are silent. Together, they mean that the percentage of actual cart abandonment events that result in Klaviyo flow triggers is often far lower than store owners expect.
HoneyBalm discovered this when they implemented TrackBee: they were missing 74% of their addable Add to Cart events. Their "active" abandoned cart flow was triggering for less than 30% of the actual abandonment events occurring in their store.
How Large Is Your Tracking Gap?
A quick way to estimate your abandoned cart tracking gap:
Step 1:
In Klaviyo, go to Analytics > Events. Look at "Started Checkout" and "Added to Cart" event volume for the last 30 days.
Step 2:
In Shopify Analytics, look at your "Reached checkout" metric for the same period. This counts every session that reached checkout, regardless of whether Klaviyo received an event.
Step 3:
Compare. Your Klaviyo "Started Checkout" event count should be in the same ballpark as Shopify's "Reached checkout" count (accounting for the fact that anonymous visitors won't be trackable). A gap larger than 30–40% suggests a meaningful tracking problem.
Step 4:
Look at your abandoned cart flow's "Emails sent" metric and compare it to the number of Klaviyo profiles who reached checkout. If only a small percentage triggered the flow, confirm that your flow settings aren't overly restrictive before assuming a tracking issue.
The Fix: Server-Side Cart Event Capture
Fixing abandoned cart tracking gaps requires capturing cart events at the server level - not just in the visitor's browser.
Server-side event capture
records Started Checkout and Added to Cart events from your Shopify store's backend, independent of what's happening in the visitor's browser. Ad blockers can't intercept server-to-server communication. iOS restrictions don't apply. Cookie expiration is irrelevant for the event capture itself.
Persistent shopper profiles
solve the identity problem. TrackBee maintains shopper profiles that persist across browser sessions, devices, and time. When a customer adds to cart on their iPhone and their Klaviyo cookie is gone, TrackBee's profile still contains their email address and session history. The server-side Started Checkout event can be sent to Klaviyo with their identity attached - triggering the flow correctly.
The two mechanisms together address both failure modes:
-
More cart events reach Klaviyo (server-side capture)
-
More of those events are matched to known Klaviyo profiles (persistent identity resolution)
This is the same underlying fix that improves browse abandonment flows - the tracking root cause is identical, only the event type differs.
Best Practices for Your Abandoned Cart Flow
With server-side tracking ensuring reliable event delivery, optimize the flow itself:
Recommended trigger: "Started Checkout" "Started Checkout" is a more reliable trigger than "Added to Cart" because it reflects stronger purchase intent and has more associated customer data (email is typically captured at checkout initiation). Use "Added to Cart" as a supplementary trigger only if your checkout flow doesn't always capture email early.
Smart filters:
-
Exclude customers who placed an order in the last 48 hours
-
Exclude customers who have received an abandoned cart email in the last 7 days
-
Exclude customers who completed checkout after the trigger fired (Klaviyo handles this with smart sending, but explicit filters add reliability)
Timing sequence:
-
Email 1: 30 minutes after abandonment - highest open rate window; customer still has purchase intent fresh
-
Email 2: 24 hours after abandonment - follow-up for non-openers
-
Email 3: 48–72 hours after abandonment - final nudge; consider including a limited-time incentive for customers who haven't responded to the first two
Content best practices:
-
Dynamic product block showing exactly which items are in the cart (product image, name, price, variant)
-
Direct "Return to Cart" CTA button - minimize the steps to resume purchase
-
Social proof if available (reviews, star ratings for the abandoned products)
-
Email 3: consider a discount or free shipping offer for high-value carts (use conditional content blocks to apply only above a cart value threshold)
Subject line testing:
-
Urgency-based: "Your cart is about to expire"
-
Direct: "You left something in your cart"
-
Personalized: "[Product name] is waiting for you"
-
Social proof: "Others are looking at [product name]"
Real Results from Fixing Tracking
HoneyBalm:
-
+171% more Add to Cart events captured in Klaviyo
-
+220% more abandoned cart flow triggers fired
-
+213% more abandonment revenue generated
Mariëlle Stokkelaar B.V.:
-
+85% more tracked abandoned cart events
-
€24,596 in additional revenue from abandoned cart flows
Neither of these improvements came from changing the flow copy, timing, or structure. They came from fixing the tracking - ensuring that the events that should trigger the flows actually do.
Frequently Asked Questions
Should I use "Started Checkout" or "Added to Cart" as my trigger? "Started Checkout" is recommended as the primary trigger. It represents stronger intent and - because customers typically enter their email at checkout - more of these events come with identity data attached. "Added to Cart" is valuable for a separate, earlier-in-funnel sequence if you want to catch customers before they even start checkout.
Will fixing tracking make my abandoned cart emails go out to people who already purchased? No. Klaviyo's smart sending prevents abandoned cart emails from sending if a purchase event has already been received for that customer. Server-side tracking actually helps here too - purchase events are more reliably captured, so Klaviyo's smart sending has more complete information.
What's the right number of emails in an abandoned cart sequence? Three emails is the industry standard for most Shopify stores. For high-value stores (average cart value $200+), a fourth email with a more substantial offer can add incremental revenue. For lower-ticket items, two emails may be sufficient to avoid over-emailing.
How do I know if my improvements are from better tracking or from other changes? When you implement server-side tracking, you'll see a clear increase in Klaviyo "Started Checkout" and "Added to Cart" event volume in the first 24–48 hours. Flow trigger counts and email sends will increase proportionally. These are directly attributable to improved event capture.
Does improving abandoned cart tracking affect my email list hygiene? Server-side tracking sends more events to Klaviyo, but only for users who are already in your Klaviyo list. It doesn't add new profiles - it ensures existing profiles receive more of the events they should be triggering. Your list hygiene practices don't change.
Recover the Revenue Your Cart Flow Is Missing
Your abandoned cart flow is working. It's just working with a fraction of the events it should have. Fixing that fraction - by capturing events server-side and resolving customer identity across sessions - directly translates to more emails sent, more carts recovered, and more revenue.
TrackBee captures every Add to Cart and Started Checkout event, connects them to known Klaviyo profiles across sessions and devices, and sends them reliably - so your flow triggers every time it should.



.png)
