Replenishment Reminders on Shopify: Work Out the Timing
How to set up a Shopify replenishment reminder flow: derive the send day from your own repeat-order gaps, a worked 30-day example, and keep it out of winback.
Quick answer: A replenishment reminder should land a few days before your customers would normally reorder, and the right day comes from your own orders, not from a rule. Export your orders, measure the gap in days between repeat orders of one product, and set the first reminder a few days ahead of the lower quartile of those gaps; Klaviyo’s own example sends it about 25 days after customers enter the flow, for a product with a 30-day supply. Stop the reminder for anyone who reorders and keep replenishable products out of your winback flow. It suits consumables with a predictable use-up time, and I cannot tell you what it will do to your repeat rate.
Most advice on replenishment flows fits in one sentence: send a reminder before the customer runs out. That is correct and it is not enough. It does not tell you what day that is for your product, what to do when customers reorder at very different speeds, or how to stop the same customer getting a “we miss you” email for a product they have not finished yet.
This post gives you a method: pull your own repeat-order gaps from a Shopify order export, turn them into a send day, and build the flow around that number. It is for stores that sell consumables, things people use up and buy again. I write the steps in Klaviyo’s terms because that is where many Shopify stores build flows, and I read Klaviyo’s help articles on 31 October 2026 for this post. Screen names and wording change, so treat them as “as at 31 October 2026” and check them in your account. Prism3 does not run email or ads; this is a method you, or whoever manages your email, can run. For the wider picture, see how email lifts customer lifetime value on Shopify.
Does your store need a replenishment flow?
Run this check before you build anything. A replenishment flow only makes sense if three things are true:
- The product gets used up. Coffee, supplements, skincare, pet food, cleaning refills, consumable parts. Not a bag, a bed frame or a one-off gift.
- People actually reorder it from you. If hardly anyone buys it twice, a reminder has nobody to remind.
- The reorder gap is reasonably consistent. If some customers reorder in three weeks and others in six months, one reminder day will be wrong for most of them.
Shopify gives you a fast check on the second point. Its customer reports include a Returning customers report (customers with two or more orders, with their first and most recent order dates and order count) and a One-time customers report. Look in your own admin to see which you have. If repeat buyers are a thin slice of your list, start with how to calculate and raise your repeat purchase rate, because a reminder flow will not create a habit that is not there.
Here is how I sort products before deciding.
| Product type | Typical fit | What to do |
|---|---|---|
| Daily or weekly use, fixed pack size (supplement, coffee, skincare) | Strong | Build a product-specific flow |
| Used up, but pace varies by person (pet food, sunscreen) | Possible | Check the spread of gaps first; wide spread means a weaker flow |
| Bought rarely or once (appliances, furniture, gear) | Poor | Use post-purchase and cross-sell flows instead |
If customers already buy the product on a plan, read when subscribe and save works on Shopify first. A subscriber does not need a nudge to reorder, so find out whether your subscription app’s orders can be excluded in your email tool, and test it with a real subscriber profile.
What the platform documentation says a replenishment flow is
Klaviyo’s help article on creating a replenishment flow (it showed a last-updated date of 8 October 2026 when I read it) sets out the structure. It is worth knowing exactly what is documented, because most blog posts blur it:
- Trigger: the Placed Order metric. Klaviyo has pre-built replenishment templates for Shopify and BigCommerce integrations in its flow library (Flows, Create Flow, then “Encourage repeat purchases” or a search for replenishment). Otherwise you build one from scratch with Placed Order as the trigger.
- Trigger filter for a single product: add a filter such as Items contains your product’s name, so only orders containing that product start the flow.
- Profile filter: Placed Order zero times since starting this flow. Klaviyo says this stops a customer who has reordered from receiving a reminder. It does not remove them from the flow; they move on to the next step and the filter is checked again.
- A warning about that filter: for a product-specific flow, limit the filter to orders for that product, because otherwise a purchase of something unrelated could stop the reminder.
- Timing: adjust the first reminder to your customers’ established buying cycles. The documented example is a supplement with a 30-day supply, with a reminder about 25 days after customers enter the flow.
- Number of messages: Klaviyo’s rule of thumb is two reminders, then one follow-up after the projected buying cycle has passed, carrying an extra incentive such as a discount or coupon. It also says not to badger customers.
- Content: product information relevant to the purchase, and optionally a product block with similar or complementary items.
Notice what is missing. That article gives one example (30-day supply, day 25) and says to base timing on your customers’ established buying cycles by reviewing your purchase data, but it does not show how to work those cycles out. That is the gap this post fills. The logic works in other email tools if they handle product-level triggers and “has not ordered since” conditions.
Derive the reminder day from your own repeat-order gaps
The method has seven steps. Do it for one product (or one group of products that share a cycle) at a time. Allow an hour or two for your first one.
Step 1: Pick one product or one cycle group
Start with your best-selling consumable in its most common size. Do not mix a 30-day bottle with a 90-day bottle; blending two cycles gives you a number that suits neither. Klaviyo’s predictive analytics article agrees: for products with different replenishment cycles, it recommends separate Placed Order flows, each with trigger filters limited to products that share a cycle.
Step 2: Export your orders
In Shopify admin, go to Orders, click Export, and choose Orders by date, covering the last 12 to 24 months. That range is my judgement call: long enough to catch repeat buyers, short enough that your product and pack sizes have not changed much. Shopify says exports by date are emailed to you and the store owner, so allow time for the file to arrive.
The export is a CSV with one row per line item. The columns you need are:
- Email (the customer)
- Created at (when the customer completed the order)
- Lineitem name (the product)
- Lineitem quantity
Shopify says orders with several items put the extra items on separate rows, with many other fields left blank. That matters in step 3. This file also holds customer emails, so keep it on a work device and delete it when you finish.
Step 3: Clean the sheet
Open the CSV in Excel or Google Sheets and do four things.
- Fill the blanks down. Check the extra line-item rows of a multi-item order. If the Email or Created at cell is empty there, copy it down from the first row of that order (the Name column, the order number, tells you which rows belong together) so every row has an email and a date.
- Convert Created at to a date. You want whole days, not timestamps.
- Keep only rows for your product. Filter Lineitem name to the product and size you picked, then copy the visible rows into a new sheet. Keep every quantity for now; step 4 deals with it.
- Plan for stock-up buys. A customer who buys two units has roughly double the supply, so the gap that follows that order is not comparable. Step 4 leaves those gaps out. Obvious stock-up buys at quantity 1 (a big sale order, a bulk gift) are harder to spot and you will not catch all of them, which is one reason to use the median in step 5.
Step 4: Measure the gaps
Sort the rows by Email, then by date (oldest first). Add a column D for the gap in days between each order and the same customer’s previous order of this product, counting it only when that previous order was for one unit:
=IF(AND(A3=A2, C2=1), B3-B2, "")
Here column A is Email, column B is the date and column C is Lineitem quantity, with the first data row in row 2, so the formula starts in D3. Copy it down. Each number in column D is one repeat order: the days between a customer’s order and their next order of the same product, where the earlier order was a single unit. The gap depends on the quantity of the earlier order, because that is the supply being used up. Delete any gap of 0 days: that is usually a split or duplicate order, not a reorder (my judgement, so look at a few before deleting).
Step 5: Summarise the gaps
You need four numbers from the gap column:
- The count. How many repeat gaps you have. Treat anything under about 20 as a rough guide, not a result (my rule of thumb, not a platform rule).
- The median.
=MEDIAN(D2:D500). I prefer the median to the average because a handful of long gaps (someone who stocked up, or was away) drag an average up without changing what most people do. - The lower quartile.
=QUARTILE(D2:D500,1). A quarter of the gaps are shorter than this, so it marks the point by which the quickest quarter of repeat buyers have already reordered on their own. - The upper quartile.
=QUARTILE(D2:D500,3). Three quarters of the gaps are shorter than this.
Also draw a quick histogram in 7-day buckets. One clear hump means one schedule will work. Two humps (say one near 30 days and one near 60) mean two customer types or two pack sizes, so look at splitting the flow.
Step 6: Choose the reminder days
This is my rule of thumb for a first schedule, not a platform setting, so test it:
- Reminder 1: the lower quartile minus a buffer. The buffer covers the time a customer needs to open the email, order, and have the product delivered before they run out: your carrier’s usual delivery time plus a day or two.
- Reminder 2: a few days after Reminder 1.
- Follow-up: just after the upper quartile, when most historic reorders have already happened and the people still not back are worth a different message. Klaviyo suggests an incentive here; more on that below.
Your flow clock starts when the order is placed (the Placed Order event), not when the parcel arrives. Your step 4 gaps are also order-to-order, so the two line up. A schedule built from the label’s pack size would need delivery time added by hand.
Step 7: Sanity check against the label and reality
Compare your result with the label. If a pack is meant to last 30 days and your median gap is 31, that agrees. If the median is 44, customers use it more slowly than the label implies, and a label-based reminder will arrive too early. Trust the orders. One limit: the gaps only come from customers who did reorder, so they show when repeat buyers reorder, not how many people ever will.
A worked example (illustrative numbers, not a real store)
This is an example to show the arithmetic. The numbers are made up. Do not use them as a benchmark.
Say you sell a 30-day supply of a product. You export your orders, work through steps 3 and 4 for that product, and find 12 repeat gaps that follow single-unit orders, in days:
24, 27, 28, 29, 30, 31, 32, 33, 35, 38, 44, 61
Using the spreadsheet functions above on these 12 numbers:
| Measure | Result (illustrative) |
|---|---|
| Median | 31.5 days |
| Lower quartile | 28.75 days |
| Upper quartile | 35.75 days |
| Average | about 34.3 days |
The average sits above the median because the 61-day gap pulls it up. A schedule built from the average would aim at a day few of these customers actually hit.
Now apply the rule. Say your carrier delivers in about three days and you allow one more day for the customer to act on the email, so the buffer is four days.
- Reminder 1: lower quartile, about 29, minus 4 = day 25.
- Reminder 2: day 29, four days later, around the lower quartile.
- Follow-up: day 36, just past the upper quartile.
Reminder 1 lands on day 25, the same day as Klaviyo’s 30-day-supply example. That agreement is a sanity check, not proof that either is right for your store.
Now watch what the filter does with this illustrative group. One customer (the 24-day gap) reordered a day before Reminder 1. Klaviyo checks profile filters before each send, so that customer is skipped from then on. By day 29, at most four of the twelve had reordered on their own (the 24, 27, 28 and 29-day gaps), so Reminder 2 goes to at most eight. By day 36, nine had reordered (every gap up to 35), so the follow-up reaches the remaining three: the 38, 44 and 61-day customers. Whether any of them would have come back anyway is exactly what this data cannot tell you.
Now a case where the label misleads. Suppose the same 30-day product shows a median gap of 44 days and a lower quartile of 40 (made-up figures again). The same rule gives Reminder 1 at day 36. A label-based schedule would have sent it at day 25, 11 days earlier than the rule above and 15 days before even the lower quartile of 40 days.
Build the flow in Klaviyo
With the days chosen, the build follows the structure in Klaviyo’s article.
1. Trigger and filters. Use the Placed Order trigger and add a trigger filter limiting entry to your product (Items contains the product name, or each product that shares the cycle). Klaviyo’s product-specific flow article notes that filtering on Items alone also includes orders with other products in them. Here that is usually what you want: someone who buys the bottle plus a gift should still be reminded about the bottle. For single-item orders only, add Item Count equals 1.
2. Match names exactly. Klaviyo’s flow filter article says filters look for exact keyword matches. If you rename a product or size, an Items filter can quietly stop catching orders, so check it after any rename.
3. Add the profile filter. Placed Order zero times since starting this flow, limited to the same product. Then test it: place a test order, place a second one for the product after the flow starts, and check that Reminder 2 is skipped.
4. Check the re-entry setting. Each new order should start a new countdown. Klaviyo’s trigger settings offer re-entry options (enter only once, re-enter whenever they re-qualify, or re-enter after a minimum time). Look at what yours is set to; do not assume the default.
5. Set the delays. Delay 1 is your Reminder 1 day, delay 2 the gap to Reminder 2, delay 3 the gap to the follow-up. In the worked example: 25 days, then 4, then 7.
6. One flow per cycle group. A 30-day product and a 90-day product each get their own flow, trigger filter and delays, as Klaviyo’s predictive analytics guidance recommends. Watch for overlap: a customer who buys both in one order enters both flows, so decide whether two reminders days apart is fine.
7. Write the reminders. Keep it plain: the product they bought, its image, and a button straight to reorder it. Do not invent urgency; “running low?” is fair only if your timing data says they probably are.
The Klaviyo “expected date” trap
Klaviyo can predict each customer’s expected date of next order, and it is tempting to use that as the trigger. Klaviyo’s predictive analytics article says the date does not consider which products the customer ordered, and that its flow should not replace replenishment flows if you know the general cycles for most of your product categories. It also advises against counting down to the predicted date, because repeat customers would get the same sequence of emails before every order, which may result in unsubscribes. For a one-time buyer the date is calculated from data across all your customers, so it is a weak guide to when one product runs out.
The follow-up message and the discount question
Klaviyo’s rule of thumb attaches the incentive to the follow-up, the message sent after the projected buying cycle has passed. I would treat that as an option rather than a default.
A customer who is late to reorder does not necessarily need a discount. They may have a spare bottle, be travelling, or have switched. Give every late customer a coupon and you can teach a regular buyer to wait for it; discount dependency on Shopify lists the signs. A cheaper first step is a follow-up with no discount, such as a one-click reorder link. Test an incentive on the follow-up only, and judge it against margin, not revenue alone.
Keep replenishable products out of your winback flow
A winback flow finds customers who have not bought for longer than your typical buying cycle and invites them back. Klaviyo’s winback article says to set the first delay a little longer than your average buying cycle. For a store that sells coffee and mugs, say, “the average” blends a 4-week product with a multi-year one, and the resulting delay is wrong for both buyers.
Klaviyo’s winback article says it directly: if any of your items are replenishable with a set buying cycle, you may want to exclude them from the winback flow and create a separate replenishment flow for them. Here is how I do it.
- List your replenishable products (or the collection or product type that groups them). Be strict: only products with a real, repeatable use-up cycle.
- Edit your winback flow’s trigger filter. The winback flow uses the Placed Order trigger. Klaviyo’s trigger filter article shows the pattern for a Placed Order trigger that includes one category and excludes another. Apply it the other way round: exclude orders that contain your replenishable products. Placed Order has Collections / Categories and Items properties you can filter on.
- Decide the mixed-basket rule. When a customer orders a replenishable and a one-off item together, does that order enter winback? Excluding any order with a replenishable item is simplest, and my default. Pick a rule and write it down.
- Check for overlap. Make sure nobody sits in both flows at once, so a replenishment reminder and a “we miss you” email never land in the same week.
- Plan for the customer who never comes back. After the follow-up, a quiet customer is lapsed for that product. Give them a separate, longer lapse point based on that product’s cycle, not your store-wide average. With a cycle of about a month, something like 90 days is a starting guess, not a rule. Use the structure in the Shopify winback flow guide for the messages.
Two flows, two jobs: replenishment works around the expected reorder, winback handles customers who have gone quiet on everything else.
Consent, unsubscribe and the Australian rules
A replenishment reminder invites someone to buy again, so treat it as a marketing message. This section is general information about Australian rules, not legal advice, and it does not cover the US or other countries.
The Australian Communications and Media Authority (ACMA) says that if you plan to send marketing messages or emails, you must first have consent from the recipient, and under the Spam Act it is up to you to prove it. On inferred consent, ACMA says: “It does not cover sending messages after someone has just bought something from your business.” So I would not treat a purchase alone as proof of consent to enrol someone in a reminder flow; your sign-up and checkout wording matters.
ACMA also says each message must identify you as the sender, include your contact details, and carry an unsubscribe option that is clearly presented, honoured within 5 working days, free to use, and functional for at least 30 days after sending. A flow that runs over several weeks makes that real: once someone’s unsubscribe is processed, they should not get Reminder 2. Test it with a real unsubscribe before going live. For SMS reminders, see SMS consent rules for Australian Shopify stores.
Check whether it is working
Run these checks in the first two weeks, not at a quarterly review.
- Does each step fire when it should? Place a test order with a test profile, confirm Reminder 1 is scheduled for the day you set, and that a second test order stops Reminder 2.
- Is anyone getting two messages in the same week? Look for overlaps with post-purchase, winback and campaigns.
- Are unsubscribes moving? A spike on one step points to its timing or copy.
For results, do not credit every reorder to the email. Customers who were going to reorder anyway can open the reminder and click, and platform attribution will count that; email attribution across Klaviyo, GA4 and Shopify explains why the numbers differ. A better read is the share of customers who reorder within a set number of days, before and after the flow went live, using Shopify’s customer cohort analysis (how to read the cohort analysis report). With enough volume, a holdout group that does not get the reminders is the cleanest comparison. I will not tell you what a reminder lifts your repeat rate by: no source I trust gives a number you can apply to your store, and mine would be a guess.
Re-run the gap analysis after three to six months. Prices, pack sizes and your customer mix change, and the day that was right in December may be a week off by June.
Where this sits in the bigger picture
A replenishment flow works on the lifetime-value half of high CAC and low LTV, and only where a repeat habit already exists. It does nothing for the first order. The growth system of paid, organic, CRO and email shows how the parts connect.
Key takeaways
- Replenishment flows suit consumables with a predictable use-up time and real repeat buyers. Check your Returning customers report first.
- Derive the reminder day from your own data: export orders, measure order-to-order gaps for one product, and use the median and quartiles, not the average or the label.
- A starting rule: Reminder 1 at the lower quartile minus a delivery-and-action buffer, Reminder 2 a few days later, a follow-up just past the upper quartile. Test it.
- Klaviyo’s documented structure: Placed Order trigger, an Items filter for the product, a “zero times since starting this flow” profile filter limited to the same product, two reminders and one follow-up.
- Keep replenishable products out of your winback flow, as Klaviyo’s winback guidance suggests, and give them their own lapse point.
- The gaps only describe customers who reordered. They do not tell you how many will, and I cannot promise a reminder will change your repeat rate.
- Treat reminders as marketing messages: consent, sender details and a working unsubscribe apply. This is not legal advice.
FAQs
How long after purchase should a replenishment email be sent?
It depends on how long your customers take to reorder. Klaviyo’s help article gives one example: a supplement with a 30-day supply gets a reminder about 25 days after customers enter the flow. For your store, measure the gaps between repeat orders of the product and set the first reminder a few days before the lower quartile, as described above.
Do I need Klaviyo to run a replenishment flow?
No. The method works in any email tool that can trigger on an order, filter by product and check whether a customer has ordered since. The click paths here are Klaviyo’s, as at 31 October 2026, so check how your tool handles product filters and exits.
Which Shopify products suit a replenishment flow?
Consumables with a repeatable use-up time and real repeat buyers, such as coffee, supplements, skincare and pet food. Items bought once or rarely do not.
Should I exclude replenishable products from my winback flow?
Klaviyo’s winback article says you may want to, and to create a separate replenishment flow for them. A winback delay is set from your store’s typical buying cycle, which is a poor fit for a product used up every few weeks. Excluding those products also stops one customer getting a reminder and a “we miss you” email close together.
How many replenishment emails should I send?
Klaviyo’s rule of thumb is two reminders, then one follow-up after the expected buying cycle has passed. It also says not to badger customers. Start there, watch unsubscribes, and add nothing until the data says it is needed.
Do I have to offer a discount in a replenishment email?
No. Klaviyo suggests an extra incentive on the follow-up, but that is an option. A discount costs margin and can teach regular customers to wait for it, so test it on the follow-up only and judge it against margin.
Will a replenishment reminder increase my repeat purchase rate?
I cannot tell you, and I would distrust anyone who quotes a percentage. It depends on your product, customers and timing. Measure it with a cohort view or a holdout group, not email attribution alone.
Keep reading
- How email lifts customer lifetime value on Shopify
- Shopify winback flow for lapsed customers
- Repeat purchase rate on Shopify: how to calculate and raise it
Want to see where your store loses buyers after the click?
A reminder brings back someone who has already bought once; getting that first purchase is a separate job. Book a free 30-minute diagnostic: we look at where your store loses buyers after the click, using your own numbers, and tell you what to fix first. We do not run ads or email. No pitch. No email gate. If conversion after the click is where you want help, see how our Shopify CRO service works.
Free 30-min diagnostic
Seen enough?
Book a free diagnostic.
We'll look at where your store loses buyers after the click and what to fix first. No pitch. No email gate. 30 minutes.
More from Prism3
Afterpay vs Zip vs Shop Pay Instalments: Shopify AU
Afterpay, Zip and Shop Pay Instalments compared for Australian Shopify stores: merchant fees, payouts, approval, checkout placement and a worked margin example.
AI-Referred Orders on Shopify: What Is Real and What Is Hype
What Shopify has disclosed about AI-referred orders, why the 13x headline needs context, how to find AI traffic in GA4 and Shopify, and what to do now.
AI Visibility Tools for Shopify: What They Measure and Miss
What AI visibility tools for Shopify stores really count: mentions, share of voice and citations, where the data is sampled or unstable, and how to use them.