Troubleshooting

Klaviyo replenishment flow not firing

Why a Klaviyo replenishment flow stops firing for subscription and CPG brands — predicted-purchase-date logic, subscription-platform sync, filter exclusions, and timing drift.

Published


title: "Klaviyo replenishment flow not firing" description: "Why a Klaviyo replenishment flow stops firing for subscription and CPG brands — predicted-purchase-date logic, subscription-platform sync, filter exclusions, and timing drift." slug: "klaviyo-replenishment-flow-not-firing" publishedAt: "2026-05-19" updatedAt: "2026-05-19" painCluster: 1 intent: 7 tier: 4 faq:

  • q: "How does Klaviyo's replenishment flow trigger know when to fire?" a: "Replenishment flows typically trigger on Placed Order with a time delay calibrated to the product's expected consumption period — 30 days for daily supplements, 60-90 days for less-frequent consumables, etc. Some sophisticated setups use Klaviyo's predicted-purchase-date field, which forecasts the next purchase based on historical behavior. The trigger fires when the timer expires; entries depend on whether the trigger event still happened in the first place."
  • q: "Does Klaviyo's predicted purchase date work for new customers?" a: "No, not initially. Klaviyo's predictive analytics need a baseline of behavior — typically 3-5 orders per profile — before the predicted purchase date becomes reliable. For first-time and second-time buyers, you'll need to use a fixed time delay instead. Once the profile has enough order history, switch to predicted purchase date for personalization."
  • q: "Why does the replenishment flow exclude my active subscribers?" a: "It should — subscribers on auto-ship don't need a reminder to re-order something they're already auto-receiving. The exclusion is usually a flow filter referencing a custom property or segment that marks active subscribers. If the filter is broken (custom property not syncing, segment definition wrong), subscribers will receive replenishment reminders for products they're already getting, which generates complaints."
  • q: "My replenishment flow is firing but conversion dropped. What changed?" a: "Three common causes. Product duration estimate is wrong (you set 30 days, customers actually go 45). Offer copy stale (the discount in your template expired or is no longer competitive). Or the subscription channel competes with the replenishment flow — customers who would have re-ordered via flow are now opting into subscription instead, which is good revenue but bad flow conversion."
  • q: "Can ReCharge or Skio break my Klaviyo replenishment flow?" a: "Yes, in two ways. Their order events may sync to Klaviyo as Placed Order, which resets your replenishment timer prematurely. Or their subscription cancellations don't sync, leaving 'inactive subscriber' profiles wrongly excluded from the flow. Audit the subscription-platform integration's event mapping if you're seeing replenishment misses."
  • q: "How long should the replenishment flow wait before sending?" a: "It depends on product duration. A daily supplement that's a 30-day bottle: 25 days post-purchase (5-day buffer before they run out). A monthly skincare cream: same logic — predicted-depletion minus 3-7 days for ordering and shipping lead time. Anything where customer experience suffers if they run out completely (medications, baby food) gets a longer buffer."
  • q: "Does the replenishment flow need its own template?" a: "Yes. The copy register is different from welcome or abandoned cart — it's a customer-relationship moment, not an acquisition moment. The subject line should reference the product. The CTA should be one-click reorder, ideally pre-populated with the same SKU and quantity."
  • q: "Will Playbook detect a broken replenishment flow?" a: "Yes. Replenishment flows go silent in three observable ways: trigger event (Placed Order) stops recording, flow entries drop to zero despite eligible profiles existing, or conversion rate cliff-drops. Playbook monitors all three and surfaces the finding within an hour of when it happens." related:
  • klaviyo-flow-stopped-generating-revenue
  • klaviyo-recharge-attribution
  • klaviyo-abandoned-cart-flow-not-firing
  • klaviyo-flow-checklist-essential-flows

For subscription-leaning and CPG brands, the replenishment flow is one of the most leveraged automations in the account — it captures revenue that should have happened anyway from customers who already trust the product. When it works, replenishment is the quiet engine. When it stops working, the dropoff doesn't look like a problem; it just looks like organic revenue softness, which gets attributed to "the market" or "seasonality" and the actual operational break goes unnoticed for weeks.

This page covers the failure modes specific to replenishment flows. Most are timing-related or subscription-platform-related; both categories tend to produce silent failures because the flow itself looks fine in the editor.

Quick diagnosis checklist

Work through these in order. Each takes 60 seconds.

  • Open the flow → Latest Entries. If entries have dropped sharply against last week's baseline for the same day-of-week, something is blocking entries. Move to step 2.
  • Open Analytics → Metrics → Placed Order. Confirm the trigger event is still firing — events landing recently, not a flat right edge. If Placed Order has gone silent, the integration is broken, not the flow.
  • Look at the flow's trigger configuration. What's the delay? When was this configured? If it's been more than 6 months, the assumed product duration may no longer match reality.
  • Check the flow filter exclusions. Look for any reference to "active subscriber" segment or custom property. If that filter is broken, eligible profiles are being excluded or wrong profiles are being included.
  • If you have ReCharge / Skio / Bold integrated, check the subscription-platform event mapping. Subscription renewals firing as Placed Order will reset your timer.
  • Open the flow's Performance view. Look at conversion rate over the last 30 days vs the prior 30. A drop without an entry drop means template or offer issues, not trigger issues.

If everything passes but the flow still feels off, move into the failure-mode details below.

1. Placed Order isn't recording (or is delayed)

The most common upstream cause of a silent replenishment flow is Placed Order events not landing in Klaviyo, or landing with material delay. The flow editor looks fine; the trigger metric is broken.

How to verify. Analytics → Metrics → Placed Order. The chart should show steady event volume aligned with your actual order volume. A flat right edge means events have stopped. Delays of more than a few minutes between Shopify order and Klaviyo event usually point to webhook trouble.

Common causes. Shopify OAuth token expired (the integration page will say so explicitly if you check). Webhook delivery failing (check Shopify's webhook delivery log for the Klaviyo endpoint). WooCommerce plugin update broke the handshake. Custom-storefront order events not firing the API call.

How to fix. Reconnect the Shopify integration in Klaviyo (Settings → Integrations → Shopify → Reconnect). Webhook delivery usually resumes within minutes. For WooCommerce, the fix is usually to disconnect and reconnect the plugin.

Why this matters most for replenishment. Unlike abandoned cart (which fires within hours), replenishment flows have a delay of weeks. By the time the replenishment trigger should have fired, the underlying Placed Order event may have been missing for weeks — and you only notice because revenue is soft.

2. The duration estimate is wrong

Replenishment flows are calibrated to expected product consumption. If the estimate is wrong, the flow fires at the wrong time and conversion suffers.

How to verify. Open a sample of customer profiles who've placed multiple orders of the same product. Look at the days between orders. If the average is 45 days but your flow fires at 30 days, customers are getting reminded before they're out — fewer of them will act.

How to fix. Adjust the trigger delay to match observed reality. Some brands use Klaviyo's predicted purchase date field for more sophisticated, per-customer timing — that field becomes reliable after 3-5 orders per profile.

Pattern to watch. If your product line includes both single-purchase and subscription-eligible products, customer behavior differs by product type. Don't apply one universal duration; segment your replenishment flows by product category and calibrate separately.

3. Subscription-platform sync is corrupting the trigger

Subscription platforms (ReCharge, Skio, Bold, Loop) integrate with Klaviyo and sync order events. The sync mechanics can interact badly with replenishment flows in two specific ways.

Renewal orders firing as Placed Order. Most subscription platforms sync recurring renewal orders to Klaviyo as Placed Order events. From the flow's perspective, this looks like the customer just placed a new order, which resets the replenishment timer — even though the customer didn't take any action. The customer keeps receiving replenishment reminders that never align with their actual depletion timeline.

Subscription state not syncing. When a customer cancels their subscription, that cancellation may not sync back to Klaviyo's profile state immediately or completely. The profile may remain flagged as "active subscriber" in Klaviyo even after they've left the subscription — so they're excluded from the replenishment flow even though they should now be receiving it.

How to verify. Open a sample of subscription customers' profiles. Look at the event history. Check whether subscription renewals show as Placed Order. Check whether subscription-state custom properties match the customer's actual current status.

How to fix. Audit the subscription-platform integration's event mapping. Most platforms let you choose whether subscription renewals fire as Placed Order or as a custom event (e.g., "Subscription Renewal"). Configure renewals as a custom event, not Placed Order, so they don't interact with your replenishment flow's trigger logic. For state-sync issues, set up a daily reconciliation between subscription-platform data and Klaviyo custom properties.

4. Filter exclusions are too tight or too loose

The flow filter that excludes active subscribers is the most common point of failure. It's also the filter that's most often configured once and forgotten.

How to verify. Open the flow filter. Look at how it identifies active subscribers — is it a segment, a custom property, an integration field? Test the filter against a known active subscriber and a known former subscriber. Each should evaluate as expected.

Common breakage patterns. The filter references a custom property that stopped syncing. The filter references a segment definition that's gone stale. The filter excludes "any current subscriber" but doesn't include "any former subscriber should receive this" — so former subscribers get nothing because they got auto-excluded once and the rule didn't reverse when they cancelled.

How to fix. Update the filter to current reality. For complex subscription/non-subscription mixed states, build a custom property like subscription_status with values active, paused, cancelled, never and key the filter off that.

5. The offer or discount in the template is stale

Replenishment flow templates often include a discount code as an incentive ("Save 10% on your re-order"). If that code expired, was removed, or is now offering less than your standard promotion, conversion drops without any trigger or filter issue.

How to verify. Open the template. Click any discount-code link. Verify the code is active and applies the discount you expect. Compare the discount to your current site promotions.

How to fix. Update the code. If you regularly rotate codes, consider using Klaviyo's dynamic discount-code generation feature (creates a unique code per profile, expires on schedule), which avoids the "everyone uses the same code that eventually leaks" problem.

6. Smart Sending is suppressing replenishment

Replenishment timing usually doesn't conflict with broadcast campaigns, but if a customer just received a campaign email within Smart Sending's 16-hour default window, their replenishment email will be suppressed.

How to verify. Open the replenishment flow's first email. Check whether Smart Sending is ON. Look at a sample of profiles who should have received the email and verify in their activity feed that they actually received it (vs Smart-Sending-skipped).

How to fix. Turn Smart Sending OFF on replenishment emails. The flow logic itself prevents re-entry; Smart Sending is redundant here and actively harmful to timing.

Why replenishment failures hide so well

Replenishment is the canonical silent-failure flow. Unlike abandoned cart (which has fast feedback because the trigger event is recent and the conversion window is short), replenishment operates on a weeks-long timer. By the time you'd notice that conversions dropped, the trigger event may have been broken for a month. The revenue softness gets attributed to "seasonality" or "the market" — both convenient explanations that don't require root-cause investigation.

The cumulative cost of a broken replenishment flow at any meaningful scale is substantial. A brand sending $50K/mo from replenishment that breaks silently and stays broken for three weeks has lost $35K of expected revenue, and the customer relationships are harder to recover than the campaign-level revenue (a customer who didn't get reminded to re-order may not re-order at all, just lapse).

The operational answer is the same as for every other flow: continuous monitoring of the trigger event, the flow entries, and the conversion rate. Catch the drift in the first 24-48 hours. The fix is fast; the detection lead time is the entire cost. Playbook monitors all three signals on hourly scans and surfaces the finding the day it happens.

Frequently asked questions

How does Klaviyo's replenishment flow trigger know when to fire?
Replenishment flows typically trigger on Placed Order with a time delay calibrated to the product's expected consumption period — 30 days for daily supplements, 60-90 days for less-frequent consumables, etc. Some sophisticated setups use Klaviyo's predicted-purchase-date field, which forecasts the next purchase based on historical behavior. The trigger fires when the timer expires; entries depend on whether the trigger event still happened in the first place.
Does Klaviyo's predicted purchase date work for new customers?
No, not initially. Klaviyo's predictive analytics need a baseline of behavior — typically 3-5 orders per profile — before the predicted purchase date becomes reliable. For first-time and second-time buyers, you'll need to use a fixed time delay instead. Once the profile has enough order history, switch to predicted purchase date for personalization.
Why does the replenishment flow exclude my active subscribers?
It should — subscribers on auto-ship don't need a reminder to re-order something they're already auto-receiving. The exclusion is usually a flow filter referencing a custom property or segment that marks active subscribers. If the filter is broken (custom property not syncing, segment definition wrong), subscribers will receive replenishment reminders for products they're already getting, which generates complaints.
My replenishment flow is firing but conversion dropped. What changed?
Three common causes. Product duration estimate is wrong (you set 30 days, customers actually go 45). Offer copy stale (the discount in your template expired or is no longer competitive). Or the subscription channel competes with the replenishment flow — customers who would have re-ordered via flow are now opting into subscription instead, which is good revenue but bad flow conversion.
Can ReCharge or Skio break my Klaviyo replenishment flow?
Yes, in two ways. Their order events may sync to Klaviyo as Placed Order, which resets your replenishment timer prematurely. Or their subscription cancellations don't sync, leaving 'inactive subscriber' profiles wrongly excluded from the flow. Audit the subscription-platform integration's event mapping if you're seeing replenishment misses.
How long should the replenishment flow wait before sending?
It depends on product duration. A daily supplement that's a 30-day bottle: 25 days post-purchase (5-day buffer before they run out). A monthly skincare cream: same logic — predicted-depletion minus 3-7 days for ordering and shipping lead time. Anything where customer experience suffers if they run out completely (medications, baby food) gets a longer buffer.
Does the replenishment flow need its own template?
Yes. The copy register is different from welcome or abandoned cart — it's a customer-relationship moment, not an acquisition moment. The subject line should reference the product. The CTA should be one-click reorder, ideally pre-populated with the same SKU and quantity.
Will Playbook detect a broken replenishment flow?
Yes. Replenishment flows go silent in three observable ways: trigger event (Placed Order) stops recording, flow entries drop to zero despite eligible profiles existing, or conversion rate cliff-drops. Playbook monitors all three and surfaces the finding within an hour of when it happens.