Recent searches


No recent searches

Restricting Satisfaction Surveys by Date



image avatar

ZZ Graeme Carmichael

Community Moderator

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

44 comments

image avatar

Brett Bowser

Zendesk Community Manager

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


@... 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


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


image avatar

Brett Bowser

Zendesk Community Manager

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


I'm not seeing the "Requester: Last Satisfaction Date" field in the automations dropdown. Was this removed??

0


image avatar

Elaine

Zendesk Customer Care

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


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


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


image avatar

ZZ Graeme Carmichael

Community Moderator

Chris-Ivan

Yes, this should work. But is it best to use a Webhook and call that from your automation.

 

0


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


image avatar

ZZ Graeme Carmichael

Community Moderator

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


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


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


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.

  • But my question is that is there a way that when the CSAT automation in firing to send out the emails somehow to check that the requesters does not repeat? Because, as you can see from the screenshot below I have 896 matching ticket for the CSAT automation, and there are requesters who appear more than once, so I suppose they will receive more than 1 email notification.

 

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?

  • And also another thing. There are tickets which does not have reply from the requester, only the public comment sent out by the agent, if there a way to "exclude" those tickets which does not have a response from the end-user? Imagine I send a ticket to a customer, but they never reply back, obviously I don't want to send them a CSAT because that wouldn't make sense.

I hope I could explain myself.

Thanks!

0


Please sign in to leave a comment.

Didn't find what you're looking for?

New post