Troubleshooting

Klaviyo flow not sending emails — full diagnostic checklist

Why a Klaviyo flow shows Live but isn't sending — triggers, filters, Smart Sending, integration drift, draft mode, retroactive misconceptions. Diagnose each in under five minutes.

Published


title: "Klaviyo flow not sending emails — full diagnostic checklist" description: "Why a Klaviyo flow shows Live but isn't sending — triggers, filters, Smart Sending, integration drift, draft mode, retroactive misconceptions. Diagnose each in under five minutes." slug: "klaviyo-flow-not-sending-emails" publishedAt: "2026-05-19" updatedAt: "2026-05-19" painCluster: 1 intent: 10 tier: 1 faq:

  • q: "Why is my Klaviyo flow not sending emails even though it's Live?" a: "Live status only means the flow is enabled — it doesn't mean profiles are entering it or that emails are actually delivering. The three most common causes are a trigger event that's stopped recording, a flow filter that blocks every entrant, or Smart Sending suppressing sends to recently-emailed profiles. Check the flow's Latest entries tab first; if it shows zero in the last 24 hours, the problem is upstream of the email itself."
  • q: "How do I check if profiles are entering a Klaviyo flow?" a: "Open the flow and click the trigger node. The Latest entries tab shows every profile that has entered the flow in the last several days, with timestamps. If this list is empty or stale, no one is entering — and no emails will send regardless of how the rest of the flow is configured."
  • q: "What's the difference between a flow being Live, Draft, and Manual in Klaviyo?" a: "Live means the flow runs automatically when the trigger fires. Draft means the flow is saved but disabled — no profiles enter, no emails send. Manual means individual emails in the flow require a person to click Send before each one goes out. Both Draft and Manual are common causes of 'my flow isn't sending' — verify the flow is Live and that every email inside it is set to Live, not Manual."
  • q: "Does Klaviyo send retroactively to existing subscribers when I publish a new flow?" a: "No. Flows only trigger for events that occur after the flow is set to Live. If you build a welcome flow today, it sends to subscribers who join tomorrow — not to your existing list. This is the single most common misconception behind 'my new flow isn't sending.'"
  • q: "Can a single flow filter block every profile from receiving emails?" a: "Yes. A common one is 'Started Checkout zero times since starting this flow' on an abandoned cart trigger — every profile satisfies the exit condition the moment they enter. Audit each filter and ask whether it could evaluate true for everyone before the first email sends."
  • q: "How do I know if Smart Sending is blocking my flow emails?" a: "Open a profile that should have received the email and check their activity feed. If you see 'Skipped — Smart Sending,' that's the cause. Smart Sending suppresses sends to anyone who's received an email from your account in the last 16 hours by default. For time-sensitive flows like abandoned cart, Smart Sending should typically be off."
  • q: "Will Klaviyo alert me when my flow stops sending?" a: "No. Klaviyo's UI shows the flow as Live even when entries have dropped to zero or every send is being skipped. That gap is what Playbook closes — we scan every hour for live flows with no recent entries and surface them before revenue takes a hit." related:
  • klaviyo-abandoned-cart-flow-not-firing
  • klaviyo-welcome-flow-not-triggering
  • klaviyo-shopify-integration-not-syncing
  • klaviyo-checkout-started-event-not-working

"My flow shows Live but isn't sending" is the single most common phrasing in the Klaviyo Community. It covers at least eight distinct failure modes that look identical from the flow editor. The editor shows green. The status says Live. The metrics page shows 0 sends. And the only way to figure out which of the eight things broke is to work through them in order.

This page is the decision tree. Each section answers one question: is the flow itself enabled, are profiles entering it, are emails being scheduled, and are the scheduled emails actually delivering? Most of the time the answer to one of the first three is no — and the fix changes depending on which.

If you're in the middle of the problem right now, the Quick diagnosis checklist below covers ~85% of cases in seven checks. Run through it before reading the longer sections.

Quick diagnosis checklist

Work through these in order. Each takes about 60 seconds.

  • Open the flow → click the trigger node → Latest entries tab. If it shows zero entries in the last 24 hours, the problem is upstream of the email itself. Read sections 1 and 2 below.
  • Check the flow status badge. It must say Live. If it says Draft or Manual, that's the answer. Click into the flow and switch to Live.
  • Check each individual email node inside the flow. Click each one and verify it says Live, not Manual. A flow with a Manual email pauses there until you manually approve every send.
  • Check the trigger metric in Analytics → Metrics. If your flow is triggered by Started Checkout, Added to Cart, or any custom event, open that metric and verify events are still landing. A flat right edge means the trigger has stopped firing.
  • Check the flow filters. Click the trigger node and read every filter. Ask: could this filter be true for every profile entering? The classic example is "Started Checkout zero times since starting this flow" on a Started Checkout-triggered flow.
  • Pick a recent profile that should have received the email and open their activity feed. Look for the flow's email. If it shows "Skipped — Smart Sending," that's the cause. If it shows nothing at all, the profile never entered the flow.
  • Check whether the flow was recently published. If you set it Live yesterday, existing subscribers won't trigger it — flows are not retroactive.

If those seven don't solve it, the issue is one of the longer-tail modes covered below.

1. The flow is Live but no one is entering it

This is the most common shape of the failure. The flow editor looks healthy. Status is Live. But the Latest entries tab is empty.

The cause is almost always one of three things: the trigger event has stopped firing at the source, a flow filter is blocking every profile, or the trigger is correctly firing but for events that don't match the flow's narrow definition.

Trigger event has stopped firing. Open Analytics → Metrics and find the metric your flow is triggered by — usually Started Checkout, Added to Cart, Placed Order, or a custom event. Look at the chart's right edge. If the last few hours show no events while last week showed steady volume, the source has gone silent. This is integration drift — see section 3.

Flow filter blocks every entrant. Filters that reference the trigger event itself are the canonical trap. A filter like "Started Checkout zero times since starting this flow" looks innocuous, but if the flow is triggered on Started Checkout, every profile that enters satisfies the filter and exits before the first send. Read every filter and test it against a profile you know just performed the action.

Trigger fires but doesn't match. Some flows are triggered by a specific list, a specific product, or a custom event with a property filter. If the property changed in your source system — a product category got renamed in Shopify, a custom event property was renamed — the trigger fires but no profile matches the flow's expected shape.

2. The flow or one of its emails is Draft or Manual

This sounds basic but it's responsible for a surprising share of "flow not sending" threads. Two flavors:

The entire flow is Draft. Status badge says Draft, not Live. No profiles enter, no emails send. Fix: open the flow and switch to Live.

An individual email inside a Live flow is Manual. This is the trickier one. The flow itself is Live, profiles enter normally, but one or more of the email nodes inside the flow are set to Manual instead of Live. A Manual email pauses there waiting for a human to click Send before each individual send goes out. If you've inherited a flow from someone else, or if you duplicated a flow and forgot to flip every node back to Live, this is worth checking.

How to verify. Click each email node inside the flow. The status badge on each individual email must say Live. If any says Manual or Draft, that node is paused.

3. Integration drift — the trigger event has stopped recording

If section 1 pointed you here — the trigger metric's chart is flat on the right edge — the problem is between your storefront and Klaviyo, not inside Klaviyo itself.

For Shopify, the four shapes that come up over and over:

  • OAuth token expired. Settings → Integrations → Shopify shows "Your credentials have expired, please re-authenticate." Reconnect and the trigger resumes within minutes.
  • Onsite Tracking toggle off. Same integrations page, Onsite Tracking section. If the toggle is off, client-side events stop. Toggle it back on.
  • Theme update removed the snippet. Shopify theme updates frequently drop the klaviyo.js script tag. Re-enable onsite tracking from the integration to re-inject the snippet.
  • Klaviyo app uninstalled, then re-installed in a way that didn't restore the webhook. This is rare but it happens. Disconnect fully, re-install the Klaviyo app from the Shopify App Store, and reconnect.

For WooCommerce, the same shapes apply, plus plugin-conflict failure modes — a caching plugin intercepting API calls, a recent WooCommerce or plugin update breaking the webhook handshake. The fix is usually to disconnect, update both plugins, and reconnect.

For custom events sent via API, check your server logs. If your code stopped firing the event — a deploy regressed it, a third-party service it depended on went down — Klaviyo won't see anything to trigger on.

4. Smart Sending is suppressing sends to every profile

The flow is Live, profiles are entering, but no emails arrive. Open a profile that should have received the first email and check their activity feed. If you see "Skipped — Smart Sending" next to the flow's email, Smart Sending is the cause.

Smart Sending suppresses any send to a profile that's received an email from your account within the last 16 hours by default. For low-volume accounts this rarely bites. For accounts running daily campaigns, it can suppress 30-60% of flow sends — particularly time-sensitive ones like abandoned cart and welcome.

For most flows, Smart Sending on the first email should be off. The flow itself prevents re-entry; you don't need Smart Sending's redundant suppression. Turn it off per email node, not at the account level.

A wrinkle: Smart Sending suppressions don't show up as errors. The send is silently skipped and the profile continues through the flow. If you suspect this, you can't trust the "send status" view — you have to look at individual profile activity feeds.

5. The flow was just published and your subscribers existed first

Flows in Klaviyo are not retroactive. They trigger on events that occur after the flow is set to Live. If you built a welcome flow today, your existing 50,000 subscribers will never receive it — only new subscribers who join after the publish moment will trigger it.

This is the single most common misconception in the Klaviyo Community. It almost always shows up as "I set up a welcome flow yesterday, it says Live, but nobody is getting it." The answer is that "nobody" is technically wrong — new subscribers will get it. Existing subscribers won't.

How to verify it's not retroactive bias. Open the flow's Latest entries tab. If you see new subscribers entering but feel like there should be more, check your list-growth rate. If you added 20 new subscribers in the last 24 hours and 20 are in Latest entries, the flow is working correctly — it's just constrained by how many new subscribers you're getting.

How to "fix" it. You can't make a flow send retroactively. What you can do: send a one-time campaign to your existing list with the same content. Don't try to game the flow by mass-tagging profiles or moving them in and out of lists — you'll either re-trigger emails for people who already got them or break other flows that depend on those signals.

6. The trigger list assignment is wrong

For list-triggered flows (welcome flows, post-purchase flows), the failure is often that subscribers are landing in the wrong list. Your form puts them in "Newsletter" but the welcome flow triggers on "Customers." Or your Shopify integration is syncing customers to "All Customers" but your post-purchase flow triggers on a specific tag-filtered list.

How to verify. Open the flow trigger and note the exact list it references. Then trace a recent profile that should have triggered the flow: open the profile, scroll to Lists & Segments, and confirm they're in the expected list. If they're not, the form or integration that should be adding them isn't.

7. The email itself is failing to deliver

If profiles are entering the flow, the email is scheduled, but recipients aren't getting it, the failure is at the delivery layer rather than the flow layer. Check the email's analytics tab — open and delivered counts.

  • If "Delivered" is high but "Opens" is near zero, deliverability is the issue. Check bounce rate and spam complaint rate; if either has spiked, deliverability has degraded.
  • If "Sent" is high but "Delivered" is significantly lower, the email is bouncing. Could be authentication (DKIM/SPF/DMARC), could be sender reputation, could be list hygiene.
  • If "Sent" is zero but the flow shows entries, Smart Sending or another suppression layer is intercepting before delivery.

How to verify the fix

After making any change, here's how to confirm the flow is actually sending.

  1. Trigger the flow yourself. Sign up to the relevant list with a test email, or trigger the event in a test session. Use an email address you control and can check immediately.
  2. Wait three to five minutes. Klaviyo processes flow entries within seconds, but the email schedule can delay by a few minutes.
  3. Check Latest entries on the trigger node. Your test profile should appear.
  4. Check the test profile's activity feed. You should see "Sent" against the first email — not "Skipped," not "Pending."
  5. Check your inbox. The email should land. If it doesn't, check spam and check the email's delivery status from the analytics tab.

If all five pass, the flow is working. Schedule a follow-up: in 24 hours, check that the flow has entries volume matching what you'd expect for the day.

Why this keeps happening

The reason "my flow isn't sending" is the most common Klaviyo Community thread isn't that flows are fragile — it's that Klaviyo's UI is built for setup, not for ongoing health. Status badges only describe configuration, not whether anything is actually happening. A flow can be Live for six months while its trigger event has been silent for five. Nothing in the UI surfaces that.

The shape of the failure is almost always silent. A theme update happens on a Tuesday. The trigger goes quiet on Wednesday. The flow shows Live until you finally pull a weekly report two weeks later and notice the revenue line. The exposure is the gap between break and detection.

That gap is what always-on monitoring closes. We scan every hour: trigger metrics that have gone quiet, flows with zero recent entries despite live status, emails that are being skipped at unusually high rates, integration tokens that are about to expire. The fix is still up to you — we don't change anything in your Klaviyo account. The detection is what changes.

Frequently asked questions

Why is my Klaviyo flow not sending emails even though it's Live?
Live status only means the flow is enabled — it doesn't mean profiles are entering it or that emails are actually delivering. The three most common causes are a trigger event that's stopped recording, a flow filter that blocks every entrant, or Smart Sending suppressing sends to recently-emailed profiles. Check the flow's Latest entries tab first; if it shows zero in the last 24 hours, the problem is upstream of the email itself.
How do I check if profiles are entering a Klaviyo flow?
Open the flow and click the trigger node. The Latest entries tab shows every profile that has entered the flow in the last several days, with timestamps. If this list is empty or stale, no one is entering — and no emails will send regardless of how the rest of the flow is configured.
What's the difference between a flow being Live, Draft, and Manual in Klaviyo?
Live means the flow runs automatically when the trigger fires. Draft means the flow is saved but disabled — no profiles enter, no emails send. Manual means individual emails in the flow require a person to click Send before each one goes out. Both Draft and Manual are common causes of 'my flow isn't sending' — verify the flow is Live and that every email inside it is set to Live, not Manual.
Does Klaviyo send retroactively to existing subscribers when I publish a new flow?
No. Flows only trigger for events that occur after the flow is set to Live. If you build a welcome flow today, it sends to subscribers who join tomorrow — not to your existing list. This is the single most common misconception behind 'my new flow isn't sending.'
Can a single flow filter block every profile from receiving emails?
Yes. A common one is 'Started Checkout zero times since starting this flow' on an abandoned cart trigger — every profile satisfies the exit condition the moment they enter. Audit each filter and ask whether it could evaluate true for everyone before the first email sends.
How do I know if Smart Sending is blocking my flow emails?
Open a profile that should have received the email and check their activity feed. If you see 'Skipped — Smart Sending,' that's the cause. Smart Sending suppresses sends to anyone who's received an email from your account in the last 16 hours by default. For time-sensitive flows like abandoned cart, Smart Sending should typically be off.
Will Klaviyo alert me when my flow stops sending?
No. Klaviyo's UI shows the flow as Live even when entries have dropped to zero or every send is being skipped. That gap is what Playbook closes — we scan every hour for live flows with no recent entries and surface them before revenue takes a hit.