Recent searches
No recent searches
Push notifications from Zendesk to Slack
Posted May 09, 2019
The official Zendesk-Slack integration is very powerful, offering out-of-the-box two-way communication in a stylish way, but sometimes you just want a simple notification setup.
I hope this guide is helpful in showing the flexibility possible with Zendesk triggers and Slack.
Create a Slack app (in Slack)
[Alternatively, you could just create an incoming WebHook in Slack]
Make sure you're logged into Slack from your browser and proceed to:
https://api.slack.com/apps/new
Give the app a name that is appropriate, I've chosen Zendesk notifier for this example, and also select which Slack Workspace you want the notifications on (if you have multiple).
Push the Create app button.
On the next screen, under Add features and functionality, select Incoming Webhooks.
Switch on the incoming webhook and click the Add new webhook to Workspace link
Next up select the Slack channel you want the app to post messages to and Authorize.
Copy the webhook URL, we need that for the next step in Zendesk.
Create a Webhook (in Zendesk)
[@... - thanks for updating this section!]
Navigate to the Webooks page: Admin Center > Apps and Integrations > Webhooks, and click Actions > Create Webhook.
In the Create Webhook screen, enter:
- A Name which represents the webhook/channel
- The Endpoint URL which is your Slack Webhook URL from earlier
- Set Request method to POST
Press Create and then press Complete setup on the following screen.
Now we have created a link from Zendesk to Slack, next we need to create the trigger that will push messages through this connection.
Create a Trigger (in Zendesk)
Navigate to the Triggers page: Admin > Triggers and push the Add trigger button.
Set the conditions for when you want Zendesk to push notifications to Slack
You have a lot of options here to precisely specify what kind of updates you want notifications for, a few examples:
- A new ticket is created
- A new ticket is created for a particular channel (e.g. reviews from Trustpilot or Play Store)
- A ticket with elevated priority is updated by the requester
- A ticket is updated with a satisfaction rating (Steven Yan has a great post outlining this use case)
Below I set the trigger to fire when a ticket with a priority above Normal is created.
You could have multiple use cases in mind, and create a separate trigger for each of them if you would like.
Set the trigger action to push a message to the Slack target
Again you have a lot of options here, what content you want to include in the notification and you also have a number of styling options as well.
Below is the JSON used in the above example - be sure to update the YOUR-DOMAIN part to your specific Zendesk subdomain.
{
"text": "<!channel> \n {{ticket.assignee.custom_fields.slack_member_id}} \n A ticket has been updated to *{{ticket.status}}* \n *Requester* {{ticket.requester.name}} \n *Organization*: {{ticket.requester.organization.name}}",
"attachments": [{
"color": "#E34F32",
"fallback": "See review here: {{ticket.url}}",
"actions": [{
"type": "button",
"text": "Go to ticket in Zendesk",
"url": "http://example.zendesk.com/agent/tickets/{{ticket.id}}",
"style": "primary"
}]
}]
}
In the example here, I include an @channel mention, followed by a four-paragraph message stating that there is a ticket has been updated to its current status, there is a button linking to the ticket in Zendesk (for easy access), and the requester name and organization name are also included. There is also a timestamp from the ticket update included.
Here is an example of what it looks like in Slack:
You can pull all kinds of user and ticket data into your message, see the Zendesk Support Placeholder Reference for all available options.
The above example is very basic in terms of style, you may want to add some bling to your messages, and for that Slack has its own message builder. You can add links, buttons, fields, images, and colors to your messages.
💡 Check out the comment section below for more use cases.
💡 You can use placeholders to insert ticket or user content into the message.
💡 You can use Liquid markup to modify placeholder output, for example, have a timestamp converted to something more readable, or have a nested field output only the last element.
8
58 comments