Survey types
PolyAI supports two types of CSAT surveys:- Voice CSAT - In-call surveys where the agent asks customers to rate their experience before ending the conversation
- SMS CSAT - Post-call surveys sent via text message after the conversation ends
How voice CSAT works
- Customer completes conversation - The agent finishes helping the customer
- Lead-in message - Agent introduces the survey (e.g., “Before you go, I’d like to ask you a quick question”)
- Survey question - Agent asks the rating question (e.g., “On a scale of 1 to 5, how satisfied were you with this call?”)
- Customer responds - Customer provides a rating (typically 1-5)
- Data collection - Rating is stored and appears in your dashboards
How SMS CSAT works
- Call completes - The conversation with your agent ends
- Delay period - System waits a configured number of minutes (minimum 6 minutes for Twilio)
- SMS sent - Customer receives a text message with the survey question
- Customer responds - Customer replies with a rating (1-5)
- Data collection - Response is linked to the original call and appears in your analytics
Configuration
Voice CSAT configuration
Voice CSAT surveys are triggered programmatically in your end function. The survey messages (lead-in and question) are configured through your agent’s conversation flow.Survey message best practices
Message to introduce the survey. Keep it brief and natural.Example: “Before you go, I’d like to ask you a quick question about your experience today.”
The actual rating question. Be clear about the scale.Example: “On a scale of 1 to 5, where 1 is very dissatisfied and 5 is very satisfied, how would you rate this call?”
- Keep it short - Customers are more likely to respond to brief surveys
- Be clear about the scale - Explicitly state what 1 and 5 mean
- Natural language - Write messages that sound conversational, not robotic
- Test thoroughly - Try different phrasings in sandbox before deploying
SMS CSAT configuration
SMS CSAT surveys are configured through the Advanced Configuration JSON in your project settings.Basic SMS setup
Add thecsat_sms configuration to your Advanced Configuration JSON:
Configuration options
Enable or disable SMS CSAT surveys globally.
The SMS message containing your survey question. Must clearly explain the 1-5 scale and include opt-out instructions.Example: “Thanks for calling. How was your experience with the agent who assisted you today? Reply 1-5 (1=poor, 5=excellent). Reply STOP to opt out.”
Confirmation message sent after the customer responds.Example: “Thank you for your feedback!”
How many hours to wait for customer responses before closing the survey window.Default: 12 hours
Call type settings
Configure SMS surveys separately for different call outcomes:Calls that were fully handled by the AI agent without transferring to a human.
enabled(boolean) - Enable surveys for contained callspercentage(number 0-100) - Percentage of contained calls that receive surveysweekly_cap(number) - Maximum SMS messages to send per week for this call typedelay_minutes(number) - Minutes to wait after call ends before sending SMS (minimum 6 for Twilio)
Calls where the AI agent transferred to a human agent or call center.Same configuration options as
contained_calls.Calls that were routed directly to the call center without AI agent interaction.Same configuration options as
contained_calls.Sampling and volume control
Use thepercentage and weekly_cap settings to control survey volume:
- Percentage - Survey a sample of calls rather than 100% to reduce SMS costs and customer survey fatigue
- Weekly cap - Set a maximum number of SMS messages per week to control costs and comply with messaging limits
Implementing CSAT in your end function
To trigger the CSAT survey, add this code to your end function:trigger_csat_survey() method will:
- Play the lead-in message
- Ask the survey question
- Collect the customer’s rating
- Store the result in analytics
Viewing CSAT data
Agent Studio dashboards
CSAT scores appear in your analytics dashboards within Agent Studio:- Navigate to Analytics → Dashboards
- Select the CSAT dashboard
- View metrics including:
- Average CSAT score
- Score distribution (1-5)
- CSAT trends over time
- Response rate
- CSAT correlation with containment and resolution rates
Conversation-level data
Individual CSAT scores are also visible in conversation records:- Go to Analytics → Conversations
- Filter the conversations table to show only calls with CSAT responses
- Select a conversation
- View CSAT metrics in the conversation details including:
PLATFORM_CSAT_CALL_TYPE- Type of call (contained/uncontained/call_center)PLATFORM_CSAT_RAW_RESP- Raw customer response (1-5 score)PLATFORM_CSAT_RESPONSE_RECV- Whether a response was received (True/False)PLATFORM_CSAT_SCORE- Processed CSAT score
Conversations API
CSAT scores are included as structured fields in Conversations API responses. You can export this data for:- Integration with your existing analytics or reporting tools
- Building custom dashboards
- Ingesting into client systems
Smart Analyst
You can query CSAT data using Smart Analyst for custom analysis and reporting. Smart Analyst provides access to all CSAT metrics and can generate custom reports.Tracked metrics
The following metrics are automatically tracked for CSAT surveys:Voice CSAT metrics
CSAT_OFFERED- Whether the survey was offered (boolean)CSAT_ACCEPTED- Whether the customer accepted the survey (boolean)CSAT_DENIED- Whether the customer declined the survey (boolean)CSAT_SCORE- Customer rating (numeric 1-5)CSAT_FREE_FEEDBACK- Verbatim customer feedback (string, if collected)CSAT_COMPLETED- Whether the survey was completed (boolean)
SMS CSAT metrics
PLATFORM_CSAT_CALL_TYPE- Type of call (contained/uncontained/call_center)PLATFORM_CSAT_RAW_RESP- Raw customer response (1-5 score)PLATFORM_CSAT_RESPONSE_RECV- Whether a response was received (True/False)PLATFORM_CSAT_SCORE- Processed CSAT score
For SMS CSAT, the system creates a separate SMS conversation ID (child conversation) that is linked to the original call via the
parent_conversation_id metric. When multiple calls occur from the same number, the SMS response is recorded on the most recent call.Rating scale
The standard CSAT scale is 1-5:| Rating | Interpretation |
|---|---|
| 5 | Very satisfied |
| 4 | Satisfied |
| 3 | Neutral |
| 2 | Dissatisfied |
| 1 | Very dissatisfied |
CSAT calculation methods
CSAT scores can be calculated in different ways depending on your reporting needs: Standard average Simple average of all CSAT scores (e.g., 4.06 out of 5.0) Net Promoter style Some organizations calculate CSAT using a Net Promoter Score approach:- CSAT Score = (Promoters - Detractors) / Total responses
- Promoters: Scores of 4-5
- Detractors: Scores of 1-2
- Neutral: Score of 3 (not included in calculation)
Troubleshooting
CSAT survey not triggering
CSAT survey not triggering
- Verify CSAT is enabled in Settings
- Check that
conv.trigger_csat_survey()is called in your end function - Ensure the end function is being executed (check conversation logs)
Customers not responding to survey
Customers not responding to survey
- Simplify your survey messages
- Make the scale clearer (explicitly state what 1 and 5 mean)
- Consider the timing - surveys work best after successful resolutions
CSAT data not appearing in dashboards
CSAT data not appearing in dashboards
- Allow up to 15 minutes for data to appear
- Verify the conversation completed successfully
- Check that the customer actually provided a rating
SMS CSAT not sending
SMS CSAT not sending
- Verify the customer has a mobile phone number (not a landline)
- Check that SMS consent has been obtained (required in US)
- Ensure the delay_minutes is set to at least 6 minutes for Twilio
- Verify the project is using GenAI or GenAI handoffs
- Check that the weekly_cap has not been reached
SMS response not linking to call
SMS response not linking to call
- SMS responses are automatically linked to the original call via parent_conversation_id
- If multiple calls occur from the same number, the response is recorded on the most recent call
- Check the SMS conversation record to verify the parent_conversation_id is set correctly
Legal and compliance considerations
SMS consent requirements
When implementing SMS CSAT surveys, you must comply with regional SMS regulations:United States
In the US, you need explicit consent from customers to send SMS messages. This creates implementation challenges for calls routed directly to call centers, as consent must be collected before the call routing decision is made. Consider these approaches:- Collect SMS consent during IVR before routing
- Only enable SMS CSAT for calls handled by your AI agent (where consent can be obtained during the conversation)
- Obtain consent through other channels (web forms, account signup, etc.)
United Kingdom
UK regulations are more flexible for service-related SMS messages. You can send CSAT surveys without explicit prior consent if:- The message is service-related (following up on a call the customer just made)
- You comply with basic GDPR requirements
- You include opt-out instructions (e.g., “Reply STOP to opt out”)
Best practices
Regardless of region:- Always include clear opt-out instructions in your SMS template
- Respect opt-out requests immediately
- Keep messages concise and clearly service-related
- Document your consent collection process
Limitations
Voice CSAT limitations
- The rating scale is fixed at 1-5
- Only one CSAT survey can be triggered per conversation
- Survey must be triggered from the end function
SMS CSAT limitations
- Only available for GenAI projects
- For hybrid projects, must use GenAI handoffs
- Minimum delay of 6 minutes required for Twilio
- SMS CSAT is not yet available for webchat channels
- Requires customer to have a mobile phone number (landlines cannot receive SMS)
- SMS responses must be received within the configured wait_for_response_hours window (default 12 hours)
For custom survey requirements or multi-question surveys, contact your PolyAI representative to discuss advanced options.
Coming soon
PolyAI is continuously improving CSAT capabilities. Upcoming features include:- Simplified configuration - Configure SMS CSAT surveys through the Agent Studio UI without editing JSON
- Webchat support - CSAT surveys for webchat channels
- Enhanced analytics - Additional reporting and insights for CSAT data
Interested in these features or have specific CSAT requirements? Contact your PolyAI representative to discuss your needs.

