Looking for a Halp replacement?
See how we compare ➜

Automated ticket escalation in Slack using Actioner (With Zendesk and Jira)

Learn how to leverage Actioner to bridge the gap between Zendesk and Jira, streamlining the process of managing and resolving escalated tickets.

In this article, we'll go through a setup that uses Actioner to pass data from Zendesk to Jira and Slack. A webhook in Zendesk will trigger Actioner when "escalated" tag is added to a ticket, and correspondingly a new Jira issue will be automatically created, and this escalation will send a message in Slack.

Let’s go through this process step by step.

Step 1. Create an app and add Slack, Zendesk and Jira connections

You can start by creating an app from scratch on My apps page.

  1. After creating a new app, go to App settings tab and add a new Slack connection.
    ⚠︎ If you do not see any Slack workspace, it means that your Actioner account is not connected with any Slack workspace. Visit connect to Slack page to learn how you can connect your Slack workspace.
  2. Add a new Zendesk connection. Connect your Zendesk account by entering your Zendesk subdomain and proceed to authorize Actioner.
  3. Add a new Jira connection. Connect your Jira instance by entering your Jira site URL, login email and API token.
    ⚠︎ You can create a new API token via https://id.atlassian.com/manage-profile/security/api-tokens.

Step 2. Create your action

It is now time to create the action that will be executed when Zendesk sends a ticket update event.

This action will perform 3 tasks:

  • Assigning the ticket to the escalation group
  • Creating a new Jira issue
  • Sending a new message where the escalated team -development in this case - can track the issue.

Go to Actions tab of your app and add a new action. You can name it as Escalate Zendesk ticket to Jira.

Adding inputs

Let's continue with adding inputs. Action will take 6 inputs and all of them will be mandatory components to run the action.

💡 Open your action in design mode if you do not see Inputs, Outputs or Requests tabs.

  • 1st input: ticket. It is a text input. It will hold the ID of the Zendesk ticket.
  • 2nd input: title. It is a text input. It will hold the subject of the Zendesk ticket and will be used to create a Jira issue.
  • 3rd input: description. It is a text area component. It will hold the description of the Zendesk ticket and will be used to create a Jira issue.
  • 4th input: group. It is a single select component. It will hold the Zendesk group that the ticket will be automatically assigned to.
  • 5th input: project. It is a single select component. It will hold the project data that the Jira issue will be created under.
  • 6th input: issueType. It is a single select component. It will hold the type of the Jira issue that will be automatically created.
Escalate-Zendesk-ticket-to-Jira-action-inputs

Ticket, title and description can be grabbed from data that will be sent to Actioner when "escalated" tag is added to a Zendesk ticket. Through the Actioner workflow, you can set Zendesk group, Jira project and issue type. According to your setup,

  • Ticket will be assigned to the selected Zendesk group.
  • New Jira issue will be created under the selected project, with the selected issue type and its summary and description will be generated from Zendesk ticket's subject and description.

Adding requests

Now navigate to Requests tab and start adding the requests that will be run when this action is run.

Requests to generate options for select input components:

We'll start with API requests that will generate options for our inputs.

1.Add a new API request: ListZendeskGroups.

  • Select Zendesk connection.
  • Select GET method.
  • Enter /api/v2/groups in URL field.
List-Zendesk-Groups

2.Add another API request: ListJiraProjects.

  • Select Jira connection.
  • Select GET method.
  • Enter /rest/api/3/project/search in URL field.
List-Jira-projects

3.Add another API request: ListJiraIssueTypes.

  • Select Jira connection.
  • Select GET method.
  • Enter /rest/api/3/issuetype/project in URL field.
  • Enter projectId:{{input.project}} in params field.
Escalated-issue-in-Jira

Generating options for select components:

We'll now use the responses to our API requests and dynamically generate the options for 3 select components: group, project and issueType.

1.Go to group input and add below to source field.


Identifier: {{request.ListZendeskGroups.response.body.groups.map(g=>g.id)}}
Display: {{request.ListZendeskGroups.response.body.groups.map(g=>g.name)}}
List-Zendesk-Groups

2.Go to project input and add below to source field.


Identifier: {{request.ListJiraProjects.response.body.values.map(p=>p.id)}}
Display: {{request.ListJiraProjects.response.body.values.map(p=>p.key)}}
Set-jira-projects

3.Go to issueType input and add below to source field.


Identifier:{{request.ListJiraIssueTypes.response.body.map(i=>i.id)}}
Display:{{request.ListJiraIssueTypes.response.body.map(i=>i.name)}}
Set-jira-issueType

Requests to perform tasks in Zendesk, Jira and Slack:

1.Add a new API request: EscalateTicket.

  • Select Zendesk connection.
  • Select PUT method.
  • Enter /api/v2/tickets/{{input.ticket}} in URL field.
  • Enter below as the request body.

{  
"ticket": {
   "group": "{{input.group}}"
  }
}
Escalate-ticket-request

2.Add a new API request: CreateJiraIssue.

  • Select Jira connection.
  • Select POST method.
  • Enter /rest/api/3/issue in the URL field.
  • Enter below on the request body.
{
 "fields":
{
  "summary": "{{input.title}}",
   "issuetype": {      "id": "{{input.issueType}}"    },
   "project": {      "id": "{{input.project}}"    },
   "description": {      "type": "doc",
     "version": 1,
     "content": [
       {
         "type": "paragraph",
         "content": [
           {
             "text": "Related ticket: {{input.ticket}}\n{{input.description}}",
             "type": "text"
           }
         ]
       }
     ]
   }
 }
}
Create-Jira-Issue-request

3.Add a new Slack request: SendSlackMessage. Select Send message to channel method.

  • Select Slack connection
  • Go to Channel field and select your escalation team's Slack channel.
  • Enter this to Message field on Markdown block:
New escalation:
> **Ticket ID**: {{input.ticket}}
> **Subject**: {{input.title}}
> **Description**: {{input.description}}
Send-Slack-message-request

Add requests to run steps

Go to Inputs tab and add the requests to run steps in the order below:

  1. EscalateTicket
  2. CreateJiraIssue
  3. SendSlackMessage

💡 Note that no need to add the requests that generate values for input components.

Step 3. Create a workflow in Actioner

  1. Navigate to Workflows tab of your app and click + Add new workflow.
  2. Copy the webhook URL. You will use it to create a webhook in Zendesk. URL looks like below:

https://api.actioner.com/v1/events?api_key=3781179c-ea1a-42a0-9ce4-ebda5992ed0d

create-Zendesk-ticket-escalation-workflow

Step 4. Create a webhook in Zendesk

In Zendesk, you need to set up a webhook with the URL provided by Actioner. Below are the steps for this webhook configuration:

1.Go to Zendesk Admin Center and find Webhooks. Create a new webhook.

2.Enter the URL you copied from Actioner in Endpoint URL field.

3.Make sure that POST method and JSON format are selected and create webhook.

create-Zendesk-webhook

4.On Zendesk Admin Center, find Triggers. Create a new trigger.

5.Enter Trigger name, such as Send data to Actioner. You can optionally enter a description.

6.Go to Conditions section and add two new conditions under Meet ALL of the following conditions:

Ticket — Is — Updated
Tags — Contains at least one of the following — escalated

Zendesk-trigger

7.Go to Actions section and select Notify active webhook option and select the webhook you just created.

8.Copy below to JSON body field:

{
"id": "{{ticket.id}}",
"title": "{{ticket.title}}",
"description": "{{ticket.description}}"
}
Zendesk-trigger-actions

Step 5. Test webhook

  1. Update a test ticket in Zendesk by adding escalated tag.
  2. Go to the Actioner workflow and click Test webhook.

Step 6. Add your action to your workflow step

1.Click + Add step and select your action. You'll see all inputs opening up.

2.On Ticket field, enter below:

{{event.id}}

3.On Title field, enter below:

{{event.title}}

4.On Description field, enter below:

{{event.description}}

5.Select your Zendesk group.

6.Select the project of your development team in Jira project field.

7.Select the Jira issue type.

adding-action-to-workflow-step

That is it! You are now ready to test this workflow. Go ahead and add "escalated" tag to a test ticket in Zendesk and see how it works.

To explore building your own Slack apps, signup to Actioner now!

Similar posts

News
Support

AI Assist for Zendesk: Elevate support with automated insights

Maximize your Zendesk support with Actioner's AI Assist. Get automated summaries, intent and sentiment analysis for personalized, efficient customer service. Start now!

Tugba Capaci
Support

Navigating the future of Customer Support with Artificial Intelligence

Discover AI in customer support: 24/7 service, efficient query handling, personalization, and cost savings. Learn to integrate AI for enhanced customer experiences 👉

Aysegul Yavuz Gokcuoglu
Support
How-to

How to deliver support with Actioner powered triage channels in Slack

Explore Actioner-powered triage channels in Slack & transform your support team's workflow.

Aysun Ozgun Denizci