Using HubSpot NPS and CSAT surveys to predict churn
How to analyse HubSpot NPS and CSAT responses against real cancellations: properties to use, filters, exports, sample sizes and the traps to avoid.
Most teams that run NPS in HubSpot look at one number: the score, going up or down. That number says something about the customer base as a whole. It says very little about which customers are about to cancel. To use surveys to predict churn, you have to work at the level of the customer and compare their answers with what they did next.
This guide covers that analysis: which HubSpot properties hold the answers, how to filter and export responses, how to join them with cancellations, and how to read the result without fooling yourself. It assumes surveys are already running; for setup, see our guide on predicting churn from HubSpot tickets. HubSpot details come from its knowledge base: loyalty (NPS) surveys, survey response properties, analyzing survey responses, tagging survey responses, the customer feedback FAQ and segments (all accessed November 2026).
What HubSpot stores, and where
The analysis depends on knowing which fields you can use.
On each response (feedback submission). HubSpot’s survey response properties include the rating and the comment. For NPS the rating runs from 0 to 10; for CSAT from 0 to 2 (Unhappy, Neutral, Happy). Responses are associated with the contact and, for ticket-based surveys, with the ticket.
On the contact. HubSpot automatically sets Last NPS survey rating, Last NPS survey date and Last NPS survey comment (Service Hub Professional and Enterprise). These are convenient for segments, but they only hold the latest answer. A customer who went from 9 to 3 to 8 shows as 8.
Sentiment. HubSpot labels responses by rating. Per the analysis guide, a response counts as a detractor for NPS at 0–6, for CSAT at 0, and for CES at 1–3. NPS promoters are 9–10 and passives 7–8.
For prediction, you want the history of responses, not only the last one. That means working with feedback submissions, not just the contact properties.
Step 1: export the responses
On a survey’s Responses tab, HubSpot lets you set a date range, filter by company, show only responses with comments, filter by contact properties, and view detractors, passives or promoters. Exports are CSV, and if you filter before exporting, the file contains only matching responses. You can choose to export the current view’s columns or all available survey response data (analysis guide).
Export all responses for at least the last 12 months, with: contact email, company, survey name, rating, comment and submission date.
Step 2: add what happened next
From your billing system, export for the same customers: subscription start, cancellation date (if any), cancellation reason (if captured), plan and MRR. Join on email, or better, on a customer ID you also store in HubSpot.
Then, for each response, compute one outcome: did this customer cancel within N days of answering? Pick N to match your billing cycle: 90 days is a reasonable start for monthly plans; for annual plans, look at the next renewal instead.
Step 3: compare groups
Build a small table like this from your own data:
| Group at time of answer | Responses | Cancelled within 90 days | Share |
|---|---|---|---|
| Detractors (0–6) | your count | your count | your % |
| Passives (7–8) | |||
| Promoters (9–10) | |||
| Did not answer |
The last row matters. Customers who never answer surveys are often a large group, and their churn can be higher or lower than any of the others. If you leave them out, you will overestimate how much the survey tells you about your whole base.
Then do the same for CSAT on tickets: customers with at least one Unhappy rating in a quarter versus those with none.
Step 4: read the comments of detractors who left
Numbers tell you whether a signal exists. Comments tell you what it is. Read every comment from detractors who went on to cancel, and every comment from detractors who stayed. HubSpot lets you tag survey responses and use tags in filters, views, segments and reports, so tag themes as you read: price, missing feature, reliability, support, onboarding.
Often the pattern is not “detractors churn” but “detractors who mention price churn, detractors who mention a bug stay if it gets fixed”. That is far more useful.
The traps
Small samples. HubSpot’s feedback FAQ says you could see anywhere from a 5 to 15% response rate, depending on your industry and how often you contact customers. On a base of a few hundred customers, that is a handful of detractors per quarter. Report counts next to every percentage, and do not draw conclusions from a dozen responses.
Response bias. People who answer surveys are not a random sample. The most engaged and the most annoyed are over-represented.
Timing. HubSpot calculates the main NPS score based on the final date of the selected timeframe, and its trend view as a running total (analysis guide). Neither is a per-customer measure. For prediction, always use the individual response with its date.
Correlation is not cause. A low score before cancellation does not mean the score caused it. Both may come from the same problem, such as a failed onboarding. Use the signal to decide who to talk to, not to explain churn. Our guide on finding what predicts churn goes into this.
Survey fatigue. Asking too often lowers response rates and annoys customers. HubSpot supports a reminder email a set number of days after the original (loyalty surveys); one reminder is plenty.
Step 5: act on what you found
If detractors churn noticeably more in your data, turn that into a routine:
- Create a segment of contacts with Last NPS survey rating of 6 or less and Last NPS survey date in the last 30 days.
- Each week, someone reads the comments and replies personally to every detractor who left one. Not a template, not a discount: a reply to what they said.
- For customers whose comment points to a fixable problem, open a ticket and track it to resolution.
- Re-run the analysis every quarter. If the gap between groups disappears, either your follow-up works or the signal was noise; the counts will tell you which.
If the gap is small or absent, that is a result too. Do not keep a weekly ritual around a number that does not predict anything for your customers.
What surveys cannot tell you
Many customers who cancel never answer a survey and never open a ticket. Their signals are elsewhere: falling usage, a failed payment, a removed card, a downgrade. Surveys are one input among several, and usually not the strongest.
Doing this with NoChurn
NoChurn’s HubSpot connector is read-only: it reads tickets and conversations and never writes to HubSpot. Conversations are matched to your customers by email (doubtful matches suggested, never merged automatically), and you can also send survey results and other attributes to NoChurn as custom data through the API. NoChurn combines them with billing data in a churn score from 0 to 100 and a churn drivers view that ranks attributes by their correlation with churn, shown as correlation, not causation. Surveys, segments and follow-ups stay in HubSpot. See NoChurn + HubSpot.