Skip to main content
Growth

The First 90 Days After Purchase: A Shopify Retention Map

A day-by-day map of the 90 days after a Shopify order: what email and SMS tools do, what your site does, and how to prove a second order. Timing illustrative.

November 4, 2026 19 min read Talha Butt.
Share

The First 90 Days After Purchase: A Shopify Retention Map

Quick answer: A new customer’s first 90 days run on two tracks. Your email and SMS tool owns the messages (confirmation, shipping, how to use it, review request, reorder reminder, win-back), and your site owns the pages the customer touches in between (the order status page, the returns path, reviews and the way back to reorder). Time the messages to delivery and to how fast the product gets used up, not to a fixed number of days after the order, and prove a second order with Shopify’s customer cohort report instead of the revenue your email tool attributes to itself. Every day number in this guide is illustrative, not a benchmark.

Most advice on a Shopify post-purchase flow is a list of emails with day numbers attached. The day numbers rarely come with a source, so I have not borrowed any. This guide maps what a new customer goes through between the order confirmation and a possible second order, who owns each step, and how you would know a second order happened because of your work and not despite it.

One thing up front. Prism3 does not run email or SMS. We sell Shopify SEO, GEO and CRO. I am writing this because a second order is one of the ways to lower what a customer costs you, and it is partly decided by a stretch of the customer relationship that is easy to leave unmapped. Your email tool is only part of it: the rest happens on your site, and the proof happens in your analytics.

Everything below about Klaviyo and Shopify comes from their own help centre pages, read on 31 October 2026. Help pages change, so treat each product detail as “as at 31 October 2026” and check the live page before you build on it.

The map at a glance

To show the shape of the 90 days, take an invented store: the parcel arrives about a week after the order, and the product is used up in roughly six weeks. Those numbers are made up. Yours will differ.

Window (illustrative)What the customer is going throughWho owns it
Day 0Has paid; wants proof it workedSite: confirmation and order status page. Tool: confirmation message
Days 1 to 7Waiting; checking where the parcel isTool: shipping message tied to fulfilment. Site: tracking on the order status page
Days 7 to 21Parcel arrives; first use; maybe a problemTool: how-to-use and review request. Site: reviews, returns path, support answers
Days 21 to 45Product running low (if it is that kind of product)Tool: reorder reminder, cross-sell. Site: an easy way back to the same product
Days 45 to 90Either reordered, or driftingTool: win-back, with a stop rule. Site: the same pages, plus a reason to return
Every dayThe numbersMeasurement: Shopify cohort report first, email attribution second

The windows are not a schedule to copy.

Set your own clock before you build anything

Three decisions come before any email is drafted.

1. Anchor the clock to delivery, not to the order. The customer’s experience starts when the parcel arrives, not when they paid. A “how to use it” email that lands before the product does is noise. Klaviyo’s post-purchase guide makes the same point: its example business takes about nine days from order to dispatch, so it advises timing instructional emails to that shipping window. Write down your real order-to-door time from your last ten orders.

2. Find the product’s natural cycle. How long until the customer needs this again, or needs something that goes with it? A coffee bag, a skincare serum and a pet food bag have a cycle. A mattress, a piece of furniture or a one-off gift often does not. If your product has no cycle, a reorder reminder is the wrong tool; lean on reviews, referrals and good support instead.

3. Decide what counts as a second order. Use Shopify’s definition so your numbers match its reports. In Shopify’s customer reports, the returning customers report covers customers whose order history includes two or more orders, and Shopify says the data in customer reports is based on the entire order history of the customers in the report. For a 90-day question you want something narrower: a second order inside 90 days of the first. Write that definition down.

Day 0: the order is placed

What your email and SMS tool does

When a customer completes checkout and the order is created in Shopify, Klaviyo records a “Placed Order” event. Its post-purchase guide has you choose Placed Order as the trigger, and recommends delays for the product review, cross-sell and upsell types but not for thank-you flows. So the thank-you goes out straight away, and the others wait.

Place a test order and look at what actually arrives. Klaviyo’s troubleshooting page says you can use a Shopify test order, or place a real order and refund it. If Shopify’s own order confirmation and a flow “thank you” arrive within seconds and say much the same thing, the customer has been told twice. The customer has just paid; the useful message is “here is what happens next and where to look”.

What the site does

The page that matters on day 0 is the order status page. Shopify’s help centre says order confirmations sent by email, SMS or the Shop app can include a link to it, and that the order confirmation, shipping confirmation and shipping update email templates can include it. Shopify also says the link is emailed to the customer when you update the order with a tracking number.

Two details are easy to miss, and both come from Shopify’s help pages:

  • Customised templates can lose the link. If you have edited the notification templates, Shopify says it cannot add the order status link for you. You either revert the template to default, which erases your other edits, or add the {{ order_status_url }} code yourself.
  • The page has a clock. Shopify says customers can open the order status page from their confirmation email for 3 weeks without logging in when they use the same browser. On a different browser the window is 2 weeks, across a maximum of 5 browsers. After that, they are asked to log in, or to give the order number plus the email address or phone number used at checkout. Someone who is not logged in sees limited details: the items, the order total, discounts and the order status. Name, addresses, payment method, shipping method and tracking number are hidden.

Test it: open your own order status page on a phone from a real confirmation, then again logged out. Would a stranger know what happens next, where the parcel is and how to contact you?

Days 1 to 7: waiting for the parcel

What your email and SMS tool does

The message that belongs here is a shipping message. Klaviyo tracks a “Fulfilled Order” event when an order is marked fulfilled in Shopify, and a flow can start from it, which is a better clock for shipping-related messages than the order date. Klaviyo also has delivery events (confirmed shipment, out for delivery, delivered), but its Shopify data reference says those sync only when Shopify makes them available, and that Shopify provides them only for certain carriers. So before you build a “your parcel has arrived” message around the delivered event, check whether your carrier produces it. If it does not, use the fulfilment date plus your usual transit time.

If you use Shopify’s own shipping notifications, a tracking number added to the order is what sends the status link, so a fulfilment process that forgets tracking breaks the experience however good the template is.

What Shopify Flow can and cannot do here

Shopify Flow is Shopify’s free automation app; Shopify’s Flow page lists it on the Basic, Grow, Advanced and Plus plans. It suits internal jobs, such as tagging a customer who bought a particular product or alerting your team when an order sits unfulfilled. Its documented actions include sending an internal email and adding customer tags. The actions page I read on 31 October 2026 does not list a customer marketing email, so the messages normally come from an email or SMS platform.

One limit matters if you plan around waits. Shopify’s documentation says the Wait action delays actions or conditions for a maximum of 90 days per workflow, and that a longer wait period stops the workflow from being activated. For delays beyond that, Shopify points to a scheduled workflow with a “Get data” action. For this map, 90 days just fits. For a product with a 120-day reorder cycle, it does not, and you would need a different route.

What the site does

The order status page again. For customers with full access, Shopify says the page updates in real time for supported carriers and shows the shipment location on a map. Once the access window has passed and the customer has not logged in, it shows limited details. Check whether your support inbox is full of “where is my order” emails this page should have answered.

Days 7 to 21: first use, first review, first problem

A customer whose first order arrives late, damaged or confusing is unlikely to reorder, and no reminder email changes that. That is my judgement, not a statistic, but it is why this stretch gets the most on-site attention.

What your email and SMS tool does

Two messages usually belong here: a short how-to-use or care message timed to arrival, and a review request.

On review timing, Klaviyo’s help page for adjusting review request timing says Klaviyo Reviews for Shopify lets you base the request on delivery using shipment tracking information. If no delivery date is available, it uses a separate delay based on the fulfilment date. Neither delay can exceed 60 days. This is one clear example of anchoring to delivery; check how your own review tool times its requests.

If you add SMS here, consent comes first. Our guide to SMS marketing consent for Australian Shopify stores covers the starting points; it is general information, not legal advice.

What the site does: reviews

Reviews the customer leaves are read by the next shopper on the product page. Show them as readable text there, and see our guide to product reviews and star ratings for Shopify SEO for how they interact with search results.

What the site does: the returns path

This is the piece with the most direct effect on whether there is a second order. Shopify’s self-serve returns feature lets customers request a return for delivered items, or cancel items that have not shipped, from their order status page. The details, from Shopify’s help pages:

  • You approve or decline each request in your Shopify admin. A decline needs an internal reason and a message, which the customer receives by email. An approval can include exchange items, and Shopify says you can apply a product discount to them.
  • The customer has to sign in to their customer account to submit a request. A password is not required: they enter their email and a six-digit code.
  • The feature does not work with legacy customer accounts.
  • Your return rules set how long customers have to request a return. If return rules were off when an item was bought, the customer can request a return for it with no time limit.

Put that next to the access window from day 0. A customer who returns to the order status page in week four (week three on a different browser) is asked to log in to see everything, and must sign in to submit a return. That is not necessarily wrong, but it is a step, so walk through it yourself on a phone. Does your returns policy page link to the right place? Our guide to returns policy pages and conversion in Australia covers the wording side; it is not legal advice, and a professional should check how your policy sits against the Australian Consumer Law.

An exchange keeps the order alive instead of ending in a refund. Whether to offer one is a margin decision.

Days 21 to 45: the reorder window, if your product has one

This only applies if your product has a cycle. For the invented store, the product runs out around week six, so the reminder lands in the days before that, not after.

What your email and SMS tool does

A reorder reminder, a cross-sell to something that goes with the first purchase, or both. The mechanics matter more than the copy. Klaviyo’s trigger and filter documentation sets out the ones that bite:

  • Trigger filters only act at the door. For flows that start from an event such as Placed Order, trigger filters are checked only when someone first enters the flow. They look at the data in that order (Klaviyo lists order value, items and item count as examples), so you can send a cross-sell only to orders that contained a certain product. After entry, they are not rechecked.
  • Profile filters act at each step. Klaviyo checks them when someone enters and again before each flow action. If someone fails one before an action, that action is skipped, but they carry on to the next step. A profile filter is the tool for stopping a reorder reminder going to someone who has already reordered. Klaviyo’s help page uses the filter “Has placed order zero times since starting this flow” in its abandoned-cart example; the same logic applies here, but test it on your own flow.
  • Re-entry is a setting. Klaviyo lets you choose whether someone can enter the flow once, whenever they re-qualify, or after a minimum period. A repeat buyer who enters the flow again on their second order is a normal event for a replenishment product, so decide this deliberately.

Without that profile filter, the customer who reordered on day 30 gets a “time to reorder?” message on day 40. It is the first thing worth checking when flows “are not working”.

What the site does

The reminder links to a page on your store, and that is where conversion work lives. Does the link go to the exact product, not the home page? Is the variant the customer bought pre-selected? Can a returning customer reorder in a couple of taps on a phone? These page-level questions decide whether a reminder produces an order. Our guide to repeat purchase rate covers how to calculate the rate you are trying to move.

Days 45 to 90: win-back, and knowing when to stop

By now the customer has either reordered or not. Three things belong here.

A win-back message with a stop rule. Decide when a customer counts as lapsing: for example, once they are well past the product’s natural cycle without reordering. Any multiple you pick is an illustrative starting rule, not a benchmark, so set it from your own reorder data. Send one or two messages, then stop, and set the stop rule before the flow goes live. In my view, more than that mostly annoys people, but test it against your unsubscribe and complaint numbers.

A way to tell why. A short question (“was there anything that put you off?”) can teach you more than another discount, and replies can point at something on the site.

The edge of the map. Ninety days is where this map stops, not where the customer relationship does. Customers who reorder at month five are still customers, and the cohort report below is how you see them.

Measuring a second order

Most stores fool themselves here, because two different numbers both look like “revenue from the flow”.

Start with Shopify’s cohort report

Shopify’s customer cohort analysis report groups customers by the date of their first order. By default each row is a cohort named after the month of the first purchase. You can change the metric (it includes number of customers, customer retention rate, gross sales, net sales and average order value) and switch from the default heatmap to a retention curve. Shopify’s analytics glossary defines customer retention rate as the percentage of customers in a cohort who placed an order in a given period.

Three reading notes, from Shopify’s help pages and my reading of them:

  • The period 0 column holds returning orders from the same period as the first order. Shopify’s own example has a first purchase in February and further orders in June and September, counted as months 4 and 7. So periods run from the month of the first purchase, and “month 3” is not exactly day 90.
  • Retention rate is, as I read it, per period. Shopify defines it as the percentage of customers in the cohort who placed an order in the given period, and its page does not spell out the calculation. So I read each cell as the share of the cohort who ordered in that period, not a running total, which would mean a customer who orders in both month 1 and month 3 appears in both cells. Check this against a small cohort you can count by hand. To get “second order within 90 days”, count customers with any order in the window; do not add the cells together.
  • Projections need history. The “show projections” toggle needs the “Amount spent per customer” metric and, Shopify says, 24 months of data. Ignore them until you have the history.

For a month-by-month walk-through, see our guide to reading the Shopify cohort analysis report.

Why the email tool’s number is a different number

Klaviyo’s help page on message conversion tracking explains how it credits orders. By default it uses last-touch attribution: the order is credited to the most recent eligible message before it, if that message falls inside the attribution window. For new accounts, Klaviyo says the default windows are 5 days for email opens and clicks (with different windows for SMS and push), and opens can count when that setting is enabled.

That shows which message a customer touched before buying. It does not show whether the message created the order. A customer who was always going to reorder, and clicked your reminder on the way to checkout, is credited to the reminder.

An illustrative worked example

The numbers below are invented to show the arithmetic. They are not from any store and not a benchmark.

Say 1,000 first-time customers bought in a month. You hold 100 of them out of the post-purchase flow at random (no reminders) and send the flow to the other 900.

MeasureResult
Flow group: ordered again within 90 days99 of 900 (11.0%)
Holdout group: ordered again within 90 days9 of 100 (9.0%)
Whole cohort (what Shopify’s cohort report shows)108 of 1,000 (10.8%)
Orders your email tool credits to its messages55

The tool’s 55 credited orders look like most of the flow group’s repeat buyers. The holdout comparison says something smaller: 2 percentage points on 900 customers is about 18 extra repeat customers. And there is a second warning inside that comparison. With only 100 customers held out, the random spread on a 9% result is roughly 3 percentage points (square root of 0.09 times 0.91 divided by 100), so a 2-point gap is smaller than normal noise and proves nothing yet. You need more customers in each group, or several months of cohorts.

None of this is a reason to turn flows off. It is a reason not to read the attributed number as the flow’s value, and to watch one clean number: the cohort’s second-order rate. If your tool lets you split a flow randomly, a holdout is the cheapest test. If not, compare cohorts before and after a change, and expect more noise.

Keep the tagging honest

Klaviyo’s help page on UTM tracking says UTM tagging on links needs at least a source and a medium parameter, and that switching on automatic tagging turns it on for new campaigns and flow messages but not for existing messages that have it disabled. So a flow built a year ago may be sending untagged links, and the visits it drives may not be credited to email in GA4. Open a few of your live flow emails and check the links.

GA4 will not agree with Shopify exactly; the usual reasons are in the GA4 guide under Keep reading below. Use Shopify as the count of orders and GA4 for the path that led to them.

When this works, and when it does not

It works when:

  • the product is used up, or has natural add-ons, so a second order is a reasonable thing to expect;
  • the first order arrives on time, the customer can see where it is, and returns are not a fight;
  • you ship enough first orders each month to read a cohort. With 50 first-time customers a month, one extra repeat customer moves the rate by 2 percentage points, so month-to-month swings are mostly noise;
  • you can find the second order in Shopify’s own data, whatever the email tool says.

It does not work, or not yet, when:

  • the product is a one-off. Lean on reviews, referrals and support instead;
  • the first-order experience is the problem. Late parcels, unclear sizing and slow replies cannot be fixed with a reminder;
  • your tracking is not trustworthy. If orders in your analytics and your store disagree and nobody can say why, fix that before you judge any flow;
  • the cohort is tiny, in which case use the map as a checklist and wait for volume before you test.

A checklist for this week

  1. Write down the real order-to-door time for your last ten orders, and your product’s natural cycle (or “none”).
  2. Place a test order and read every message that arrives, on a phone.
  3. Open the order status page from the confirmation, logged in and logged out, and check your templates still contain the link.
  4. Walk through a return request as a customer, including the sign-in step.
  5. Check your reorder reminder has a “has placed order since” profile filter and links to the exact product.
  6. Check the UTM tagging on your live flow emails.
  7. Open the customer cohort analysis report, find a cohort at least three months old, and note the share who ordered again.
  8. Pick one number to watch: the second-order rate for each month’s new customers.

Key takeaways

  • The first 90 days run on two tracks: your email and SMS tool owns the messages, and your site owns the order status page, the returns path, reviews and the route back to reorder.
  • Anchor timing to delivery and to how fast the product is used up. Every day number in this guide is illustrative.
  • Shopify’s order status page works without a login for 3 weeks from the confirmation email on the same browser (2 weeks on a different one), and customised templates can lose the link to it.
  • In Klaviyo, trigger filters on a Placed Order flow are checked only at entry; use a profile filter such as “has placed order since starting this flow” to stop reminders going to people who already reordered.
  • Shopify Flow’s Wait action is capped at 90 days per workflow, so a longer reorder cycle needs another route.
  • Judge a second order by Shopify’s customer cohort report, not by the revenue your email tool attributes to itself. A holdout is the cheapest honest test, and small groups produce noisy results.
  • Prism3 does not run email or SMS. The part we work on is the site and the measurement.

FAQs

What is a post-purchase flow on Shopify?

It is a set of automated messages that start when a customer places an order, built in an email or SMS platform such as Klaviyo (our guide to building the Klaviyo post-purchase flow covers the build itself). The trigger is normally the order event, and the messages cover confirmation, shipping, how to use the product, a review request and a reorder reminder. The site pages around them, such as the order status page and the returns path, are part of the same experience.

When should the first reorder email go out?

There is no universal day. Klaviyo’s guide recommends delays for review, cross-sell and upsell flows and not for thank-you flows, but it gives no standard number. Time it from delivery and from how long your product lasts: the reminder belongs in the days before the customer runs out. Our map uses a six-week product as an invented example only.

How do I know whether the flow caused the second orders?

You often cannot tell from the email tool alone, because its attribution credits the last message a customer touched. A random holdout group that receives no flow, compared with the group that does, is the cleanest check. Keep the groups large enough for the gap to mean something; a 2-point gap on 100 held-out customers is within normal noise.

Can Shopify Flow send my post-purchase emails?

Shopify Flow is built for automation inside Shopify, such as tagging customers or alerting your team. The Flow actions page I read on 31 October 2026 lists actions like sending an internal email and adding customer tags, but not a customer marketing email, so the messages themselves normally come from an email or SMS platform. Flow’s Wait action is capped at 90 days per workflow.

Does Prism3 run email or SMS?

No. Prism3 sells Shopify SEO, GEO and CRO and does not run ads, email or SMS. What we look at is the conversion side after the click on your store pages, and whether your tracking is trustworthy enough to prove a second order.

Keep reading

Want the conversion and tracking side checked?

A retention map covers what happens after the first order; it does not show where visitors leave before it. 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 the leak turns out to be on your pages or in your tracking, that is the work our Shopify CRO service covers.

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