Using Crisp conversation ratings to find customers about to churn
How Crisp collects 1 to 5 star conversation ratings, how to export them, the session:sync:rating webhook, and how to test whether low ratings predict churn.
When a customer rates a support conversation one star, they are telling you something your billing system will only learn weeks later. Crisp collects those ratings natively, and it can push each one to your systems the moment it arrives. This guide explains how Crisp ratings work, how to get them out, how to tie them to the right paying customer, and how to check whether low ratings actually come before cancellations in your business.
It sticks to Crisp’s own documentation: how to monitor user ratings and feedback, how to take advantage of customer feedback, getting started with Crisp Analytics, the Web Hooks reference, the REST API reference and how to use webhooks (all accessed November 2026). Some features depend on your Crisp plan; we note it where Crisp does.
How Crisp ratings work
Turning them on
Ratings are a workspace setting: Workspace Settings › Email Settings › Email Behavior › General Options, “Enable Ratings (in chatbox and transcript emails)” (monitoring ratings). The REST API exposes the same thing as a rating setting on the website.
When customers are asked
- Chat conversations: Crisp sends a rating email one hour after the chat ends.
- Email conversations: there is no separate rating email; the rating block can appear in the transcript email instead.
What is stored
Each rating is attached to a conversation (Crisp calls it a session) and has a score from 1 to 5 stars plus an optional comment. If a customer rates the same conversation again, the new rating replaces the old one rather than counting twice.
Two things follow for churn analysis. Ratings are per conversation, not per customer, so you will need to roll them up. And the one-hour delay means the customer rates with some distance from the chat, which is good: a rating given an hour later is less likely to be pure frustration of the moment.
Getting the ratings out
Crisp offers four routes. Pick the one that fits what you want to do.
| Route | What you get | Good for |
|---|---|---|
| Analytics | Overall Rating (average), Ratings Evolution (trend), and a Ratings report listing visitor, score, comment, assigned agent and a link to the conversation | Reading and spot checks |
| Analytics export | Report data, with conversation IDs for some reports, but not full conversation content | A quick spreadsheet |
| Contacts search | An advanced search that filters contacts by rating; the list can be exported or used as a campaign audience | Customer-level lists |
session:sync:rating webhook |
Each new rating as it is submitted | Real-time alerts and your own data store |
Crisp’s analytics article is clear that Analytics is not a full conversation export; for conversation content or metadata, it points to the REST API.
The rating webhook
The Web Hooks reference documents session:sync:rating, fired when “a user rating was just submitted for session”. Its data includes website_id, session_id, inbox_id and a rating object with stars and comment. Webhooks are sent as JSON over HTTP POST; Crisp treats any 2xx response as delivered.
Two practical notes from Crisp’s help center:
- The feedback article says customer feedback webhooks require the Essentials plan.
- Crisp’s articles disagree on where website hooks are configured: one says Website Settings › Advanced Configuration › Webhooks, the feedback article says Workspace Settings › Advanced Configuration. Look in both if you do not find it.
The payload identifies the conversation, not the customer. To know who rated, look up the conversation by its session_id with the REST API and read the contact attached to it.
Tying ratings to paying customers
Ratings live in Crisp; cancellations live in your billing system. To compare them you need one customer key.
- Use email as the key. Crisp contact profiles carry the customer’s email. If your chatbox runs inside your app, set the signed-in user’s email on the session so every conversation is linked to the right contact. Visitors who never gave an email cannot be matched.
- Store your billing ID on the contact. Crisp’s people data lets you save custom key/value data on a contact through the REST API (Update People Data merges keys; Save People Data replaces the whole object). A
customer_idfield avoids guessing later. - Review the doubtful matches by hand. A colleague writing for the account owner, a personal address for a work account, a shared inbox. For B2B accounts, decide whether any team member’s rating counts for the account.
- Roll up per customer. For each customer and period: number of rated conversations, lowest rating, average rating, and the comments.
Do low ratings predict churn in your business?
Do not assume they do. Test it on your own data:
- Build the customer list from billing, with start date, cancellation date and whether the cancellation was voluntary or caused by a failed payment. Leave involuntary churn out of this analysis; a support chat did not expire anyone’s card.
- Fix a window. Take ratings from a set period (say 90 days) and look at cancellations in the following period. Without fixed windows, long-time customers just have more ratings.
- Group customers: rated low (any 1 or 2), rated high only (4s and 5s), middle, contacted without rating, no contact.
- Compare the voluntary churn rate of each group in the next period, with the number of customers next to every rate.
- Read the comments of low-rated customers who later cancelled, and group them by theme.
We go through this method, and its traps (small samples, response bias, rating the agent versus the product), in more detail in do bad Intercom ratings predict churn?; it applies to Crisp ratings unchanged. Whatever you find, it is a correlation: a low rating can be a symptom of a customer already on the way out.
Acting on low ratings
If low-rated customers do churn more, use Crisp’s real-time signal:
- Route every 1 or 2 star rating to a person. The
session:sync:ratingwebhook can post to an internal channel with the comment and a link to the conversation. - Check billing before replying. A low rating right after a failed payment or an unexpected renewal is a billing problem; fix that first.
- Reply to the comment, not the score. Acknowledge what the customer said and what you will do.
- Use the Contacts rating filter to build a list of recent low-rated customers and review it weekly.
- Re-run the analysis each quarter with the same windows, to see whether the gap between groups shrinks.
Doing this with NoChurn
NoChurn’s Crisp connector is read-only. It reads conversations, satisfaction ratings, tags and dates, matches them to billing customers by email (a doubtful match is suggested for you to confirm, never merged on its own), and uses them in the 0–100 churn score and in the churn drivers analysis, which ranks the attributes most correlated with churn (correlation, not causation). Conversations can also become evidence in disputes, quoted as written. Answering customers, ratings settings and your workflows stay in Crisp; NoChurn never writes to it. See NoChurn + Crisp.