Your flows probably broke months ago, and nobody looked. Flows don’t throw errors. A welcome series that stopped receiving new subscribers looks exactly like a welcome series with a quiet month. The dashboard shows a smaller number, not a red light.
Across the brands we work with, the most valuable retention fixes of the past year weren’t new flows. They were existing flows that had quietly stopped working. A pop-up fed no flow at all. A win-back segment nobody could enter. A code expired while the email kept promising it. Below are the six failure modes we see most, what each one costs, and a 60-minute monthly audit that catches all of them.
Key Takeaways
- Flows fail silently. The usual symptom is a volume drop, not an error, so you have to compare each flow’s entries with the event that should trigger it.
- The most expensive break we’ve seen was a pop-up collecting emails that fed no flow. Fixing the trigger at one small brand cut blended CAC from about $40 to about $21 (one client’s result).
- Offers rot. Codes expire, stack with other codes, or stop changing the price, while the flow keeps sending them.
- Triggers collide. One test shopper at a supplement brand got 19 emails in a week from welcome, cart, newsletter and promos landing at once.
- Run a fixed monthly audit: submit every form, reconcile flow volume against trigger events, click every button and code, and check authentication.
Why do Klaviyo flows fail without anyone noticing?
Because a broken flow doesn’t stop, it just gets quieter. Klaviyo will happily run a flow that receives zero profiles. Nothing alerts you when a form starts writing to a different list, or when a custom field your segment depends on stops updating.
Three things make the problem worse at DTC brands in the $1M–$20M range:
- Nobody owns flows after launch. They get built once, often by an agency, then campaigns take over everyone’s calendar. One founder told us their flow work had been “on the Asana since January.” That call was in late March.
- Apps change underneath them. A new pop-up tool, a subscription platform setting or an ESP migration can reroute data without touching the flow itself.
- Reports disagree, so nobody trusts the signal. At a dog subscription box we work with, one dashboard said the welcome flow had sent 0 emails while the reports showed about 300. When the numbers conflict, people stop looking at them.
We reconcile platform numbers before acting on them; the method is in platform revenue vs Shopify reconciliation.
The 6 silent failures we find most often
| Failure | What you see | What’s actually happening | How to catch it |
|---|---|---|---|
| Pop-up not routed to a flow | List grows, welcome revenue flat | Form writes to a list or event no flow listens to | Submit the form yourself and wait for the email |
| Segment nobody can enter | Win-back “isn’t working” | Trigger field or tag stopped updating | Compare segment entries with real cancels or lapses |
| Expired or stacked offers | Odd discount rates, angry replies | Codes dead, overlapping or not applying | Click every code link in every flow |
| Colliding triggers | Unsubscribes and complaints rise | Several flows plus campaigns hit one person | Walk one test profile through a full week |
| Flows lost in a migration or app switch | Revenue gap after a platform change | Flows not rebuilt, or overridden by a platform default | Inventory flows before and after any change |
| Authentication or timing drift | Slow decline everywhere | DMARC broken, delays set once and never checked | Monthly DNS check and time-to-order review |
1. The pop-up that feeds no flow
This is the most expensive silent failure we’ve found, and the cheapest to fix. A brand installs a new pop-up tool. Emails start arriving in Klaviyo. But the welcome flow is triggered by a list the new form doesn’t write to, so new subscribers get nothing.
That’s what we found in February at a small wellness gummy brand. Its new quiz pop-up was capturing emails that never entered a flow. The fix was to duplicate the existing welcome flow and set the new form as its trigger. Over the following weeks the brand saw:
- Site conversion up 31% month over month
- AOV up 28–30%
- About 250 emails captured in 19 days, against a previous record month of 130
- Blended CAC down from about $40 to about $21
A broken welcome flow also starves everything downstream of it. At the dog subscription box, referral sessions went from 14 to 21 a week once its welcome flow was fixed. New subscribers who never hear from you never refer anyone.
At the gummy brand, the pop-up change and the routing fix landed together, so we can’t split the credit cleanly between them. But the captured emails were worth little until a flow picked them up. Client results are specific outcomes, not typical or guaranteed.
How to check: submit every live form yourself, on desktop and on a phone, with a fresh test address. You should get the first welcome email within minutes. Then open the test profile and confirm it sits on the list the flow listens to, with marketing consent set to subscribed.
2. The segment nobody can enter
A flow triggered by a segment is only as good as the field behind it. If the subscription platform stops passing a status, or a tag gets renamed, the segment freezes. The flow keeps “running” with nobody in it.
The dog subscription box had exactly this. Churned accounts weren’t entering the canceled segment because of a custom-field bug. Win-back looked like it was failing. In fact, it had no audience. Once the field was fixed, a simple sequence went live: a three-day wait, then a $5 first-box code. The team reported redemptions “daily” within a week.
A near cousin: the subscription platform’s own win-back flow at a book subscription box only caught about 600 recent churners. The roughly 3,000 historical churners never qualified, because the trigger only fired on new cancellations.
How to check: for every segment-triggered flow, compare entries over the last 30 days with the real-world event. Cancellations in your subscription platform should roughly match win-back entries. Customers past your reorder window should roughly match replenishment entries. A ratio that suddenly drops toward zero means the trigger broke.
3. Expired, stacked and broken offers
Offers age faster than flows. A flow built in October still promises the October code in April. Three versions of this keep showing up.
- The dead code. A subscription brand’s ads kept running to a Father’s Day code after it expired. Meta CAC jumped from $7 to $23 overnight. Ads at least show the spike in a day. A dead code inside a welcome email can sit there for months.
- The code that doesn’t change the price. At a kids’ supplement brand, the abandoned-cart email offered a discount that didn’t actually change the price at checkout. That’s worse than no offer. It tells a nearly converted buyer that you can’t be trusted.
- The stacked code. An edibles brand ran a 40% first-subscription offer alongside an always-on 20% welcome code. Its average discount came out at 21.6%, against the roughly 15% we’d call typical. Nobody had decided on 21.6%. It was the sum of two evergreen offers nobody revisited.
Discount depth also shapes who you acquire. We showed how in discount depth and cohort quality. An evergreen flow offer is a discount policy, whether you meant it as one or not.
How to check: list every code referenced in every flow. Confirm each one in Shopify: still active, correct value, expiry date, and whether it combines with other discounts. Then click every button in a test send and complete checkout up to payment.
4. Colliding triggers
When nobody coordinates flows with campaigns, the subscriber pays the price. A test shopper at the kids’ supplement brand received 19 emails in a single week. The welcome series, abandoned cart, newsletter and promos had all landed on the same days.
Their inbox placement was still good. The advice on that call was blunt: “don’t ruin it.” Collisions don’t break deliverability on day one. They push up unsubscribes and complaints slowly, until they do.
The fix is mostly settings, not strategy:
- Exclude anyone currently in the welcome flow from promotional campaigns for its duration.
- Add a flow filter so someone who purchased exits the cart and browse flows.
- Keep Smart Sending on for promotional flows, so one person can’t get several flow emails in a short window.
- Give one person the authority to say no to a new send.
Over-mailing has a measurable cost the other way, too. A tea brand we work with dropped its Wednesday campaign after moving to tighter segmentation. Flows went from about 10% to about 30% of its email revenue.
How to check: keep one test profile subscribed to every list. Once a month, count what it received in seven days. If you wouldn’t tolerate that inbox, neither will your customers.
5. Flows lost in a migration or overridden by a platform
Every platform change is a chance to lose a flow without noticing. Migrations are the classic case. A vinyl subscription club moved from Klaviyo to its store platform’s built-in email tool and lost its win-back and lead-nurture flows along the way. Nobody rebuilt them, because nobody had listed them first.
Overrides are subtler. At another subscription brand, turning on the billing platform’s built-in dunning meant the platform’s generic emails replaced the brand’s own dunning flow. That flow had branched across 11 cancellation and failure reasons. Nothing errored. The better flow simply stopped receiving anyone.
And sometimes the flow exists but nobody uses it. At a frozen-food brand, an order-delayed flow had been built and never switched on. A box got stuck in transit for a week. The customer’s review said the product was terrible.
How to check: keep a one-page flow inventory with each flow’s trigger, status and owner. Before and after any migration, app install or platform setting change, compare it against what’s actually live. Treat drafts as missing.
6. Authentication and timing drift
Some breaks hit every flow at once, and slowly. One brand on our calls had its DMARC record break, and deliverability fell for four weeks before anyone noticed. Google has required SPF, DKIM and DMARC from anyone sending over 5,000 messages a day to Gmail since February 2024. It asks senders to keep their spam rate in Postmaster Tools below 0.10% and never reach 0.30% (Google Workspace Admin Help, sender guidelines; requirements announced October 2023). If authentication breaks, the problem shows up in every flow’s email deliverability at once.
Timing drift is the other slow leak. Delays get set at launch from a guess and never compared with real buying behavior. At the tea brand, the repeat-purchase flow fired at day 120. But only 8% of mature customers had made three purchases before day 120. The plan was to test moving the trigger to day 75. If your flow waits longer than your customers do, it’s congratulating people who already left.
One more caution on measurement. Apple’s Mail Privacy Protection, announced in June 2021, stops senders from using pixels to learn when a user opens an email. Open rates won’t tell you a flow is broken. Judge flows by clicks, orders and entries.
How to check: once a month, confirm your SPF, DKIM and DMARC records still pass and look at your Postmaster Tools spam rate. Once a quarter, compare each flow’s delays with your actual time between orders. Our retention metrics guide shows how to pull that from Shopify.
The 60-minute monthly flow audit
Run this on the same day each month. You need a test inbox, a phone and a spreadsheet.
| Step | Time | What to do | Red flag |
|---|---|---|---|
| 1. Form test | 10 min | Submit every live pop-up and form on desktop and mobile | No welcome email within minutes, or profile not subscribed |
| 2. Volume reconciliation | 15 min | For each flow, compare 30-day entries with the trigger event count | Ratio falls sharply against last month, or hits zero |
| 3. Offer check | 10 min | List every code in every flow; verify in Shopify; click through to checkout | Expired, stacking or not changing the price |
| 4. Collision count | 5 min | Count emails your test profile got in the last 7 days | More than you’d accept as a customer |
| 5. Inventory diff | 5 min | Compare live flows with your flow inventory | A flow missing, in draft or overridden |
| 6. Authentication | 5 min | Check SPF, DKIM, DMARC and Postmaster spam rate | Any failure, or spam rate creeping toward 0.10% |
| 7. Results by click | 10 min | Rank flows by clicks and orders, not opens | A flow with entries but no clicks or orders |
Step 2 is where most breaks show up. Build a simple sheet with each flow, its trigger event, and two numbers for each month: trigger events and flow entries. Welcome entries should track form submissions. Abandoned-checkout entries should track checkouts started. Win-back entries should track cancellations. You’re looking for the ratio to move, not for a perfect match.
Then pick one fix. A list of 14 problems with no owner is how flows broke in the first place. We wrote about that habit in two priorities, not twenty dashboards.
What to do this week
- Submit your own pop-up on your phone. Use a new address. If the welcome email doesn’t arrive within ten minutes, stop here and fix the trigger. Nothing else on this list matters as much.
- Export flow recipients for the last 30 days. Put them next to form submits, checkouts started and cancellations. Circle any flow whose ratio looks wrong.
- Click every code. Open each flow, find every discount, and test it at checkout. Kill or replace anything expired, stacking or not applying.
- Write the flow inventory. One row per flow: trigger, status, owner, last reviewed. Mark drafts as missing.
- Put the audit in the calendar. Same day each month, one owner, 60 minutes.
Flows aren’t assets until someone checks them
A flow you built last year is a promise you made to every future subscriber. Most brands we audit are breaking a few of those promises without knowing it. The fix is rarely clever. It’s an hour a month, a test inbox and someone whose job it is to look.
