NPS & CSAT
NPS for Shopify Stores: How to Measure It Post-Purchase
8 min read
Net Promoter Score is one of those metrics that sounds simple and gets butchered in practice. People slap a 0-10 question on a page, count the average, and call it a day. That is not NPS, and it will not tell you much about your store.
This guide covers how to measure Shopify NPS the right way: what the score actually means, why the post-purchase window is the best place to ask, where the survey should live, and how to turn a low score into something you can act on the same day.
What NPS actually measures
NPS comes from one question: "How likely are you to recommend us to a friend or colleague?" Customers answer on a 0-10 scale. You then bucket them:
- Promoters (9-10): happy, loyal, likely to refer.
- Passives (7-8): satisfied but unenthusiastic. They will leave for a better offer.
- Detractors (0-6): unhappy. They may churn, leave bad reviews, or warn others off.
The score is a percentage, not an average. You calculate it like this:
NPS = % Promoters − % Detractors
Passives count toward your total response volume but are otherwise ignored in the math. The result lands somewhere between -100 and +100. If 60% of respondents are promoters and 20% are detractors, your NPS is 40. The full walkthrough with worked examples lives in How to Calculate Your Net Promoter Score, so I will not relitigate the arithmetic here.
One thing worth fixing early: a 7 is not a good score. In NPS, a 7 is a passive, which means lukewarm. Operators new to the metric often celebrate "mostly 7s and 8s" when that pattern actually signals a store full of people who will not come back without a reason.
Why post-purchase is the right moment
NPS measures sentiment, and sentiment is freshest right after someone buys. The customer just made a decision, handed over money, and formed a first impression of your checkout, your pricing, and your brand. Ask then and you get an honest read.
Wait two weeks and email them instead, and you are fighting three problems:
- Low response rates. Post-purchase email surveys routinely sit in the low single digits. On-site surveys at the moment of purchase clear that easily.
- Memory decay. By the time the email lands, they have forgotten the specifics. You get vague answers.
- Selection bias. Email surveys over-sample your most engaged customers and your angriest ones, so the middle disappears.
Asking in the post-purchase flow, on a page the customer is already looking at, fixes all three. If you want the broader case for surveying at this moment, the complete post-purchase survey guide is the pillar to start with.
Where to place the NPS survey on Shopify
You have three surfaces with OrderSurvey, and the right one depends on what you are trying to learn.
| Surface | When it fires | Best for |
|---|---|---|
| Thank-you page | Immediately after checkout | Checkout experience, intent, first reaction |
| Order status page | When the customer returns to track the order | Overall satisfaction, post-delivery sentiment |
| Shopify POS | After an in-store sale | Retail and staff experience |
For NPS specifically, the order status page is often the strongest spot. The thank-you page captures a reaction to the buying experience, which is useful, but "would you recommend us" is a question about the whole relationship. Customers tend to revisit the order status page once or twice while they wait for shipping, so you reach them when they have actually started living with the decision.
That said, there is no single correct answer, and it depends on whether you want a hot first-impression read or a more settled one. I broke down the trade-off in detail in Thank-You Page vs Order Status Page.
If you sell in person too, POS is its own channel. Note one constraint: POS surveys target by store location only, not by order rules like total or product, because the POS extension only exposes the order id. Plan your in-store NPS around location, not cart contents.
Branch the follow-up by score
A bare 0-10 number is thin. The value in NPS is the why, and the why is different for a 10 than for a 3. This is where conditional branching earns its keep.
Set up one NPS question, then route the follow-up based on the answer:
- Detractors (0-6): "What went wrong? What would have made this a better experience?" Use a long-text field. These answers are gold and usually specific.
- Passives (7-8): "What is one thing we could do better?" Keep it short. You are looking for the gap between fine and great.
- Promoters (9-10): "What did you love most?" A single-select or short text works. This doubles as testimonial source material and, for some stores, a natural spot to ask for a review.
OrderSurvey supports this branching natively, so the customer who scores a 3 never sees the promoter question and vice versa. Multi-question surveys paginate, so a detractor answers the score, then sees one targeted follow-up, and is done. Keep it to two screens. The more fields you stack, the more people abandon halfway.
For stores that want to go deeper on the detractor path specifically, including win-back sequencing, Turning Detractors Into Repeat Customers is the follow-up read.
Turn low scores into alerts, not spreadsheet rows
Here is the failure mode I see most: a store collects NPS for six months, exports it once, looks at a sad number, and changes nothing. The data sat in a tab. Nobody acted.
The fix is to make low scores interrupt your day instead of waiting in a report. OrderSurvey can fire a low-score alert to a Slack webhook when an NPS response comes in at or below a threshold you set. So the moment someone drops a 2 and writes "the box arrived crushed and support never replied," that lands in your team channel while the customer is still warm enough to recover.
A workable threshold setup:
- Set the alert trigger at 6 or below (every detractor).
- Route it to a channel a human watches, like
#cx-alerts. - Make recovery the rule: reply within an hour, fix the specific thing, and log the cause.
Detractor recovery is not just damage control. A customer whose problem gets solved fast often ends up more loyal than one who never had a problem. The alert is what makes that speed possible.
For the slower, structural work, export all responses to CSV and look for patterns: the SKU that generates detractors, the shipping country with low scores, the price band where passives cluster. One-off recovery handles individuals. The CSV handles your roadmap. Building that habit into a repeatable system is the subject of From Survey Data to Action.
Targeting: ask the right customers
You do not have to show your NPS survey to everyone. OrderSurvey lets you target by order total, item quantity, specific products or variants, customer tags, shipping country, and currency.
A few patterns that work:
- First-time vs returning. Tag-based targeting lets you run separate NPS surveys for new and repeat buyers. Their answers mean different things, and mixing them muddies the score.
- High-value orders. Survey orders above a threshold separately if those customers matter more to retention.
- Product lines. If you launched something new, target just those variants to get a clean read on it.
You can run multiple surveys at once with priority rules and a default fallback, plus optional start and end dates if you only want to measure during a launch window. If segmentation is where you want to spend time, Segmenting Surveys by Order Value, Product, and Customer Tag goes further.
A note on setup and permissions
OrderSurvey is built on Shopify's native checkout, customer-account, and POS UI extensions. No code, and it does not request broad data-access scopes from your store. For an NPS program, that matters: you are asking customers to be honest about their experience, and it helps that the tool collecting that feedback is not also vacuuming up data it does not need.
Putting it together
A solid Shopify NPS setup is not complicated, but every piece matters:
- One clean 0-10 question, scored as % promoters minus % detractors.
- Placed on the order status page for an overall-satisfaction read (test against the thank-you page for your store).
- Branched follow-ups so each score band gets a relevant question.
- Low-score alerts to Slack so detractors get a fast human response.
- CSV exports and segment-level targeting to find structural fixes.
Start with the score, wire up the alert, and watch what your detractors actually write. That is where the next improvement to your store is usually hiding.
If you want benchmarks to judge your number against once it is running, What's a Good NPS for Ecommerce breaks it down by category. Or you can install OrderSurvey and have an NPS survey live on your order status page in a few minutes.
Run your first post-purchase survey free
OrderSurvey adds NPS, attribution, and CSAT surveys to your Shopify thank-you page, order status page, and POS. No code, and no extra data scopes.
Install OrderSurvey