How to correlate CSAT survey responses to a person/service for AI-powered summarization?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago - last edited 3 weeks ago
Hi Community,
I have built an AI Agent that takes a Survey Name + Time Period, retrieves completed Assessment Instances and related responses, and generates an overall summary.
My next requirement is to do the same specifically for Customer Satisfaction (CSAT) surveys and generate summaries such as:
- CSAT summary for a specific resolver/agent
- CSAT summary for a specific service
- CSAT summary for a specific assignment group
- CSAT trends for a selected time period
I'm trying to understand the recommended ServiceNow approach for correlating survey responses back to the entity being rated.
A few questions:
- How do customers typically link CSAT survey responses stored in asmt_assessment_instance / asmt_metric_result back to a specific resolver, assignment group, or service
- If a survey does not have an explicit Overall Satisfaction question, how is the CSAT score typically calculated in ServiceNow?
- Do customers usually:
- Calculate CSAT dynamically from asmt_metric_result,
- Use Performance Analytics indicators/formulas,
- Or store a calculated CSAT score on a custom field/table for reporting?
- For an AI Agent use case, what is the recommended data source and approach to retrieve:
- CSAT score,
- Response count
for a specific person/service over a selected time period?
Looking for best practices and how this is commonly implemented in real ServiceNow environments.
Thanks in advance!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hey There,
In ServiceNow, the main thing is to correlate the survey response with the record/entity that triggered the survey. For example, for an Incident CSAT, you would typically use the assessment instance to identify the source record, then get the Incident's assigned_to, assignment_group, and business_service values. From there, your AI Agent can aggregate the related asmt_metric_result responses for the requested person/service/group and time period.
For the CSAT calculation, there isn't necessarily one universal formula that applies to every survey. If the survey has a dedicated satisfaction/rating question, you can calculate CSAT dynamically from the metric results—for example, percentage of positive responses out of total valid responses.
If the organization already uses Performance Analytics, it is usually better to reuse the existing indicator/formula rather than create a second calculation in the AI Agent. For more complex or standardized reporting, some organizations maintain a calculated value in a reporting table, but I wouldn't introduce a custom CSAT field just for the AI Agent unless there is a specific reporting requirement.
For your AI Agent, I would recommend using asmt_assessment_instance as the starting point, identify the source record being evaluated, then join that back to the actual task/Incident/Case to determine the resolver, assignment group, or service. Then use asmt_metric_result to retrieve the actual survey responses and calculate the score and response count for the selected period. This gives you a flexible approach where the same agent can answer things like “What is A's CSAT this quarter?”, “Show CSAT for Service X last month”, or “What is the CSAT trend for Assignment Group Y over the last 6 months?” without duplicating CSAT data.