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

Artificial Intelligence
Support

The Impact of AI on Customer Experience in 2024: A Forrester Report Summary

Discover Forrester's 2024 insights on AI in customer service. Generative AI will boost CX metrics, transform skeptic views, and face regulatory challenges.

Emel Dogrusoz
Support

Maximize Customer Satisfaction with Conversational Ticketing and Zendesk Integration in Slack

Streamline CSAT surveys with Actioner’s Zendesk integration in Slack, improving response rates and gaining real-time insights to boost customer satisfaction and loyalty.

Aysun Ozgun Denizci
Support

Best Zendesk alternatives for 2024

Explore the best Zendesk alternatives for 2024, including Freshdesk, Intercom, and Gorgias. Discover their features, pricing, and benefits to find the ideal customer service platform for your business.

Aysegul Yavuz Gokcuoglu