Troubleshooting
Klaviyo abandoned cart flow not firing — diagnose and fix
Six reasons a Klaviyo abandoned cart flow silently stops firing — Started Checkout tracking, Shopify theme regressions, WooCommerce conflicts, Smart Sending, blocking filters, and product mismatches — with the exact diagnostic step for each.
title: "Klaviyo abandoned cart flow not firing — diagnose and fix" description: "Six reasons a Klaviyo abandoned cart flow silently stops firing — Started Checkout tracking, Shopify theme regressions, WooCommerce conflicts, Smart Sending, blocking filters, and product mismatches — with the exact diagnostic step for each." slug: "klaviyo-abandoned-cart-flow-not-firing" publishedAt: "2026-05-19" updatedAt: "2026-05-19" painCluster: 1 intent: 10 tier: 1 faq:
- q: "Why did my Klaviyo abandoned cart flow stop firing?" a: "The most common cause is the underlying trigger event (Started Checkout or Added to Cart) silently stopped recording while the flow itself still shows as Live. Check the metric's recent activity in Analytics → Metrics. If the last event is days old, the integration — not the flow — is the problem."
- q: "How do I know if Started Checkout is still recording in Klaviyo?" a: "In Klaviyo, open Analytics → Metrics → Started Checkout. The chart should show events landing every few minutes during your store's traffic hours. A flat line on the right edge means the event has stopped firing, regardless of what the flow editor shows."
- q: "My abandoned cart flow says Live but nobody is entering it. What does that mean?" a: "A flow can be Live while receiving zero entries. That happens when the trigger event isn't being recorded by Klaviyo, when a flow filter is blocking every profile (a common one: 'Started Checkout zero times since starting this flow'), or when Smart Sending is suppressing the send for everyone who would otherwise enter."
- q: "Does a Shopify theme update affect my Klaviyo abandoned cart flow?" a: "Yes. Shopify theme updates frequently strip out the Klaviyo onsite tracking snippet — the snippet that records Started Checkout. After every theme update, verify that Started Checkout is still firing on a test checkout before assuming everything works."
- q: "Will Klaviyo notify me if my abandoned cart flow stops working?" a: "No. Klaviyo's UI shows the flow as Live even when the underlying trigger metric has stopped recording. Detection of that drift is the gap Playbook fills — hourly scans flag metrics that have gone quiet for longer than expected."
- q: "How long does it take Klaviyo to detect an abandoned cart event?" a: "Under normal conditions, an Added to Cart or Started Checkout event lands in Klaviyo within seconds. If you're not seeing the event in Analytics → Metrics within a minute or two of triggering it in a test session, the integration is the issue, not Klaviyo's processing speed."
- q: "Can Smart Sending block my abandoned cart flow?" a: "Yes — and this is the most counter-intuitive failure mode. Smart Sending suppresses any send to a profile that's already received an email within the last 16 hours by default. A profile that just got your daily campaign won't receive your abandoned cart email. For abandoned cart specifically, Smart Sending should usually be off." related:
- klaviyo-checkout-started-event-not-working
- klaviyo-shopify-integration-not-syncing
- klaviyo-flow-not-sending-emails
- klaviyo-add-to-cart-not-tracking
A Klaviyo abandoned cart flow that has stopped firing is one of the most expensive silent failures in ecommerce. The flow editor shows green. Subscribers are coming in. The site looks healthy from every angle except one: the revenue that flow is supposed to produce is gone, and the only way to notice is to read a weekly report carefully enough to spot the dip.
This page walks through the six failure modes that account for almost every "my abandoned cart isn't firing" thread you'll find in the Klaviyo Community. For each, there's a specific diagnostic step — what to click, what to look for, and what the answer tells you. None of these are theoretical. They're patterns Playbook detects across customer accounts every week.
If you're in the middle of the problem right now, skip to the Quick diagnosis checklist below and work through it in order. The checklist is ordered by likelihood, not by alphabet — the first three items cover ~80% of cases.
Quick diagnosis checklist
Work through these in order. Each takes 60 seconds or less.
- Open Analytics → Metrics → Started Checkout. If the last event is older than a few hours, the trigger event has stopped recording. That's your problem. Stop here and read the "Started Checkout has gone silent" section below.
- Open the flow → look at the trigger node → "Latest entries" tab. If the number is zero for the last 24 hours, profiles aren't entering the flow even though the trigger event might be firing. That points to a flow filter or Smart Sending blocking entries.
- Trigger a test checkout yourself. Open an incognito window, add to cart, start checkout, abandon. Wait two minutes. Check Analytics → Metrics → Started Checkout for your profile. If your event doesn't appear, the integration is broken.
- Check your Shopify integration status. Settings → Integrations → Shopify. If you see "Your credentials have expired, please re-authenticate" — that's your problem. Reconnect and the trigger will start recording again within minutes.
- Open the flow filters. If you see a filter like "Started Checkout zero times since starting this flow," that filter is blocking everyone who's done the action you want to trigger on. Remove it or rewrite it.
- Confirm Smart Sending is OFF on the first email in the abandoned cart flow. For abandoned cart specifically, Smart Sending almost always works against you — it suppresses the very people you're trying to reach.
- If you're on WooCommerce, check whether a plugin update happened recently. WooCommerce plugin updates frequently break the webhook handshake. The fix is usually to disconnect and reconnect the integration.
If you've worked through all seven and the flow still isn't firing, the issue is probably one of the longer-tail failure modes below. Read on.
1. Started Checkout (or Added to Cart) has gone silent
This is the failure mode that's hardest to spot from inside Klaviyo. The flow editor shows everything green. The flow itself is Live. But the metric Klaviyo uses to decide whether to put someone into the flow has stopped recording new events.
How to verify it. Analytics → Metrics → Started Checkout (or whatever your abandoned cart trigger uses — some legacy flows are wired to Added to Cart instead). The chart should show steady event volume during traffic hours. If the right edge of the chart is flat — no events for the last 24 hours when the previous week shows steady volume — the metric has stopped recording.
What causes it. Almost always a broken connection between your storefront and Klaviyo. The two most common shapes:
- The Klaviyo onsite tracking snippet has been removed from your theme (frequent after Shopify theme updates).
- Your Shopify OAuth token has expired and Klaviyo is no longer receiving webhook events. The integration page in Klaviyo will usually say so explicitly.
Why this matters for Playbook. This is exactly the failure mode that's invisible from Klaviyo's UI. The flow looks healthy. The dashboard looks healthy. Only by checking the trigger metric's recent activity can you see what's broken — and that's not a check anyone does as a routine. Playbook runs that check every hour and surfaces "Started Checkout last fired 14 hours ago, vs. expected hourly" before you'd notice the revenue dip.
2. A Shopify theme update removed the Klaviyo onsite tracking snippet
Shopify themes update frequently — particularly with newer themes that auto-update minor versions. Most theme updates don't touch third-party snippets. Some do. The Klaviyo snippet — the klaviyo.js script tag that records Started Checkout, Viewed Product, and Added to Cart on the client side — is one of the most commonly affected.
How to verify it. Open your storefront in a regular browser. View source. Search for klaviyo. You should see a script tag pulling from static.klaviyo.com. If the snippet is missing, that's why your client-side events stopped firing.
How to fix it. In Klaviyo, go to Settings → Integrations → Shopify and re-enable Onsite Tracking. The toggle re-injects the snippet through the integration. If you've heavily customized your theme, you may need to add the snippet manually — Klaviyo's Shopify integration page provides the exact tag.
The trap to avoid. Don't just verify that Started Checkout is firing on the order confirmation page. That event also fires server-side from Shopify's webhook. The client-side Added to Cart and Viewed Product events, however, only fire from the JS snippet. Test by adding a product to cart and watching the Klaviyo metric in Analytics — if Added to Cart doesn't fire but Started Checkout does, the snippet is the problem.
3. A WooCommerce plugin or extension broke the webhook
If your store is on WooCommerce rather than Shopify, the failure mode is structurally similar but the diagnostic is different. WooCommerce → Klaviyo runs through a WordPress plugin that handles the webhook handshake. Plugin updates — WooCommerce itself, Klaviyo's WooCommerce plugin, or any caching/optimization plugin that interferes with HTTP requests — can break the webhook.
How to verify it. In WordPress, go to Klaviyo's plugin settings page. Check the connection status. If the integration shows "disconnected" or hasn't synced events recently, that's your problem.
How to fix it. Disconnect and reconnect the Klaviyo plugin. If recent WooCommerce or WordPress updates introduced the issue, check Klaviyo's plugin changelog for a compatibility update. If a caching plugin is interfering, exclude Klaviyo's API endpoints from caching.
Why this is worse than the Shopify version. WooCommerce's webhook layer is more fragile than Shopify's. A failed webhook on Shopify usually retries; a failed webhook on WooCommerce often silently drops. That means even a brief disconnection can leave a multi-hour gap in your Started Checkout data, and the metric chart will show "no events" without ever throwing an error in Klaviyo's UI.
4. A flow filter is blocking every profile
Flow filters are the right tool for almost every "I want to send this flow but not to these people" question. They're also the wrong tool for some specific patterns — and the wrong pattern is incredibly easy to introduce when you're cleaning up a flow.
The classic offender: a filter that reads "Started Checkout zero times since starting this flow." That filter is meant to exclude profiles who've already converted. But its logic is "if you've ever started checkout while in this flow, leave the flow." If the flow's trigger is also Started Checkout, every profile that enters the flow immediately satisfies the exit condition and is removed before any email sends.
How to verify it. Open the flow. Click the trigger node. Read every filter that appears. For each, ask: could this filter evaluate true for every profile entering the flow? If you're not sure, click "Test" on the filter and run it against a known profile in your account.
How to fix it. Either remove the conflicting filter or rewrite it to reference a different event. "Placed Order zero times since starting this flow" is what most people actually want — they're trying to exclude profiles who've already converted, and conversion is signaled by Placed Order, not Started Checkout.
5. Smart Sending is suppressing the emails
Smart Sending is Klaviyo's deduplication feature: it suppresses a send to any profile that's received an email from your account within a configurable window (default: 16 hours). For broadcast campaigns it's sensible. For abandoned cart specifically, it almost always works against you.
Why. Abandoned cart's whole job is to reach a customer within minutes of a critical moment. If that customer just received your daily newsletter, Smart Sending will suppress the abandoned cart email — exactly when timing matters most.
How to verify it. Open the first email in the abandoned cart flow. Look for the "Smart Sending" toggle in the email's settings. If it's ON, that's a suspect — particularly if you also run frequent broadcast campaigns to the same list.
How to fix it. Turn Smart Sending OFF on every email inside the abandoned cart flow. The flow itself has dedupe logic (a profile that's already in the flow can't re-enter); Smart Sending is redundant here and actively harmful.
A wrinkle. Smart Sending suppressions don't show up as errors. The send is simply skipped, and the profile continues through the flow as if the email had sent. So if you suspect this, you can't just look at "send status" — you need to look at the per-profile flow analytics and verify the email was actually delivered.
6. The product name in Shopify doesn't match what the trigger expects
This is rare but worth knowing about, because when it bites it bites quietly. If your abandoned cart flow's trigger is filtered by a specific product property — usually a category tag or product type — and Shopify's product data doesn't match the filter exactly, profiles will fail to enter the flow.
Common cause. A product category was renamed in Shopify (e.g., "Supplements" → "Wellness") but the Klaviyo flow filter still references the old name. Profiles who add a "Wellness"-tagged product to cart no longer match "category equals Supplements" and never enter the flow.
How to verify it. Open the flow's trigger filter. Note any product property references. Then in Shopify, find a product that matches the abandoned cart pattern and verify its current properties match what the filter expects.
How to fix it. Update the filter to match current product taxonomy. If you re-tag products often, consider using product type or a more stable property rather than category names.
How to verify the fix
After making any change above, here's how to confirm the flow is actually firing again. Don't rely on Klaviyo's UI showing "Live" — it always shows Live, even when nothing is working.
- Run a test checkout. Incognito window. Add a product to cart. Start checkout. Enter an email address you control. Leave the page without completing.
- Wait two to five minutes. Klaviyo events normally land within seconds, but allow time for the metric to refresh.
- Check Analytics → Metrics → Started Checkout. Your test profile should appear in the recent events list. If it doesn't, the integration is still broken — go back to step 1 of the diagnostic checklist.
- Check the flow's "Latest entries" tab. Your test profile should appear within five to ten minutes. If Started Checkout fired but the profile didn't enter the flow, a filter is still blocking entry.
- Check that the email actually delivered. Open the test profile's activity feed. You should see the abandoned cart email listed as "Sent" (not "Skipped — Smart Sending"). If Smart Sending skipped it, turn Smart Sending off and retest.
If all five checks pass, the flow is working again. Schedule a follow-up: re-check in 24 hours that volume looks normal for the day of the week.
Why this keeps happening
The honest answer is that the things that break abandoned cart flows are mostly things that happen elsewhere. A theme update. A plugin update. A refactor of product categories. An OAuth token quietly expiring. None of those changes happen inside Klaviyo, but all of them break Klaviyo's flow — and Klaviyo's UI is structurally incapable of warning you about most of them.
The result is a class of failures that are individually rare but collectively almost continuous. If you have an abandoned cart flow live for six months, the probability that something on this page has affected you at least once is close to one. Most of the time you'll notice eventually — usually when you finally read a weekly report carefully and notice flow revenue is off. The exposure is the time between when it broke and when you noticed: typically days, sometimes weeks.
That gap is what always-on monitoring closes. Hourly scans against the trigger metric, the integration health, and the per-email send status catch each of the failure modes above within an hour of when they happen. The flow doesn't get healthier; the time between break and detection collapses.
Frequently asked questions
- Why did my Klaviyo abandoned cart flow stop firing?
- The most common cause is the underlying trigger event (Started Checkout or Added to Cart) silently stopped recording while the flow itself still shows as Live. Check the metric's recent activity in Analytics → Metrics. If the last event is days old, the integration — not the flow — is the problem.
- How do I know if Started Checkout is still recording in Klaviyo?
- In Klaviyo, open Analytics → Metrics → Started Checkout. The chart should show events landing every few minutes during your store's traffic hours. A flat line on the right edge means the event has stopped firing, regardless of what the flow editor shows.
- My abandoned cart flow says Live but nobody is entering it. What does that mean?
- A flow can be Live while receiving zero entries. That happens when the trigger event isn't being recorded by Klaviyo, when a flow filter is blocking every profile (a common one: 'Started Checkout zero times since starting this flow'), or when Smart Sending is suppressing the send for everyone who would otherwise enter.
- Does a Shopify theme update affect my Klaviyo abandoned cart flow?
- Yes. Shopify theme updates frequently strip out the Klaviyo onsite tracking snippet — the snippet that records Started Checkout. After every theme update, verify that Started Checkout is still firing on a test checkout before assuming everything works.
- Will Klaviyo notify me if my abandoned cart flow stops working?
- No. Klaviyo's UI shows the flow as Live even when the underlying trigger metric has stopped recording. Detection of that drift is the gap Playbook fills — hourly scans flag metrics that have gone quiet for longer than expected.
- How long does it take Klaviyo to detect an abandoned cart event?
- Under normal conditions, an Added to Cart or Started Checkout event lands in Klaviyo within seconds. If you're not seeing the event in Analytics → Metrics within a minute or two of triggering it in a test session, the integration is the issue, not Klaviyo's processing speed.
- Can Smart Sending block my abandoned cart flow?
- Yes — and this is the most counter-intuitive failure mode. Smart Sending suppresses any send to a profile that's already received an email within the last 16 hours by default. A profile that just got your daily campaign won't receive your abandoned cart email. For abandoned cart specifically, Smart Sending should usually be off.