In this Explore recipe, you'll learn how to create a report that helps determine which agent was assigned to a ticket when the requester filled out the satisfaction survey. If you haven't enabled satisfaction surveys, see Using CSAT.
What you'll need
Skill level: Easy
Time Required: 15 minutes
- Zendesk Explore Professional or Enterprise
- Editor or Admin permissions (see Giving agents access to Explore)
- Ticket data in Zendesk Support
Creating the report
To create the report
- In Explore, click the reports () icon.
- In the Reports library, click New report.
- On the Select a dataset page, click Support > Support - Updates history, then click Start report. The report builder opens.
- In the Metrics panel, click Add.
- From the list of metrics, choose Updates > Updates, then click Apply.
- In the Rows panel, click Add.
From the list of attributes, choose the following:
- Ticket field changes > Changes - Field name
- Ticket field changes > Changes - New value
- Ticket field update values > Update ticket assignee
- Ticket > Ticket ID
- When you are finished, click Apply.
Click Changes - Field name, then on the Selected tab, tick satisfaction_score, then click Apply. This will filter the results to show only changes to the satisfaction rating.
Click Changes - New value, then on the Selected tab, tick good and bad, then click Apply. This will filter to show when a change was made to the satisfaction score, either good or bad.
You've finished the report. Your results will look like the screenshot below:
The next steps are optional for a new report and should be used if you want to see specific instances where ratings were changed from good to bad, or vice versa.
- Open a new report in the same dataset as above, Support: Updates history.
- In the Metrics panel, click Add.
- From the list of metrics, choose Customer satisfaction > Bad to good satisfaction ratings and Customer satisfaction > Good to bad satisfaction ratings, then click Add.
- In the Rows panel, click Add.
- From the list of attributes, choose Ticket field update values > Update ticket assignee and Ticket > Ticket ID, then click Add.
- From the Result manipulation () menu, click Metric filter.
- On the Metric filter page, set each metric range to filter out results less than one. For more information, see Selecting the metric result range.
See the screenshot below for an example of this report.
I'm trying to get just a list of rated good tickets by ID excluding certain topics. And everything works except when I apply the TICKET ID requirement.
I've also added count of tickets just in case - but no options work. I've tried in both the tickets dataset as well as the tickets updates dataset - but adding in the ticket ID removes all results. Not sure if this is a bug - or why explore won't return good satisfied comments with ticket ID's
Any help would be appreciated
Hi @..., it's definitlely possible to do what you're trying to do. I suspect that your query is returning to many rows, and that's why it's blank. If this is the case you'll see a red warning message at the bottom of the query pane.
A couple of suggestions that should help:
If you only want to see tickets that have a comment you should select the COUNT(Good satisfaction tickets w/comment) metric. You'll then need to set the metric filter to only show rows where the value for that metric is one.
Hopefully this gets you where you want to be.
Thanks for the suggestions. We've only used it for a few months, but adding in a filter actually populated it.
One thing that doesn't work however is if I add to the filtered sections an option to exclude a specific custom field like the ticket topic, it still returns tickets that have this topic.
I thought I'd try the same by adding to the filter the exclusion by tag, but it still populates the report if even when the tag is on the ticket.
I will continue to tinker with it.
Thanks again for the quick update
There's no reason that shouldn't work. I've tested it on my account and can exclude tickets with certain values in our custom fields. Try the metric filter if you haven't already, otherwise it might be that there is an issue with your account that Zendesk need to take a look at.
Hi. This article was really helpful. Can you please tell me how to pull the last satisfaction score date?
At the moment, there's not a way to natively pull out the data on when an end-user last rated a ticket. We recommend using the Solved date instead since the satisfaction survey is sent out when the ticket status is set to Solved as per this note in the article About CSAT(Customer Satisfaction) ratings in Zendesk Support:
Hope I was able to clarify this one. Cheers!
@... - I see that Melanie never responded to you, but it sounds like she has a similar situation as us.
The issue comes down to the rating following the ticket instead of sticking with original assignee who was rated. This is currently affecting bonuses on my team. Here's the flow:
We offer quarterly bonuses to some of our senior folks for maintaining a high satisfaction score and this scenario is penalizing them unfairly.
What's the workaround for that?
Hi Joshua Bentley! It looks like one of the suggestions I had for Melanie would work if you only want CSAT to be reflected at the final resolution. In those cases, Assignee 1 would not have the opportunity to receive a CSAT score for a ticket that was escalated. If you do want to preserve the CSAT opportunity for both, then you would have to set up a system that relies on your agents to reassign tickets back to the previous assignee. However, using the formula in the article above to see who sent the CSAT request and showing their ratings in that way would allow you to get the information you need for bonuses.
Thanks, @...! I think I understand what the results are now. Ideally, I'd be able to have A1 and A2 each have their own score/opportunity even if it's for the same ticket, but that doesn't seem possible unless I use a 3rd party solution.
I think the closest I'll be able to do is set up a trigger where if a rating was given THEN it was escalated, to add a tag of some kind that I can use in my queries to filter out those tickets from someone's score.
I wish Zendesk's score could be attached to an assignee according to an event in a given time frame so the score was more about the agent than about the ticket.
You're welcome Joshua Bentley! Yes, tagging is a great way to control for this. We actually have a ticket field for escalations that we use.
You can also create a trigger that assigns those tickets back to the original assignee based on that tag.
I am torn about whether it's better for the CSAT to follow the ticket (we often use that to look for tickets that we can use for our QA sessions) or the person. We don't have any incentives for CSAT though, so it's not as large an impact for us.
It might be worth filing a feedback ticket to request the desired behavior. I know the PMs look at those postings. Best of luck!
How can we turn this into a CSAT percentage per agent?
Sorry this is not a ZD explore question but somewhat related. What if assignee #1 took 1 month to fix the ticket and the ticket sits there for a too long then assigned the ticket to assignee #2 then resolved the ticket. So the CSAT will be against assignee#2 although the touch point is just a day vs 1 month of assignee #1. Do we have a work around for this?
We saw that you also posted this comment in the article Who receives the satisfaction rating if a ticket is reassigned? Kindly see our response here.
Please sign in to leave a comment.