Recent searches
No recent searches
Restricting Satisfaction Surveys by Date
Posted Oct 03, 2017
Introduction
Customers with many tickets can become overwhelmed with satisfaction surveys. This frustrates the customer and can lead to invalid satisfaction metrics. This guide will show how to suppress a customer's notifications after a recent survey.
The inspiration and code comes from Moderator Joel Hellman. The typos are all mine.
Method
To capture the last survey date, create:
- A user field to hold the notification date value
- An Webhook to populate the user field with a date
To suppress notifications:
- Create a new automation offering satisfaction without a notification
- Change the standard automation to record the satisfaction notification date
- Order your automations to ensure the new automation fires before the standard automation
Custom date field
Go to Admin>Manage>User Fields and create a new date field, 'Last Satisfaction Date'.
Ensure you have a field key value, 'last_satisfaction_date'. The Webhook will use this.
Webhook
Go to the Admin Centre>Apps and Integrations>Webhooks.
Use the Action menu to create a new Webhook
Title: PUT API/ Users/Ticket Requester ID
URL: https://YOURURL.zendesk.com/api/v2/users/{{ticket.requester.id})
Method: PUT
Content type: JSON
Ensure you replace YOURURL with your own Zendesk.
For authorisation, tick the Basic authentication box. Enter an administrator's email address and password or create an API token.
The screen may look like this:
Create a new customer satisfaction automation
Go to Admin>Business Rules>Automations. Find your automation that sends satisfaction notifications. The default is 'Request customer satisfaction rating (System Automation)'. Clone this automation.
Rename the cloned automation to 'Customer satisfaction rating (Notification recently sent)'. Here is an example of the conditions.
Here the automation will fire if the ticket is not closed, has been solved for an hour and the satisfaction rating is not offered.
Add a further condition to check when satisfaction was last offered by email.
The trigger will now only fire if the satisfaction notification was sent in the last week.
In the Action section, remove the notification action. An action is still need to offer satisfaction to allow the customer to rate the ticket in the Help Centre.
For reporting, you can add a further action adding a tag to the ticket. You can then use Insights to track the impact of suppressing notifications.
Change the standard automation
Go to Admin>Business Rules>Automations and edit the standard satisfaction automation. Add a new action to notify target and select the 'PUT API/User/Ticket Requester ID' created earlier.
In the JSON body, paste the code:
{
"user":{
"id":{{ticket.requester.id}},
"user_fields": {
"last_satisfaction_date" : "{{ 'now' | date: '%Y-%m-%d' }}"
}
}
}
The action should look like this:
Order your automations
Ensure this new automation appears before the standard automation. Select 'Reorder page' from the more actions menu. Drag the new automation above the system automation.
Customers with a recent notification can rate their tickets in the Help Centre.
Customers without a recent notification will receive a new satisfaction survey notification. The user account custom date holds the last notification date.
0
44 comments
Brett Bowser
Hey Morvan,
If you're using Google Sign-in then you'll still want to set up a native Zendesk password you can use for this target. To set up a native Zendesk login, navigate to subdomain.zendesk.com/access/help and enter your email address to trigger a password reset email.
You'll replace subdomain with the actual subdomain of your Support account.
I hope this helps!
0
Karen D Snyder
@... and @..., I had the same problem last week where I was creating an HTTP target, and got back status HTTP 401 Unauthorized with { "error": "Couldn't authenticate you" }. I solved it (with help from Zendesk support) as follows: In the target settings where you put in your email address, add the string "/token". Where you put in your password, paste in your token.
We use SSO to sign into Zendesk, so not sure if this solution would apply to everybody.
0
Dominic
Hi,
My message is a longshot as this thread might not receive attention after 2-3 years, but it's work a shot:
My target failure is 401, it says "error": "Couldn't authenticate you"
I have checked in the API and it says HTTP client call failed.
Any ideas what the problem could be?
Kindly,
Dominic
0
Brett Bowser
Hey Dominic,
I'm going to create a ticket on your behalf so our Customer Care team can look into this error with you.
You'll receive an email shortly stating your ticket has been created.
Cheers!
-1
Esther Malka
I'm not seeing the "Requester: Last Satisfaction Date" field in the automations dropdown. Was this removed??
0
Elaine
Hi Diana,
The Requester: Last Satisfaction Date field is not natively listed as one of the Conditions or Actions in creating an Automation. As stated above, you will have to create a new/custom date field by following the full instructions above in order for this date to show up in the dropdown option for Conditions or Actions.
Hope this clears it out. Cheers! :)
0
PAUL
please update the to:
{
"user":{
"id":{{ticket.requester.id}},
"user_fields": {
"last_csat_date" : "{{ "now" | date: "%s" | plus: 7776000 | date: "%b %d, %Y" }}"
}
}
}
where 7776000 = 86400 s in a day * x no of days (90 in this case)
0
believe
Hi ZZ Graeme Carmichael
Is your code still functional?
I followed every steps of the process and insert your code but nothing is happening in my user files
Thanks for your help
Chris M
0
ZZ Graeme Carmichael
Chris-Ivan
Yes, this should work. But is it best to use a Webhook and call that from your automation.
0
believe
Thanks ZZ Graeme Carmichael,
Yes, when I notice that target wasn't possible, I used a webhook. Despite of this, my problem stayed the same... No change in the user field !
Did I miss something? Do you see a reason why it's not working?
Thank you in advance !
Chris
0
ZZ Graeme Carmichael
Chris
Are you sure that your automation is firing? That 7 day condition looks like it will prevent the conditions being met
Include the webhook as an additional action in the standard automation. When the standard automation fires, the custom user field is updated with today’s date.
The new automation offers satisfaction rating for the ticket, but does not nag the user with a notification. So no webhook call on that.
0
Alexander Klos
What I noticed on your screenshot is that according to the guide, the notify webhook is part of the standard Automation but you did add it to the "new" automation. Isn't that wrong? Should the value not be written when the CSAT was offered?
0
Alexander Klos
ZZ Graeme Carmichael
I found an issue with the guide.
There is a ) at the end of the URL, not a }
Everyone who copies that and exchanges "YOURURL" with the home URL could run into 404.
Cause the endpoint URL will then be invalid.
Webhook
...
URL: https://YOURURL.zendesk.com/api/v2/users/{{ticket.requester.id})
...
0
Robert Babos
Hi,
Firstly thank you for all the useful info.
I have a question related to this topic. I understood how to set up a X days cool down period to not to send the CSAT out every day.
I mean imagine that a have several tickets with the same customer, but I don't want to send 5 emails of CSAT to that same customer, instead just 1 email notification. So my question is there any way to "exclude" if there's any duplicate of the requesters?
I hope I could explain myself.
Thanks!
0