Skip to main content
csat Customer Satisfaction (CSAT) surveys allow you to collect feedback from customers at the end of their conversation with your agent. The agent asks customers to rate their experience, and responses are tracked in your analytics dashboards.

Survey types

PolyAI supports voice CSAT surveys - in-call surveys where the agent asks customers to rate their experience before ending the conversation.

Configuring voice CSAT

Voice CSAT is configured from Configure > CSAT in the sidebar.

Step 1: Enable the survey

At the top of the CSAT settings page, toggle Enable in-call voice survey to on. This activates the CSAT feature for your project. Until enabled, no surveys run.

Step 2: Connect to your hang-up logic

Copy the function call conv.goto_csat_flow() shown on the page and paste it into your existing hang-up function in Build > Tools. This instructs the agent to route users into the survey flow before ending the conversation.
This step is required. If you skip it, the survey never triggers—even if the toggle is on.

Step 3: Define survey content

Configure the two text fields in the Content section:
Lead-in message
string
What the agent says before asking the question. Keep it short and clear to prevent hang-ups.Example: “Please stay on the line to answer a quick survey about your experience.”
Survey question
string
The actual rating question. You must include a 1–5 scale in the wording—the system does not infer a scale.Example: “On a scale of 1 to 5, how well was your issue resolved today?”
Once configured, every time your hang-up function executes, the user routes into the CSAT flow before the conversation ends.

How voice CSAT works

  1. Customer completes conversation - The agent finishes helping the customer
  2. Lead-in message - Agent introduces the survey
  3. Survey question - Agent asks the 1–5 rating question
  4. Customer responds - Customer provides a rating
  5. Data collection - Rating is stored and appears in your dashboards

Configuration

Voice CSAT best practices

Tips for effective surveys:
  • Keep it short - Customers are more likely to respond to brief surveys
  • Be clear about the scale - Explicitly state what 1 and 5 mean in your survey question
  • Natural language - Write messages that sound conversational, not robotic
  • Test thoroughly - Try different phrasings in sandbox before deploying

Implementing CSAT in your end function

To trigger the CSAT survey, add conv.goto_csat_flow() to your end function:
def end_function(conv: Conversation):
    # Your existing end function logic here
    
    # Route to CSAT survey flow
    conv.goto_csat_flow()
When using conv.goto_csat_flow() in your hangup function, there should be no return values. The function should end with conv.goto_csat_flow() and not return anything.

Custom hangup utterance

If you want a custom final message before the CSAT survey, set the utterance in conv.state.csat_output_args before calling conv.goto_csat_flow():
def end_function(conv: Conversation):
    # Your existing end function logic here
    
    # Optional: Set a custom final thank you message
    conv.state.csat_output_args = {"utterance": "Custom final thank you message"}
    
    # Route to CSAT survey flow
    conv.goto_csat_flow()
The goto_csat_flow() method will:
  • Play the lead-in message
  • Ask the survey question
  • Collect the customer’s rating
  • Store the result in analytics
The CSAT survey must be triggered from the end function. Calling it elsewhere may result in unexpected behavior.

Viewing CSAT data

Agent Studio dashboards

CSAT scores appear in your analytics dashboards within Agent Studio:
  1. Navigate to AnalyticsDashboards
  2. Select the CSAT dashboard
  3. 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:
  1. Go to AnalyticsConversations
  2. Filter the conversations table to show only conversations with CSAT responses
  3. Select a conversation
  4. View CSAT metrics in the conversation details

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)
These metrics are attached to the original conversation record and can be used for analysis and reporting.

Rating scale

The standard CSAT scale is 1-5:
RatingInterpretation
5Very satisfied
4Satisfied
3Neutral
2Dissatisfied
1Very 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)
Example: If 70% of customers rate 4-5 and 10% rate 1-2, the CSAT score would be 60%.

Troubleshooting

  • Verify Enable in-call voice survey is toggled on in CSAT settings
  • Check that conv.goto_csat_flow() is called in your end function
  • Ensure the end function is being executed (check conversation logs)
  • Simplify your survey messages
  • Make the scale clearer (explicitly state what 1 and 5 mean)
  • Consider the timing - surveys work best after successful resolutions
  • Allow up to 15 minutes for data to appear
  • Verify the conversation completed successfully
  • Check that the customer actually provided a rating

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
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:
  • 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.