Klaviyo flow not sending: why a welcome or basket email never arrives
Your flow report can look fine while a welcome or basket email never reaches the shopper. Sort the leak as silent, late, broken or wrong, check the cause that fits, and put a number on one month of it.
Address A signs up through the pop up; address B through the footer form
- Tue 09:00A and B sign up, 1 minute apartBoth new Gmail addresses, both with the marketing box ticked
- Tue 09:03B: welcome email with 10% offPrimary tab, 2 minutes after sign up
- Thu 09:01A: no welcome email in 48 hoursThe pop up feeds a list the welcome flow doesn’t start from
- Thu 09:06Control: a plain campaign reaches ASending works, so the fault sits in the flow
The control settles it: the address can receive mail, so the silence belongs to the flow.
A welcome or basket email that never arrives has a cause in one of 4 places: the list or event never starts the flow, the flow skips the shopper, the message isn’t live, or a code or link fails. Test as a new customer with a control address, wait 48 hours, then read the message’s Skipped reasons to find which.
On this page
- Sort the leak: silent, late, broken or wrong
- Run the test as a stranger, with a control address
- Silent: the flow never starts, or skips the shopper
- Late: the email waits for a person, a delay or a sync
- Broken: a blank product, a dead link or a refused code
- Wrong: a real email for something the shopper didn’t do
- What one silent flow costs in a month
- Where checking by hand stops
- Inheriting a client’s account: read the history, then run the test
- Run it before the freeze, not on the morning of the sale
- Questions
In July 2026, Laryssa Wirstiuk signed up to 362 ecommerce brands with new email addresses and phone numbers. 158 of them never sent a welcome email (Joy Joya). It was one tester, working from the customer’s side with no access to any dashboard, so the count shows what arrived and says nothing about why.
158 of 362
ecommerce brands (43.6%) never sent a new subscriber a welcome email
Joy Joya, July 2026 (one tester, customer side only)joyjoya.comIf you run retention, or have just taken over a client’s account, your welcome and basket flows may be silent while the numbers look fine. A flow can work for shoppers who come in through one form and miss those who come in through another, and the report averages the two. A message left on draft leaves no row in its analytics, and a shopper the trigger never reached isn’t in the report at all.
If I go to view our analytics for the flow, everything is 0.
A flow report counts the people a flow messaged. It can’t count the shopper the flow never reached.
Flows are where the money is. Klaviyo’s 2026 benchmarks put them at 5.3% of email sends and nearly 41% of email revenue. That is the category figure and not yours. Your own flow report holds your number.
41%
of email revenue comes from flows, on 5.3% of sends
Klaviyo benchmarks (vendor data, 183,000+ customers), 2026klaviyo.comSort the leak: silent, late, broken or wrong
Start with what the shopper saw, in plain terms. The cause comes second, and it stays a guess until a setting or a help page confirms it.
| Leak | What the shopper saw | Check first |
|---|---|---|
| Silent | No email from the flow after the action and the wait | The list or event, double opt in, entry rules, consent, filters, status, Smart Sending, a code |
| Late | It came well after the delay you set | Manual status, the wait you set, a slow sync |
| Broken | A blank product, a dead link or a refused code | The product block, the link, the code’s cap and dates |
| Wrong | A real email, but not the one for what they did, or two of it | Overlapping flows, a missing filter, a second tool |
Run the test as a stranger, with a control address
Your own login is the wrong test account, because your store already knows you. Set up 2 new addresses that have never subscribed or bought. Address A walks the journey: sign up through the pop up, or leave a basket with the marketing box ticked and stop before paying. Address B signs up the same way. The Black Friday checklist has the full set of journeys.
Write down the time of each action. After 48 hours, record what arrived, in which Gmail tab and when. That log is the receipt. It shows what the shopper saw and nothing about why. The September store check is one: a £40 gift set left in a basket at 02:57 on Tuesday 22 September 2026, and no reminder in 48 hours.
I’m not getting any automatic emails when I sign up with a dummy address.
The control settles whether it is the flow or the address. When the 48 hours are over, send B one plain campaign email. If B gets it and A got nothing, the fault sits in the flow. If neither gets anything, look at consent, the form and your sending first.
Send the control last, because Smart Sending skips a flow message for a profile that recently got another message. Use new addresses for every run too, since list triggered flows default to No reentry. A preview won’t stand in for the test: it uses sample event data, so it proves the template and not the trigger.
Silent: the flow never starts, or skips the shopper
1. The list or the event never reaches the flow
A welcome flow starts when a profile joins its list. Klaviyo says the list you choose should be the one new subscribers are added to, and that Shopify themes often ship a default newsletter box that isn’t a Klaviyo form (Klaviyo Help). A sign up form on draft, linked to another list, or a Shopify sync list that isn’t selected can each leave the list empty (Klaviyo Help).
A basket flow starts from an event. Open the metric and look for Checkout Started on your test profile’s timeline (Klaviyo Help). Klaviyo records it once Shopify sends checkout information with a valid email address or phone number (Klaviyo Help), so a shopper who leaves earlier never starts the flow. Added to Cart works only for identified shoppers and needs the app embed plus the Track behavioral events setting (Klaviyo Help). A brand new theme means turning the embed on again.
All my flows have stopped working. We upgraded our shopify theme.
2. Double opt in holds the shopper off the list
With double opt in, only subscribers who confirm are added to the list and queued for the welcome series. A profile can exist before that, but having a profile doesn’t mean the person joined the list. Submit your test and look for the address in the list. If it isn’t there, the flow may be fine and the confirmation step is where the shopper stopped.
3. The shopper is already in, or isn’t allowed in
List triggered flows default to No reentry, so a profile that entered once doesn’t enter again, and profiles that joined before the flow went live need adding as past profiles (Klaviyo Help). Consent decides too: Klaviyo flows can’t email unsubscribed profiles unless the message is marked transactional, and Shopify’s marketing automations send only to customers subscribed to email marketing by default (Shopify Help). A shopper who left the marketing box unticked gets nothing from a flow that sends to subscribers only. Shopify lets you edit an abandoned checkout automation’s To field to include all customers. Whether you may depends on your market’s consent rules, and this article isn’t legal advice.
4. A flow filter or a draft message drops the shopper
Klaviyo rechecks profile filters before each step and again at send time, and skips anyone who fails them. Nobody is scheduled for a draft message, and one switched to draft inside a live flow is skipped (Klaviyo Help). A high Fails Flow Filters count is normal in a basket flow, because shoppers who ordered are filtered out. Contradictory conditions, or an OR where an AND was meant, are not. The trigger’s Preview shows which filters a profile passes (Klaviyo Help).
5. Smart Sending skips the message
Smart Sending skips a flow message when the profile recently got a message on the same channel. The default window is 16 hours for email and 24 hours for SMS, a skipped flow message isn’t rescheduled, and you can turn it off for a single message (Klaviyo Help). In sale week, a shopper who got this morning’s campaign can have the afternoon basket reminder skipped. That is the setting working as designed; the decision is whether you want it on that message. The Skipped reason in Recipient activity names it (Klaviyo Help).
6. The code can’t be made, so the whole email is skipped
When a flow email carries a code and Klaviyo can’t produce one, the email is skipped. The skipped reasons include Unable to Create Coupon (an error in the coupon, or too many coupons sent in a short time), No More Uploaded Coupons Remain, and Error Retrieving External Data for a Shopify code (Klaviyo Help). The shopper sees a missing welcome email, never a missing code.
7. Shopify Email has its own reasons not to send
Shopify counts a checkout as abandoned once it has stayed incomplete for more than 10 minutes after the shopper gave an email. It sends no recovery email if the shopper completes a sale first, a payment error occurred, you don’t ship to the address, they entered a phone number instead of an email, or no product is available (Shopify Help). It covers the Online Store and Buy Button channels only, and turning an automation off cancels anything waiting in it (Shopify Help).
Late: the email waits for a person, a delay or a sync
- A Manual message. Shoppers queue in Needs Review and nothing sends until someone approves. Switching the message to Live doesn’t send the ones already waiting (Klaviyo Help).
- The wait you set. Shopify’s recovery email goes out after the Send after time you chose (Shopify Help), and a Klaviyo flow starts with its time delay. Read it before you call a reminder late.
- A slow sync. An event that reaches Klaviyo 6 hours or more after it happened doesn’t trigger a metric triggered flow at all (Klaviyo Help). Lateness that grows toward that limit turns into silence.
Broken: a blank product, a dead link or a refused code
Open every email on a phone and click everything. A broken email arrived, so the flow worked and the content didn’t.
- A blank product. A basket email reads its items from the event that started the flow. Klaviyo says event variables work only in metric triggered flows: a list triggered flow has none to pull from, and a campaign can’t use them (Klaviyo Help). Copy a basket email into either and it has no products to show.
- A dead link. Product and checkout links come from variables that differ by integration, and a link can break if you use the wrong one for your platform. Click every button and product link.
- A refused code. Shopify lets you cap a code’s total uses and set an end date in your admin’s timezone (Shopify Help). Its help pages don’t say what a shopper sees at the cap, so apply the code at checkout and read the message. A code can also be refused as already used while an unfinished checkout holds it.
Wrong: a real email for something the shopper didn’t do
- A browse email after a basket. Klaviyo keeps browse emails away from checkout shoppers with the filter “Started Checkout zero times since starting this flow” (Klaviyo Help). A flow built without it can send a browse email to someone who left a basket.
- Two flows for one shopper. Klaviyo’s Added to Cart flow targets shoppers who haven’t started checkout, and its filters stop a shopper who then starts checkout or orders from carrying on in it (Klaviyo Help). Check the two flows don’t overlap.
- Two tools, one reminder. Klaviyo says to turn off your platform’s default abandoned cart messages to prevent duplicating messages (Klaviyo Help). On Shopify, look in the Messaging app’s automations and under Settings, Checkout.
- A welcome code for a past buyer. Klaviyo’s welcome series page doesn’t exclude existing customers. Sending them elsewhere takes a conditional split you build (Klaviyo Help).
Other platforms name these settings differently, and the checks stay the same. Each cause is a check on one of 4 things: whether the list or event fired, whether the shopper was allowed in, whether the message was live and unfiltered, and whether the content held.
What one silent flow costs in a month
Pick a month when the flow worked, open its analytics and note 3 numbers.
- Delivered: the messages the flow delivered in that 30 days.
- Placed Order rate: the conversion rate on the same snapshot, which Klaviyo sets to Placed Order rate by default.
- Your average order, from your store’s reports.
Multiply the 3 together, then multiply by 0.5. That is the low end of what one month of silence costs you. The same snapshot shows the revenue attributed to the flow, and the product should land near it.
The 0.5 is deliberately low. Attributed revenue includes shoppers who would have bought without the email, so half is the figure to plan on. Welcome, basket and checkout each have their own sum.
Where checking by hand stops
For one store that changes rarely, you don’t need a tool. One clean run now, and one after each change to a theme, form, flow, app or discount, is the whole routine. Beyond that, the method has 4 limits.
- One inbox, one moment. A pass on Tuesday says nothing about the theme published on Thursday.
- No history. A shopper who signed up during a silent week got nothing, and a test run now can’t show it.
- Screenshots are weak proof. The email, with its arrival time, settles an argument. A screenshot starts one.
- Scale. One store is an afternoon with a wait in the middle. Twenty client stores every week is a job.
Obsession’s AI test customers do this on your store. They shop it as new customers every week and after every change, and every leak comes back with proof and the fix. Delivery monitoring proves every email, text and login code arrives.
Needs you
43Obsession agent for Your company0 welcome emails in 48 hours
Coffee roaster · Website audit
Ad 4 → sold out lamp
Homeware · Ad tracking
Rival B −£5, ships free
Candles · Price watch
Cyber Monday code died 19:00
Outdoor gear · Delivery monitoring
Fixes go live after your OK
Coffee roaster · Website audit2 test users
0 welcome emails in 48 hours
Signed up
0 emails
- From
- Coffee roaster
- Subject
- Your 10% code is inside
Hi Sam, welcome. Here’s 10% off your first bag.
Approved by AMSigned · in Records
OpenInheriting a client’s account: read the history, then run the test
A strategist who takes over a flow stack inherits every change made to it. Klaviyo’s flow history shows what changed, who changed it and when (Klaviyo Help). Set those dates beside the month sales went quiet, then work down the stack.
- Check every message’s status: Live, Manual or Draft.
- Open Recipient activity on each message and read the Skipped reasons.
- Run the stranger test on 3 journeys: sign up, basket, checkout. Add the control address.
- Send the client the emails as they arrived, with their times, and the journeys where nothing came.
Run it on a client’s store with the client’s OK, and on a prospect only through the public sign up any customer can use.
Run it before the freeze, not on the morning of the sale
Black Friday is Friday 27 November 2026 and Cyber Monday is Monday 30 November. Freezes close about 20 November. Run the 3 journeys before yours, and again the evening before the sale goes live. A silent flow found before the freeze costs you a fix. Found on the 27th, it costs you the sale.
Questions
The list or event never starts the flow, the shopper is filtered out or already in it, the message is on Draft or Manual, Smart Sending skips it, or a code can’t be made. Read the Skipped reason in the message’s Recipient activity.
Check the trigger event reaches Klaviyo: open the metric and your test profile’s timeline. Checkout Started needs a valid email or phone from Shopify. Added to Cart needs an identified shopper, the app embed and Track behavioral events.
Check the form feeds the list the flow triggers from, that double opt in isn’t holding the shopper until they confirm, and that the profile hasn’t already entered the flow, since list triggered flows default to No reentry.
Shopify’s automations send only to customers subscribed to email marketing by default, and send no recovery email if the shopper completes a sale first, a payment error occurred, you don’t ship to the address, or no product is available. If Klaviyo runs the flow too, turn off Shopify’s own to avoid duplicates.
No. Klaviyo doesn’t reschedule flow messages skipped by Smart Sending, and you can turn it off for a single flow message.
Use a new address for every run. Sign up or leave a basket, record the time, and after 48 hours log what arrived and when. Then send a second new address one plain campaign: if it arrives and the flow email never did, the fault is in the flow.
Yes. The test is something a customer does, so it works on any store and any platform. Use your platform’s own help for the names of each setting.
Sources
- Why your welcome email isn’t working (I tested 362 brands)
- 2026 email marketing benchmarks by industry
- Understanding Smart Sending in Klaviyo
- Troubleshooting why a flow message skipped a profile
- Getting started with flows
- Understanding how contacts move through a flow
- Troubleshooting a list- or segment-triggered flow
- Troubleshooting a metric-triggered flow
- Understanding the double opt-in process
- How to create an email welcome series
- How to create an abandoned cart flow
- How to create an abandoned “Added to Cart” flow for Shopify
- Shopify data reference
- How to enable onsite tracking for Shopify
- How to build dynamic blocks in a flow email
- How to use event data to personalize email and SMS flows
- How to create a browse abandonment flow
- Understanding flow analytics
- Abandoned checkouts
- Migrate to the abandoned checkout automation
- Create a marketing automation
- Amount off products discounts
- Discounts FAQ
- Flows Stopped Working
- All my flows have stopped working
- Klaviyo not sending welcome series emails from flow
- Sample output: the September store check
- Leak checks for ecommerce stores
- Delivery monitoring