Customer satisfaction metrics show how customers felt about the help they got: survey scores such as CSAT, customer effort and Net Promoter Score, and signals in what customers say and do, such as frustration in conversations, repeat contacts, complaints and reviews. No single one is enough: ask after the outcome, read the conversations of customers who never answer, and compare everything by request type, because a late refund and a late parcel disappoint customers for different reasons.
This guide is for the head of customer service at a consumer brand handling order, delivery, return and refund work on WhatsApp, Instagram, email, chat and phone. It covers what each measure is good for, how to measure customer satisfaction with surveys on each channel, how to read it by request type and from conversations, and how to score AI conversations the same way as your team's. The formulas for CSAT, customer effort and repeat contact rate are in our guide to customer service metrics; this page is about choosing and reading them.
In short
- Survey each issue once, when the outcome is recorded, with the same question on every channel.
- Report every survey score with its coverage: ratings as a share of resolved issues, by channel, request type and outcome.
- Read satisfaction from conversations and behaviour too. Requests for a human agent, messages chasing an update, repeat contacts, complaints and payment disputes cover the customers who never answer.
- Score AI conversations with the same survey and signals, and report each path separately: AI only, AI then a human agent, human agent only.
Customer satisfaction metrics, and what each is good for
Most lists of customer satisfaction metrics mix three kinds of number: what customers tell you when asked, what they say and do without being asked, and business results such as churn and lifetime value. A support team can act on the first two. Speed measures such as first response time also turn up in these lists; they affect satisfaction but don't measure it.
| Measure | What it tells you | Use it for | Don't use it for |
|---|---|---|---|
| CSAT | How the customer felt about how one issue was handled | Comparing request types, channels and paths (AI or human) within your operation | Comparing with other brands; judging whether the answer was right |
| Customer effort | How hard it was to get the issue resolved | Processes with steps for the customer: returns, damaged items, address changes | Issues where the only friction is waiting |
| Net Promoter Score | How likely the customer is to recommend the brand | Brand health, and the difference support contacts make to it | Running a support team: product, price and delivery move it more |
| Sentiment in conversations | Frustration, anger and requests for a human agent, message by message | Covering every conversation, alerts, finding themes | A target: it rewards sounding cheerful |
| Repeat contact rate | Whether the fix held | The most honest failure signal for order work | Explaining why the fix failed |
| Complaint rate | Dissatisfaction serious enough to take further: to a manager, a grievance officer, a consumer helpline or a marketplace, or into a payment dispute | Severity, and which request types cause it | Everyday satisfaction; the numbers are small |
| Reviews and social posts | What customers say in public | Finding which request types go public | Measuring support: most reviews are about the product and delivery, and reviewers aren't typical customers |
CSAT is for comparing inside your operation. Gorgias's April 2026 research on its ecommerce merchants found that CSAT varied by only 0.2 points on a 5-point scale across 14 verticals at the same revenue level, while first response time varied 5.5 times. A score that flat says little about how you compare with other brands. It is useful for comparing your own request types, channels and months. Scales, scoring and what counts as a good score are covered in what is CSAT.
Customer effort points at the process. A customer who had to send photos twice, repeat an order number or move from chat to email reports high effort even when the outcome was fine. Our guide to the customer effort score covers the question and scale.
NPS belongs to the brand. It asks how likely the customer is to recommend you, on a 0 to 10 scale, and the answer depends on the product, price and delivery as much as on service. Send it after delivery or once a quarter, not after a ticket, and cut it by support history. If customers who had a refund contact score far below customers who had none, that gap is what support problems cost the brand. Our guides to the Net Promoter Score and NPS survey questions cover the scoring and the wording.
Behaviour covers the customers who don't answer. A repeat contact about the same order within seven days means the fix didn't hold, whatever the survey said; first contact resolution is the stricter version of the same test. Complaints can move while scores stand still: the American Customer Satisfaction Index reported in May 2026 that US customer complaints jumped 16% in the first quarter, while its national satisfaction score fell only 0.3% on a year earlier, to 76.7 out of 100. And a card payment dispute over a refund you said you'd sent is dissatisfaction you have already paid for. Responding to each complaint is covered in how to handle customer complaints; here the point is to count them per 1,000 orders, by request type.
How to measure customer satisfaction with surveys
A survey is still the only direct way to ask how an issue felt. Three choices decide whether its answers mean anything: what you ask, when you ask, and who answers.
What to ask
- One rating question about this issue, in plain words: "How satisfied are you with how we handled your return?" Name the request, not the agent.
- One yes-or-no question: "Is your problem solved?" It separates the outcome from the service, and a "no" is a reopened issue, not only a low score.
- One optional comment box. Nothing more for a support survey; a longer customer feedback form belongs after delivery, not after a ticket.
Keep the scale identical on every channel, including its direction and labels, or the channels can't be compared. Our list of customer service survey questions gives ready wording for each channel.
When to send it
Send the survey when the outcome is recorded: the refund submitted, the pickup booked, the replacement created. Not after the first reply, when nothing has happened yet, and not when a ticket closes automatically because the customer went quiet.
Survey the issue once. A customer who raised one damaged order on Instagram and then by email should get one survey, not two, which is only possible when the issue is kept whole across channels, as omnichannel customer service requires.
In Flowcall's AI Helpdesk, when the same customer writes on another channel while their issue is open, the issue stays on the same ticket, with the whole history visible, and the CSAT survey asks for a rating after the resolution, on WhatsApp, email or Live Chat. We built it that way because a rating can only describe the whole issue when one ticket holds the whole issue.
Refunds need one more step. The customer's real verdict comes when the money arrives, days after you submitted it. If refund scores are low, a one-tap question after the expected credit date shows whether the wait or the handling is the problem.
On each channel
Each of your customer service channels limits how you can ask, and each adds its own bias.
| Channel | How to ask | Watch for |
|---|---|---|
| In the conversation, right after the outcome. Reply buttons allow at most three options, so use a 3-point scale, or a list message (up to 10 options, one extra tap) for a 5-point one | Once 24 hours pass after the customer's last message, only approved templates can be sent | |
| Instagram and Messenger | In the DM thread, after the outcome | Complaints that start in public comments are never surveyed; count them separately |
| One-click ratings in the email that confirms the outcome | One issue split across several threads gets two surveys, or none | |
| Live chat | A rating in the widget when the chat ends, with an email fallback if the customer has left | Customers who close the tab never see it, so abandoned chats are never rated |
| Phone | A message after the call, triggered by the call's outcome | An IVR survey the agent transfers callers to lets agents choose who is surveyed |
WhatsApp matters most for many consumer brands, especially in India, where it is often the main support channel. For WhatsApp customer support, send the survey inside the 24-hour window, where it is a normal message. After the window closes it has to be a WhatsApp message template, and Meta's template guidelines count a feedback request as a utility template only if it names the specific order or conversation; a generic survey is treated as marketing.
Who answers: report coverage with every score
The customers who answer a survey aren't a random sample, and the bias can run either way. Intercom said in July 2026 that CSAT captures fewer than 10% of conversations on its platform and that answers cluster at the extremes.
So report every survey score with its coverage: ratings ÷ resolved issues, by channel, request type and outcome. Then compare coverage for approved and declined requests. If customers whose refund was declined answer half as often as those whose refund was approved, your refund CSAT flatters you. Where a group has fewer than about 30 ratings, read the conversations rather than the percentage.
Tie satisfaction to the request type
A blended CSAT mixes jobs that fail for different reasons. Order-status customers are unhappy when the delivery date slips; refund customers when the money doesn't arrive and nobody says why. Here is one brand's month by request type. The figures are illustrative.
| Request type | Resolved issues | Ratings | Coverage | CSAT | Repeat contact within 7 days |
|---|---|---|---|---|---|
| Order status | 4,000 | 520 | 13% | 91% | 6% |
| Returns and exchanges | 900 | 108 | 12% | 78% | 14% |
| Refunds | 700 | 63 | 9% | 57% | 22% |
| Damaged or wrong items | 400 | 68 | 17% | 66% | 18% |
| All requests | 6,000 | 759 | 13% | 84% | 10% |
The blended 84% looks healthy because order-status questions supply more than two-thirds of the ratings. Refunds score 57% with the lowest coverage and the highest repeat contact, so they are probably worse than the score says.
Split refunds by outcome and the picture sharpens:
| Refunds | Issues | Ratings | Coverage | Satisfied |
|---|---|---|---|---|
| Approved | 560 | 56 | 10% | 35 (63%) |
| Declined | 140 | 7 | 5% | 1 of 7 |
Customers with a declined refund answered half as often, and seven ratings are too few to read, so read those conversations instead. A declined refund will rarely score well however it is handled; judge it on whether the policy was explained clearly and the customer didn't come back angry.
Then read the unhappy approved refunds. In this example most are about the days between the refund being submitted and the money arriving, often with no reference to give the bank. That is a communication gap, not a slow agent, and the fix is to send the refund reference and the expected credit date with the confirmation. Resolution time stops when the refund is submitted, so only satisfaction and repeat contacts show this wait.
Use one list of request types for surveys, conversation signals and repeat contacts, for the AI's conversations as well as the team's: order status (the WISMO question), delivery problems, returns and exchanges, refunds, damaged or wrong items. Our guide to ecommerce customer service sets out what "done" means for each.
Finding the reason behind a low score, as with the refunds above, is what Flowcall's conversation insights are for. They show which issues are growing and why, grouped into operations, delivery, product, policy and resolution problems, with the conversations behind each trend. When a theme like the missing refund reference appears, you can acknowledge it and watch it over time to see whether the fix worked.
Read satisfaction from conversations, not only surveys
Most customers never answer a survey, but every one of them leaves a conversation. These signals can be counted in all of them, by request type:
| Signal | What it suggests | How to count it |
|---|---|---|
| Requests for a human agent | The answer or the process isn't working for the customer | Conversations where the customer asks for an agent, a manager or "a real person"; count second and third requests separately |
| Chasers | A promise with no update | Messages asking about an open issue ("any update?", "where is my refund?") ÷ open issues of that type |
| Repeated details | Effort: being asked for something already given | Conversations where the order number, address or photos were requested twice |
| Threats to escalate | A likely complaint, public post or payment dispute | Messages that mention a review, a social post, a consumer forum, a chargeback or legal action |
| Frustration and anger | How the customer feels, message by message | Mood labels from AI, checked against a weekly sample |
| Silence after an answer | Nothing on its own: solved, or gave up | A repeat contact about the same order, on any channel, within 7 days |
Mood labels are judgements, whether a model or a reviewer makes them. Use them to cover every conversation, raise alerts and find themes, and read a sample each week to check them. Don't set a sentiment target: a customer who is polite about a refund two weeks late is still unhappy, and agents can learn to sound cheerful without solving anything. When a threat to escalate appears, the conversation needs an owner quickly; escalation management covers who that should be.
Flowcall's AI Auto QA reads the conversations nobody rates. Every incoming message is checked for frustration, aggression, threats to escalate and requests for a human agent, so risky conversations are flagged and routed before they reach social media or leadership. Customers at risk of escalating can skip the queue to the right team. Its audits also flag agents who ask again for details the customer already gave: the repeated-details signal in the table above.
Score AI conversations the same way
Once an AI agent for customer service resolves real volume, measure its satisfaction with your team's survey and signals, or the two can't be compared.
- The same trigger. Survey when the outcome is recorded, whoever recorded it, with the same question and scale. Don't survey the AI's conversations when its last message is sent, or only the conversations it resolved.
- Report by path. Every issue took one of three paths: AI only, AI then a human agent, or human agent only. Report CSAT, coverage and repeat contact for each path and request type. Credit an AI-then-agent rating to the path, not to whoever sent the last message: a low score there often reflects the handoff (the customer repeating themselves, or waiting for an agent), not the agent's work.
- Count the conversations nobody rated. A customer who gives up on the AI and emails the next day never sees a survey. Requests for a human agent, repeated questions, loops and repeat contacts on any channel are the only way to see them.
- Don't read satisfaction as correctness. A customer given a refund your policy doesn't allow will rate the conversation 5. Whether the AI followed the policy shows only when the conversation is reviewed, which is the job of AI quality assurance; a customer service QA scorecard is the manual version.
Compare the paths within one request type. The AI usually starts with the simpler jobs, so its overall CSAT will look better than the team's.
Flowcall shows CSAT by AI versus human, and by channel, team and agent, so the score of Flowcall's AI Agent doesn't disappear into your team's. For rule 4, Flowcall's audits can cover every conversation, not only the low-rated ones, because a refund your policy doesn't allow can still be rated 5. For the AI, they look for wrong, incomplete or made-up answers, loops, missed or late handoffs, and promises or actions it wasn't allowed to make, and each finding quotes the conversation.
What to report each week
Put satisfaction on the same customer service dashboard as your other support metrics, with request types as rows and these columns:
- CSAT with its coverage, split by outcome where requests can be declined;
- repeat contact within 7 days;
- requests for a human agent per 100 conversations, and chasers per open issue;
- threats to escalate, complaints and payment disputes, per 1,000 orders;
- the same for each path: AI only, AI then human agent, human agent only.
Once a quarter, add NPS cut by support history. Then choose two or three of these as customer service KPIs with targets. Refund CSAT with its coverage, and refund repeat contact, are good places to start.
How Flowcall measures customer satisfaction
Flowcall combines an AI Agent with an AI Helpdesk, so survey ratings, conversation signals and quality findings come from the same conversations, AI and human alike. Flowcall's analytics dashboards put CSAT next to first response time, resolution and agent performance. AI Auto QA can also run on top of the helpdesk you already use, such as Freshdesk, Salesforce or Sprinklr, through a connection built for your account, and each conversation's mood flag, priority and summary can be written to the case in that CRM or helpdesk.
To see mood flags, CSAT and quality findings on your own conversations, book a demo.
Frequently Asked Questions
What are the top 5 ways to measure customer satisfaction?
A short survey after each resolved issue (CSAT, sometimes with customer effort); a relationship survey such as NPS after delivery or each quarter; conversation signals such as frustration and requests for a human agent; behaviour such as repeat contacts, complaints and payment disputes; and public reviews and social posts. Surveys show how the customers who answer felt; the other four cover everyone else.
What do NPS, CSAT and CES measure?
CSAT measures how satisfied a customer was with one interaction or issue. CES, the customer effort score, measures how easy it was to get the issue resolved. NPS measures how likely the customer is to recommend the brand, on a 0 to 10 scale. CSAT and CES belong to the support team; NPS belongs to the brand.
What is the difference between CSAT and NPS?
CSAT asks about one issue and changes when that issue goes well or badly. NPS asks about the whole relationship and moves with the product, price and delivery as well as service. A support team can raise CSAT this month; NPS shows over several quarters whether support problems are costing the brand, when you compare customers with and without support contacts. Our guide to NPS vs CSAT compares them in full.
What is the best KPI for measuring customer satisfaction?
For a support team, CSAT by request type reported with its coverage, paired with the repeat contact rate for the same request type. The first shows how customers felt; the second shows whether the fix held. Either one alone can mislead.
How can you measure customer satisfaction without surveys?
Count what customers do and say: repeat contacts about the same order, requests for a human agent, messages chasing an open issue, threats to escalate, complaints, payment disputes and reviews. AI mood detection can label frustration in every conversation, but check its labels by reading a sample.
Why do so few customers answer satisfaction surveys?
Surveys go unanswered when they arrive late, on a different channel from the conversation, after the customer has moved on, or when answering takes more than a tap. Send the survey in the same conversation when the outcome is recorded, ask one question, and track coverage by channel to see where it fails.




