Playbook · Klaviyo flow not sending

Klaviyo flow emails not sending — skipped, waiting, or never inbox on a Shopify store.

Written for a Shopify DTC owner who already pays for Klaviyo, published a flow, and still sees skipped / waiting in activity — or silence in the inbox. DIY-first: metric, filters, deliverability, profile consent. Distinct from the Klaviyo rebuild vs ops comparison, native abandoned-checkout silence, winback, failed-payment, and subscription-renewal playbooks. No earnings claims, no recovered-revenue number, no invented case studies.

Nico at Latch AI Ops · Sep 7, 2026 · ~12 minute read

Buy the 72-hour install — $997Rebuild vs opsAbandoned checkoutWinbackFailed paymentSubscription renewalMerchant FAQ

01

Skipped / waiting is not the same as a dead canvas.

Open the profile activity or the flow analytics. If the message is Skipped or Waiting, the canvas is not the bug — the skip reason is. Late, duplicate, skipped, waiting, and never-enrolled are different failures. This page is the general Klaviyo flow silence case (any live flow that still does not inbox). It is not the agency rebuild comparison (/klaviyo-rebuild-vs-ops-install), not native abandoned-checkout silence (/abandoned-checkout-email-not-sending), not winback (/winback-email-not-sending), not failed-payment (/failed-payment-email-not-sending), and not subscription-renewal (/subscription-renewal-email-not-sending).

Walk DIY in this order: live vs manual, trigger metric, Shopify integration on the profile, flow filters, profile consent / emailable, deliverability, smart sending / frequency, timezone delay / still waiting, then unsubscribed. You already pay for Klaviyo. You do not need a third recovery app to read a skip reason.

02

Flow status: manual vs live.

Open Flows. Find abandoned checkout, shipping / fulfilled order, or browse abandonment. Read the status, not the name and not the green check on a single email card. Draft does not send. Manual does not send to a real customer who left checkout at 2pm, got a carrier scan, or viewed a product. Live is the only status that counts.

Manual is the trap. Someone set it so they could review the first ten sends, then never came back. The canvas looks finished. Analytics can even show people in the flow — waiting in a manual queue you are not clearing. From the customer’s inbox that is silence.

If you are not ready to maintain a live flow, do not leave it on manual next to a native Shopify toggle that is also off. Turn native mail on, or press Live. A checkout-ready workflow is one live sequence, not a pretty canvas.

03

Trigger metric missing.

Names lie. Triggers do not. A flow titled “Abandoned checkout” that listens to Checkout Started, or a shipping flow listening to Placed Order instead of Fulfilled Order, or a browse flow listening to a metric Shopify never synced, will look live and still send nothing useful — or nothing at all.

Open Analytics → Metrics. Confirm the event you think you triggered actually exists in the last hour: Checkout Abandoned / Shopify Abandoned Checkout, Fulfilled Order, Viewed Product, or whatever the flow is built on. If the metric is empty, the flow has nobody to enroll. Common gaps: the Shopify integration is paused, the pixel is not on the storefront, you tested from an admin session so the event never qualified, or you renamed / duplicated a metric and the flow still points at the old one.

Then open the flow trigger and match it to that metric. Checkout Started is not Abandoned Checkout. Placed Order is not Fulfilled Order. Added to Cart is not Viewed Product. If you only have budget for one recovery sequence, run checkout abandoned — details sit in the abandoned-checkout playbook.

04

Profile not in the Shopify integration.

Klaviyo can know an email address from a list import, a popup, or a test send and still not treat that person as a Shopify customer. Abandoned checkout, fulfilled-order, and browse flows need the Shopify integration to attach the event to the profile. If the profile has no Shopify ID, no recent Shopify activity, or the integration is disconnected, the trigger never lands on them.

Open the profile. Look for Shopify as a source, a Shopify customer ID, and the event you just created. If the activity feed is empty, the integration did not sync that person. Typical causes: you tested with a staff account or a draft order, the customer used Shop Pay / a guest checkout that did not map, the Klaviyo app in Shopify is uninstalled or missing permissions, or historic sync never ran after you connected the store.

Test from a phone that is not logged into admin. Use a real email you control that is not the store owner. Start checkout or view a product, wait, then read the profile — not the flow canvas. The canvas is not the proof. The profile activity is.

05

Flow filters that skip everyone.

A lot of Klaviyo templates ship with “has not placed an order,” “is not an existing customer,” a price threshold, a collection filter, or a tag the profile never got. That is correct for a welcome or a first-time abandoner. It is silent for the person who bought last month and then left a second checkout, or who already has an order so your shipping flow’s “first-time buyer” split never reaches them.

Open the trigger filters and every split. Read them twice. “Has placed order at least once” vs “has not placed order since starting checkout” are not the same sentence. If the filter is inverted, the live flow looks healthy and still sends nothing to the people you care about. Profile activity will say Skipped — filter / condition not met. If you tested with an account that already ordered, you tested the skip, not the send.

Recovery mail is supposed to skip a customer who finished that purchase. It is not supposed to skip every customer who has ever bought from you unless you meant that. Confirm the window on the filter (ever / last 30 days / since this checkout) before you rebuild the flow. A full Klaviyo rebuild vs a 72-hour ops install is a different page: /klaviyo-rebuild-vs-ops-install.

07

Deliverability (sent but never inbox).

Sometimes Klaviyo did send. The inbox still looks empty. That is deliverability, not a dead trigger. Check the profile activity for Delivered / Opened vs Bounced / Dropped / Spam Complaint. Check spam and promotions. Check whether the sending domain (SPF / DKIM / DMARC) is verified on the brand domain you think you use.

Warm-up and reputation matter after a big import or a cold list. A brand-new dedicated domain that never warmed will “send” into spam while the flow analytics look healthy. Fix DNS and list hygiene before you rewrite the email. Do not buy another recovery app to solve a domain record.

If activity never shows Sent at all, go back to metric, filters, and consent — deliverability is the last check, not the first. Transactional shipping that must reach a buyer belongs in Shopify notifications when marketing deliverability is the bottleneck; ownership split is /klaviyo-shopify-notifications.

08

Smart sending / frequency cap.

Klaviyo tries not to email the same person too often. That is useful until it hides a real abandon, a real shipment, or a real browse. Smart sending and account-level frequency caps skip a message even when the flow is live and the trigger fired. From the inbox that looks like “Klaviyo stopped working.” From activity it says Skipped — smart sending / frequency.

Open the profile → activity / skipped. “Smart Sending,” “frequency,” or “already received an email” is the answer. You already sent a campaign this morning, a test, a preview, or another flow email to that address. The recovery or shipping message waits, then expires, then never sends. Use a fresh address for the next test. Do not keep abandoning from the store-owner inbox.

If you want transactional shipping mail to always go, that mail usually belongs in Shopify notifications, not in a marketing flow sitting under smart sending. Do not turn smart sending off globally to fix one skip. Read the skip. Then decide which messages are marketing and which are operational.

09

Timezone delay / still waiting.

Klaviyo delays are often “wait 10 hours,” “wait 1 day,” or “send in the recipient’s timezone between 9am and 12pm.” Activity says Waiting. You left checkout at 2pm, checked at 4pm, and declared it dead. That is a late-mail bug wearing a missing-mail costume. Read the wait. Read whether it uses the profile timezone. Wait that long, or temporarily set the first step to one hour for the test, then put a sane production delay back.

Timezone send is the other silent skip. If the profile has no timezone, Klaviyo uses account time. If the window is tomorrow morning in the customer’s zone, nothing goes out this afternoon. A shipping flow with a 24-hour wait after Fulfilled Order will also look dead if you tested at noon and opened the inbox at 1. Waiting is not Skipped — do not rebuild the flow for a clock.

Timing for a single abandoned-checkout sequence belongs in /abandoned-checkout-email-not-sending. Check the wait here so you stop debugging a send that has not been scheduled yet.

10

Unsubscribed / suppressed.

A live flow does not override a suppression list. Unsubscribed, bounced, marked as never send, or globally excluded — abandoned checkout, shipping, and browse all skip. Open the profile. If the badge is unsubscribed, that is the whole ticket. Your test from the store-owner address is often already suppressed from a prior import or a previous unsubscribe.

Use a fresh address for the next test. Do not resubscribe the owner just to prove the canvas. If real customers are unsubscribed, that is a list problem, not a flow-status problem. Transactional shipping mail that must reach a buyer even after they left marketing should live in Shopify notifications, not in a Klaviyo marketing flow. That split is in Klaviyo + Shopify notifications.

Preview / “send test email” from the template editor also does not prove the trigger. That only proves the template can render. A test send is not an abandoned-checkout, fulfilled-order, or viewed-product event.

11

When to stay DIY vs pay $997.

Stay DIY if you can spend one afternoon on the list above: live vs manual, trigger metric, Shopify integration on the profile, flow filters, profile consent, deliverability, smart sending / frequency, timezone delay / waiting, unsubscribed. Send one real path from a phone. Read skipped / waiting on the profile. That is the whole playbook. No agency required. Short answers also live on the merchant FAQ. Sibling playbooks (different bugs): rebuild vs ops, abandoned checkout, winback, failed payment, subscription renewal.

Pay for help when the work is not the email template — it is connecting the stack you already have so checkout follow-up is one live workflow instead of a manual flow plus a native toggle you forgot, lead capture is not dying in DMs, and exceptions show up in a channel you already check. That is the Latch AI Ops install.

What $997 USD one-time buys: lead capture on the live store, ops alerts in a channel you already check, and a checkout-ready workflow. 72 hours after collaborator access, not after payment. One live Shopify store. Access plus a delivery thread. Store URL collected at checkout. Not a SaaS seat, not a Klaviyo rebuild, not a Gorgias implementation, not a support VA, not a brand or theme job.

Other shops’ public ranges, not testimonials: a Shopify Flow or recovery-app install typically runs $500–$2,500. A Klaviyo-only flow rebuild typically runs $2,000–$5,000.$997 is the cheap end of that work, sold as a 72-hour install of three systems — not as recovered checkout revenue.

What it does not buy: recovered checkout revenue, a lift in conversion, a percent of carts saved, or a case study. Latch AI Ops has not published customer proof because there are no customers yet. You are buying the install.

Checkout is on Whop. Operator is Nico. United States offer. You can revoke collaborator access after handoff. We do not take owner passwords.