CSAT is off by default. Enable it per channel from Settings → CSAT.
How it works
- After a session is marked resolved, OpenCX waits the delay you chose and sends the survey on the same channel the customer used.
- The customer rates 1–5 (😡 😞 😐 🙂 😍) and can optionally leave a comment.
- The score lands back on the session, in your reports, on the webhook stream, and as a workflow trigger.
Enable CSAT
Open Settings → CSAT
Head to Settings → CSAT in your OpenCX dashboard.
Turn on auto-send
Switch on Auto-send CSAT after session closes and pick a delay: Now, 5m, 15m, or 1h. The survey fires that long after the session is marked resolved.
Pick your channels
Under Channel Configuration, enable the channels you want surveys to run on — Web Chat, Email, Phone, WhatsApp, SMS, Slack, API, or Web Voice. Each channel toggles independently.
The rating scale
| Score | Emoji | Label |
|---|---|---|
| 1 | 😡 | Terrible |
| 2 | 😞 | Poor |
| 3 | 😐 | Okay |
| 4 | 🙂 | Good |
| 5 | 😍 | Excellent |
Supported channels
| Channel | Delivery |
|---|---|
| Web Chat | In-widget rating card |
| Branded email with clickable emoji ratings | |
| SMS | Short text with a rating link |
| WhatsApp message with a rating link | |
| Phone | SMS follow-up with a rating link |
| Web Voice | Email follow-up with a rating link |
| Slack | Thread reply with a rating link |
| API | Programmatic — trigger via API and collect the submission over webhook |
Where responses land
- Inbox. Open the session in Inbox — the timeline shows a CSAT requested event and, once submitted, a CSAT submitted event with the selected emoji and comment.
- Reports. Filter and export scored sessions from Reports → Data Export using the CSAT Score and CSAT Comment columns.
- Webhooks. Subscribe to
csat.requestedandcsat.score_submittedto pipe scores into your data warehouse or an alerting channel — see the CSAT API reference.
Trigger CSAT from a workflow
When auto-send doesn’t fit — for example you only want surveys on sessions with positive sentiment, or you want branching logic on low scores — drive CSAT from the workflow builder instead.- Send CSAT Request action — send the survey on demand for a specific session or conversation.
- Generate CSAT Link action — return the rating URL without sending anything, so you can paste it into a custom outbound message.
- Get CSAT Score action — branch on a submitted score. If score < 3, notify a supervisor and reopen the session.
- CSAT Score Submit trigger — fires every time a customer submits a rating, with the score and comment in the payload.
Good To Know
One survey per conversation
One survey per conversation
OpenCX stores a single CSAT per session. If the survey is resent, the customer’s latest rating replaces the earlier one so your reports stay clean.
The rating is tied to the contact
The rating is tied to the contact
Every submission is linked to the session’s contact, so scores roll up against the right person in Contacts and in CSAT-by-agent reports.
Custom message
Custom message
Add a custom message on Settings → CSAT to override the default survey prompt. It replaces the default intro line on every enabled channel.
Instagram and Messenger
Instagram and Messenger
Not supported yet — the survey won’t send on Instagram or Messenger conversations even if other channels are enabled. For social conversations that bridge into the Web Chat widget, enable Web Chat as the fallback.
Related Documentation
Increase Automation
Pair low CSAT with handoff reasons to prioritize AI training.
Guaranteed Delivery
Make sure the survey actually reaches the customer.
CSAT API Reference
List, filter, and read scores programmatically.
Contacts
See every rating a contact has left, not just the latest.