Collecting satisfaction scores inside a WhatsApp chat
A rating question costs nothing to ask and catches the unhappy customer before a public review does.
A satisfaction score is a rating a customer gives you inside the chat, captured by an ordinary question step with rating recording switched on, and reported under Analytics → Customer satisfaction. It is one setting on a step you already know how to build.
Its real value is not the number. It is that a low rating gives you a private warning, in a channel where you can still fix things, before the customer decides to leave a public review instead.
How to build it
- Add an Ask Customer a Question step where you want the rating.
- Set the reply type to list. Five options do not fit in buttons, which cap at three.
- Switch on record rating so the answer is scored rather than just stored.
- Label each option with its number, so the score can be read from the label: 5 - Excellent, 4 - Good, 3 - Okay, 2 - Poor, 1 - Bad.
- Wire the high scores to a thank-you and the low scores to a person.
The labels carry the score. The number in each option's text is how the rating is read, so "Excellent" without its number does not score. Keep the digit at the front.
Route by answer, not just record it
A rating question that does something
Ask for the review only from people who just told you they are happy.
The point of the whole flow.
Asking every customer for a public review is how you collect bad ones. Asking only the customers who just rated you 4 or 5 is the same effort with a very different result.
Where to ask
| Moment | Good for | Watch out for |
|---|---|---|
| After a conversation is resolved | Support quality | Fires per conversation, so cap the frequency |
| A day after delivery | Product and delivery satisfaction | Needs a template — the window will have closed |
| After a return is processed | Recovery quality | Low volume, high signal |
The middle row has a cost consequence worth naming. A rating asked a day after delivery lands on a cold chat, so it needs an approved template and is charged. A rating asked at the end of a live conversation is free text inside an open window and costs nothing, per Meta's pricing rules. If budget matters, ask at the end of conversations.
Do not ask too often
A rating request is still a message, and it counts against the patience budget described in how many automations a store should run. A customer who contacts you three times in a week should not be surveyed three times.
Two guards: a Pause Before Repeating step so the same contact is not asked again within, say, 30 days, and restraint about which conversations qualify. Surveying a one-line "thanks" exchange produces noise.
Reading the results honestly
Three cautions:
- Response rates are low and skewed. Very happy and very annoyed customers answer; the middle does not. Treat the average as a trend line, not a measurement.
- Watch the direction, not the number. Whether you sit at 4.2 or 4.5 matters far less than whether it moved this month.
- The low scores are the product. The number is for a dashboard; the individual 1s and 2s are what you can actually act on.
What it will not do
A rating captured here stays here — it does not post to your public reviews or sync to a reviews app. If you want public reviews, the flow above should send happy customers a link to wherever you collect them, and let them choose.
And it cannot chase a non-response. There is no per-contact scheduled follow-up, so a customer who ignores the question is simply not surveyed. Combining a Wait Before Next Step with a Has the Customer Replied? branch can nudge once inside the same window, which is usually enough — the pattern is described in review requests after delivery.
Choosing the scale
A 1–5 list is the default because it is familiar and the labels carry the score. Two alternatives are worth knowing:
| Scale | Reply type | Best for | Trade-off |
|---|---|---|---|
| 1–5 | List | General satisfaction, trend tracking | Five options is a scroll |
| Three faces or words | Buttons | Highest response rate | Less granular |
| 👍 / 👎 | Buttons | Quick post-resolution check | No middle ground |
The three-option version usually gets more replies, because buttons are one tap and a list is a tap plus a scroll plus a tap. If your goal is catching unhappy customers rather than producing a precise average, three options does the job better.
Whichever you choose, keep the number at the front of each label. The score is read from the option text, so "Excellent" without its digit does not score.
Response rates, honestly
They are low, and skewed. Very happy and very annoyed customers answer; the middle does not. Three implications worth accepting up front:
- The average is a trend line, not a measurement. Whether you sit at 4.2 or 4.5 matters far less than whether it moved this month.
- Do not benchmark it against anyone else's number. Different scales, different timings and different audiences make cross-store comparison meaningless.
- The individual low scores are the product. The dashboard number is for you; the 1s and 2s are what you can actually act on.
Closing the loop
A rating you collect and never act on is worse than not asking, because you have invited a complaint and then ignored it. A workable weekly routine:
- Read every 1 and 2 individually. There will not be many, and each one is a customer telling you privately what they were about to say publicly.
- Look for the pattern rather than the incident. Three low scores mentioning delivery time is a courier problem, not three unlucky customers.
- Check the handover worked. A low score that never reached a person is the failure this flow exists to prevent — handing a chat from bot to human covers wiring it properly.
Where the cost falls
Asking at the end of a live conversation is free, because the customer messaged you and the window is open. Asking a day after delivery needs an approved template and is charged when it lands outside a window, per Meta's pricing rules.
Both are worth doing, but they answer different questions — the first measures your support, the second measures the product and the delivery. If budget is tight, start with the free one, since support quality is the thing you can change fastest.
Two ratings that mean different things
It is worth separating the two questions people conflate, because the same number answers neither well if you mix them.
- Support satisfaction — asked at the end of a conversation, measures your team and your bot. Fast to act on, and free to collect because the window is open.
- Order satisfaction — asked after delivery, measures the product, the packaging and the courier. Needs a template, and points at problems outside the inbox.
Run both if you can, but keep them in separate flows and read them separately. A falling support score is a staffing or flow problem; a falling order score is a supplier or courier problem, and no amount of better replying fixes it.
What to do with the number weekly
- Read every 1 and 2 individually — there will not be many.
- Look for repeated words across them. Three mentions of delivery time is a pattern, not bad luck.
- Check each low score actually reached a person.
- Note the trend direction, not the absolute value.
If nothing changes as a result, stop asking. A survey you ignore is a message you spent goodwill on for nothing, and it counts against the same frequency budget as everything else you send.
Where the number belongs
Somewhere your team sees it weekly, not in a dashboard nobody opens. A satisfaction score that only exists in analytics changes nothing; the same number mentioned in a Monday catch-up changes behaviour.
And keep it away from individual performance reviews. Ratings are driven far more by whether the parcel arrived intact than by who typed the reply, so scoring people on them punishes whoever handles the hardest conversations — which is usually your best agent.
When to stop asking
If three months of scores have produced no change to how you work, the survey has become a habit rather than a tool. Either commit to acting on the low scores or switch it off — the message costs a small amount of goodwill every time, and a survey nobody reads spends that for nothing. Turning it off and reintroducing it later when you have the appetite to act is a perfectly reasonable decision.
Review that decision once a quarter rather than leaving it running by default. A survey is a small, permanent tax on every conversation it touches, so it should have to justify itself periodically.
Frequently asked questions
How do I collect a satisfaction score on WhatsApp?
Add an Ask Customer a Question step with the list reply type, switch on rating recording, and label each option with its number — for example '5 - Excellent' down to '1 - Bad'. Scores appear under Analytics → Customer satisfaction.
Why do my rating options need numbers in the label?
Because the score is read from the option's text. 'Excellent' without a digit does not score, so keep the number at the front.
Does asking for a rating cost anything?
Not at the end of a live conversation — that is free text inside an open window. A rating asked a day after delivery lands on a cold chat, so it needs an approved template and is charged.
Should I ask every customer for a public review?
No — that is how you collect bad ones. Ask for a rating first, and invite a public review only from the customers who just rated you 4 or 5.