Skip to main content

Conversational ticketing with Zendesk

Learn how to get started with conversational ticketing with Zendesk.


Install Conversational ticketing with Zendesk from app directory and start using it by connecting your Zendesk and Slack accounts.

Get started as a user

If you are invited to this app as a user, proceed to Get started as a user section to learn how to connect your Zendesk account.

Features

  • Raising requests in Slack: Let your team and your customers open inquiries in dedicated Slack channels and automatically convert their messages into Zendesk tickets.
  • Triage within Slack: Get notified of new tickets in your triage channels and track updates and share your comments in a single Slack thread.
  • Zendesk actions on Slack: Create, view, and assign Zendesk tickets, change their statuses, or add followers to them.
  • Private tickets: Enable private conversations between your support team and your requesters by moving the conversations from request channels to direct messages in Slack.
  • Automated CSAT surveys: Send DMs to your requesters to rate their support experience. Create CSAT reports and share them with your team.

Use cases

How to get started

Step 1. Install conversational ticketing with Zendesk

Visit conversational ticketing with Zendesk in app directory and click Install button at top right corner.

Install Conversational ticketing with Zendesk

Step 2. Connect to Zendesk and Slack

After installing the app, you'll be prompted to connect your Slack workspace and Zendesk account.

Connections for Conversational ticketing with Zendesk

Complete Zendesk connection

  1. Click Connect near Zendesk (Oauth) connection and proceed to authentication in Zendesk via OAuth2.
  2. You will be asked to sign in to your Zendesk account if you haven't already.
  3. Click Connect app. You’ll be redirected to Actioner upon successful authorization.

Complete Slack connection

  1. Click Connect near Slack connection.
  2. Continue with selecting your Slack workspace.
Slack connection

If your workspace is not available, add it by navigating to Slack connections page from left menu and click + Add new Slack workspace.

If you do not see Slack connections page, contact with your workspace admin.

Step 3. Complete setup

Setup Conversational ticketing with Zendesk

  1. Run Create webhook and triggers in Zendesk. This workflow creates a webhook and ticket related triggers in your Zendesk account. The webhook is created with the name you enter.

  2. Run Create channels for new ticket notifications and raising requests. This workflow creates 3 new channels in your Slack workspace:

    • #actioner-default-queue channel will be created as your triage channel for requests raised by /actioner and for requests created in Zendesk.
    • #actioner-triage channel will be created as your triage channel for requests raised from #actioner-requests channel.
    • #actioner-requests channel will be created to capture new requests of your users in Slack.

Get started as a user

If you are invited to this app as a user, you need to complete your Zendesk connection. This connection is required for you to take actions on Zendesk notifications and to run workflows from Actioner shortcut in Slack.

  1. Navigate to Zendesk connection, click Connect and proceed to authentication in Zendesk via OAuth2.
  2. You will be asked to sign in to your Zendesk account if you haven't already.
  3. Click Connect app. You’ll be redirected to Actioner upon successful authorization.

How to customize this app

Set up a queue in Slack

To create a new queue, you first need to create or dedicate a request channel and a triage channel in Slack.

  • Request channels are Slack channels where requesters can go to make a ticket for a specific team. Any tickets created from a request channel can be directed to a preferred queue. We recommend these channels be a public, where anyone can join and make a ticket.

  • Triage channels are channels dedicated to triaging or prioritizing incoming requests or and are typically used by your help desk teams for assessing and categorizing incoming tickets, assigning them to appropriate teams or team members for further action or resolution.

After creating your request and triage channels, you can run Create channels for new ticket notifications and raising requests in Slack or in Actioner to create your queue.

  • Select your request channel for your Slack users to raise requests from Slack messages.
  • Select your triage channel to notify for the requests created in the selected request channel.
  • Select how tickets will be created: When reacted with ticket 🎫 emoji or When a new message is posted.
  • Select if you want your users to raise requests through filling out a form or not.
Tip

Do not forget to invite Actioner to your request and triage channels!


Alternative way to setup a new queue or update an existing one is through updating your App config.

  1. Go to App config tab of your app and navigate to requestChannelConfiguration.

  2. Add a new JSON object in the below structure:

{
"channels": [
{
"requestChannelId": "C01234ABCDE",
"triageChannelId": "C01234FGHDI",
"triggerType": "emoji",
"emoji": "ticket",
"formSelection": false
},
{
"requestChannelId": "C09876ABCDE",
"triageChannelId": "C09876FGHDI",
"triggerType": "message",
"formSelection": true
}

]
}
  • requestChannelId: This is the ID of the channel that you can dedicate for creating requests in Slack. You can replace it with the ID of your Slack channel. If you change the value over here, do not forget to invite Actioner to your channel!
  • triageChannelId: This is the channel where new ticket notifications will be posted to, whenever a ticket is created from the selected request channel. You can replace it with the ID of your Slack channel. After changing the value over here, do not forget to invite Actioner to your new triage channel!
  • triggerType: It can be set as emoji or message. When it is set as emoji, Actioner starts to listen to emoji reactions in the selected request channel to trigger new Zendesk requests. Conversely, if the value is sent as message, Actioner triggers ticket creation action when a new message is posted to the selected request channel.
  • emoji: By default, the emoji to create tickets is ticket 🎫 emoji, However, you can select another emoji for your request channel. It is even possible to trigger requests with different emojis in different request channels.
  • formSelection: It can be set as true or false. When it is set as true, Actioner sends a message prompting the user to raise her request through filling out a form after clicking ✋ Raise a request button. When it is set as false, Actioner automatically creates the ticket by mapping the Slack message to the Zendesk ticket’s subject and description.

Enable CSAT

To update sending CSATs in Slack and its settings, go to App config tab and navigate to csatConfiguration.

  • sendCsat: When it is set as true, your requesters are asked to rate their experience in Slack. You can set it to false to disable this workflow.
  • csatTimeFrame: Shows how many minutes later the CSAT will be sent to your requesters after the ticket is solved. It can not be less than 1.
  • showScoreAsComment: When set to true, the rating and the comment of the requester is added as an internal note to the ticket. You can set it to false to make it hidden from ticket notes.
  • showScoreInTriage: When set to true, the rating and the comment of the requester is added as a thread reply to the post in your triage channel. You can set it to false to make it hidden from thread in your triage channel.

Update the settings of your app

During the setup of your solution for conversational ticketing with Zendesk, you’ll be prompted to complete some steps. These steps are necessary for your app to get up and running in Slack. After the setup, you can also update your default triage channel for new ticket notifications and customize your bot name and icon with your own image’s URL, such as with the logo of your company or an image representing your support team.

For this, go to App config tab of your app and navigate to appConfiguration.

  • botName: You can replace the value over here with any name of your choice, such as Acme Support or IT Help desk.
  • botIcon: You can replace this field with a URL of your desired image. You can select the logo of your company or an image representing your support team.
  • defaultTriage: This is the channel where new ticket notifications will be posted to, whenever a ticket is created from Actioner shortcut or whenever it is raised from a Zendesk channel. You can replace it with the ID of your Slack channel. After changing the value over here, do not forget to invite Actioner to your new triage channel!

Customize hints sent to agents and requesters

In appConfiguration, you can also update below fields:

  • triageThreadHint: This field contains the hints sent to triage channels when a new ticket is created. They contain useful tips showing agents how they can manage tickets and track new updates. You can update it with your own custom hints. Do not forget to provide your hint in markdown format.
  • requestThreadHint: This field includes the hints sent to a request channel when a new ticket is created from the message sent to it. They contain useful tips showing requesters how they can track new updates on the ticket. You can provide your own custom message over here. While updating this field, make sure that your text is in markdown format.
  • dmThreadHint: This field contains the hints sent to the requester as DM when a new ticket is created from Actioner shortcut. They contain useful tips showing requesters how they can track new updates on the ticket. You can provide your own custom message over here. While updating this field, make sure that your hints are written in markdown format.
  • privateRepliesHint: This field includes the hint shown to the requester in DM when a ticket is marked as private.You can write your own markdown message in this field.

Use cases

New ticket alerts

When a new Zendesk ticket is created, Actioner sends a notification to your triage channel. You can invite your support team to this channel to work on new requests.

  • If the ticket is created from a message sent to one of your request channels, the notification is sent to the triage channel associated with that request channel.
  • If the ticket is created by running Create ticket workflow through /actioner shortcut or if it is created from other Zendesk channels, the notification is sent to default triage channel.

Manage tickets in your triage channel

When a new Zendesk ticket is created, Actioner sends a notification to your triage channel. Your support can take actions on these notifications or add emojis to manage your tickets.

Notifications sent to your triage channel include below buttons:

  • ✍️ Update: Updates the ticket fields with the values entered or selected.
  • 👀 Assign: Assigns the ticket to the selected group and agent.
  • 🔍 Show requeste: Returns the details of the requester, along with a list of her last 5 tickets.
  • ➕ Add follower: Adds a follower to the ticket.
  • 🔏 Private ticket: Available if ticket is created from a message sent to a request channel. Converts the ticket to a private ticket. Once a ticket is converted to a private one, its updates are sent to requester through DM.

You can also take actions with emojis.

  • 👀 emoji assigns the ticket to the user who added it.
  • ✅ emoji changes the ticket status to solved.

Ticket updates

When a ticket's priority, status, group or assignee changes,

  • The ticket post in your triage channel is updated with the new ticket fields.
  • A thread reply is sent to the ticket post in your triage channel, showing the changed value of the updated field.
  • If ticket is created from a message sent in a request channel, the request post is updated with the new ticket fields. If ticket is solved or closed, a thread reply is also sent to this post.
  • If ticket is created by running Create ticket workflow through /actioner shortcut, the request post sent as a DM is updated with the new ticket fields. If ticket is solved or closed, a thread reply is also sent to this post.
  • When the ticket is solved, and if CSAT is enabled in your app, the requester gets a direct message asking her to evaluate her support experience.

Create ticket from /actioner shortcut

You can call /actioner shortcut in Slack and then navigate to Create ticket workflow.

  • If you select yourself as the requester, you'll get a direct message from Actioner with the details of the created request.
  • If you select another Slack user as the requester, that user gets a direct message from Actioner with the details of the created request.
  • If the requester is not a Zendesk user, Actioner automatically creates a new end user.

Create ticket when ticket 🎫 emoji is added to a message

When ticket 🎫 emoji is added to a message in a request channel with emoji trigger,

  • If form selection is required for that request channel, a new message is sent to user asking if she wants to raise a new request.

  • If form selection is not required for that request channel, a new ticket is automatically created once ticket 🎫 emoji is added.

  • When a new ticket is created, the requester of the ticket becomes the Slack user who posted the message. Actioner automatically creates a new end-user if that Slack user is not a user in Zendesk. Requester gets a thread message to her original post showing the created ticket details. She can mark the ticket as solved when her request is solved.

  • User mentions in the Slack message is converted to user mentions in the Zendesk ticket. Here is how it works:

    • If the mentioned Slack user is also a Zendesk user with the same user, she is also mentioned in the Zendesk ticket.
    • If the mentioned Slack user is not a Zendesk user, the user mention in the Slack message is replaced with her display name or real name in Slack.
  • If the message contains any attachments, these attachments are added as a link in the Zendesk ticket and shown in the message sent to triage channel.

Create ticket when a new message is posted

When a new message is posted to a message in a request channel with message trigger,

  • If form selection is required for that request channel, a new message is sent to user asking if she wants to raise a new request.

  • If form selection is not required for that request channel, a new ticket is automatically created once a new message is posted.

  • When a new ticket is created, the requester of the ticket becomes the Slack user who posted the message. Actioner automatically creates a new end user if that Slack user is not a user in Zendesk. Requester gets a thread message to her original post showing the created ticket details. She can mark the ticket as solved when her request is solved.

  • User mentions in the Slack message is converted to user mentions in the Zendesk ticket. Here is how it works:

    • If the mentioned Slack user is also a Zendesk user with the same user, she is also mentioned in the Zendesk ticket.
    • If the mentioned Slack user is not a Zendesk user, the user mention in the Slack message is replaced with her display name or real name in Slack.
  • If the message contains any attachments, these attachments are added as a link in the Zendesk ticket and shown in the message sent to triage channel.

Use threads to drive conversation

Both the requester and the support agent can continue to send their comments by staying in Slack and replying from the post on their channel. A few uses for this flow:

  • Keeps the requester informed as soon as the agent updates their request.
  • Reduces context-switching both for the support agent and for the requester. Requester can continue to track ticket updates from the original request post . Support agent can track updates on the original ticket post on your triage channel.
  • Enables agents and requesters to collaborate by establishing the means to a better communication. Issues can be closed faster with reduced error prones.
  • Prevents copy - paste activity in Slack into tickets.

Replying to requester

Support agents can send a reply to the requester from the ticket thread in your triage channel. Once a new thread message is sent to a ticket post,

  • A new public reply is added to the related Zendesk ticket. If the message contains attachments, links to attachments from Slack message are added to comment. If a Slack user is mentioned in Slack, and if mentioned Slack user is also a user in Zendesk, she gets mentioned in Zendesk as well.

  • Ticket status is updated to pending.

  • If ticket is created from a message sent to a request channel, requester gets the reply from the Slack thread she originally requested help. She gets the notification from Actioner but the message is an impersonation of the support agent with a copy of her Slack profile picture and display name.

  • If ticket is created by running Create ticket workflow through /actioner shortcut, requester gets the reply from the DM thread originally sent when the request was created. She gets the notification from Actioner but the message is an impersonation of the support agent with a copy of her Slack profile picture and display name.

  • If any user is mentioned in the reply; that user is also mentioned in Zendesk, if the mentioned Slack user is also a Zendesk user with the same email. If not, only her Slack display or real name is replaced in the reply.

  • If any attachment is added to Slack reply, the link of the attachment(s) are added to Zendesk comment and are shown in the comment sent to requester in request channel or DM.

Adding internal comments to ticket

Support agents can add an internal note to the ticket from the ticket thread in your triage channel. To add an internal note, start your message with lock 🔒 emoji. Once a new thread message is sent to a ticket post, and if the message starts with lock 🔒 emoji,

  • A new internal note is added to the related Zendesk ticket. If the message contains attachments, links to attachments from Slack message are added to comment. If a Slack user is mentioned in Slack, and if mentioned Slack user is also a user in Zendesk, she gets mentioned in Zendesk as well.

  • Ticket status does not change.

  • Requester does not get this message in Slack.

  • If any user is mentioned in the reply; that user is also mentioned in Zendesk, if the mentioned Slack user is also a Zendesk user with the same email. If not, only her Slack display or real name is replaced in the reply.

  • If any attachment is added to Slack reply, the link of the attachment(s) are added to Zendesk comment.

Replying to support agent

Requester can send a reply to the support agent from the request thread in one of your selected request channels. Once a new thread message is sent to a request post,

  • A new public reply is added to the related Zendesk ticket. If the message contains attachments, links to attachments from Slack message are added to comment. If a Slack user is mentioned in Slack, and if mentioned Slack user is also a user in Zendesk, she gets mentioned in Zendesk as well.

  • If ticket status is solved or closed, ticket status does not change. Otherwise ticket status is updated to open.

  • Agent gets the reply from the Slack thread in your triage channel. She gets the notification from Actioner but the message is an impersonation of the requester with a copy of her Slack profile picture and display name.

  • If any user is mentioned in the reply; that user is also mentioned in Zendesk, if the mentioned Slack user is also a Zendesk user with the same email. If not, only her Slack display or real name is replaced in the reply.

  • If any attachment is added to Slack reply, the link of the attachment(s) are added to Zendesk comment and are shown in the Zendesk ticket.

Comments added outside of Slack

If the comment source is Zendesk portal, or email, or any other source that is not Slack, the comment is sent as a thread reply to ticket post in your triage channel.

  • Agent gets the reply from the Slack thread in your triage channel. She gets the notification from Actioner but the message is an impersonation of the requester. If the author of the comment is also a Slack user, the message is sent with her profile picture and display name. If the author of the comment is not a Slack user, the message is sent with her Zendesk user name.

  • If the comment is an internal note, the Slack message starts with a lock 🔒 emoji.

FAQs

Conversational ticketing with a different tool

This conversational ticketing solution is tailored for Zendesk. If you are using another tool such as Freshdesk or Jira Service Management, etc. you can build a conversational ticketing app that works with your system and Slack. The only prerequisite here is your tool having public API support. You can then add a connection, setup an integration with your system and update workflows to work with your ticketing system.

Add more tools to conversational ticketing app

You can use as many tools as you want with Actioner as long as they have public APIs. You can create new connections, actions that send data to your tool, and workflows that send data from your tool and combine them within the existing app.

Get notified of only specific tickets

  1. Go to Zendesk Admin Center and find the trigger named Actioner - Ticket created.

  2. Add filters for the tickets you want to get notifications.

  3. You can apply the same filters to below triggers in Zendesk:

    • Actioner - Ticket status updated
    • Actioner - Ticket priority updated
    • Actioner - Ticket group updated
    • Actioner - Ticket assignee updated
    • Actioner - Public reply added to a ticket
    • Actioner - Internal note added to a ticket

Update notifications in your triage channel

To update the Slack notification in your triage channel,

  1. Navigate to Workflows tab of your app and find the workflow named Notify triage channel when there is a new Zendesk ticket.

  2. Find the nodes named Send message to triage channel.

  3. Find Message blocks in these Slack actions and update Markdown block.

    Note that the markdown block contains values that are stored in context. These content are originally added to context via the function named Construct message in triage channel. If you want to show additional ticket fields, you can update this function.

  4. Navigate to Workflows tab of your app and find the workflow named Sync triage and request channels with Zendesk ticket updates.

  5. Find the nodes named Update message in triage channel. You may apply the same changes you did for Notify triage channel when there is a new Zendesk ticket workflow.

  6. Find Message blocks in these Slack actions and update Markdown block.

    Note that the markdown block contains values that are stored in context. These content are originally added to context via the function named Construct message in triage channel. If you want to show additional ticket fields, you can update this function.

Update buttons on the notifications in your triage channel

To update buttons on the notification in your triage channel,

  1. Navigate to Workflows tab of your app and find the workflow named Notify triage channel when there is a new Zendesk ticket.

  2. Find the nodes named Send message to triage channel.

  3. Find Message blocks in these Slack actions and update Button block.

    Caution

    If you want to add a workflow that does not exist on the app, you first need to create it. After creating the workflow, you can then use it in the button block.

  4. Navigate to Workflows tab of your app and find the workflow named Sync triage and request channels with Zendesk ticket updates.

  5. Find the nodes named Update message in triage channel. You may apply the same changes you did for Notify triage channel when there is a new Zendesk ticket workflow.

  6. Find Message blocks in these Slack actions and update Button block.

Set another default channel for triage

To set another default channel to for new alert notifications,

  1. Navigate to Workflows tab of your app and find the workflow named App configuration.

  2. Run this workflow by selecting your new default triage channel.

  3. Do not forget to invite Actioner to the Slack channel you selected.

Set another triage channel for a request channel

To set another triage channel to for tickets created from a specific request channel,

  1. Navigate to Workflows tab of your app and find the workflow named Setup request and triage channels.

  2. Run this workflow by selecting your request and triage channels.

  3. Do not forget to invite Actioner to the Slack channels you selected.

Add a new request channel

To add a new request channel,

  1. Navigate to Workflows tab of your app and find the workflow named Setup request and triage channels.

  2. Run this workflow by selecting your request and triage channels.

  3. Do not forget to invite Actioner to the Slack channels you selected.

Update emoji to assign tickets to yourself

To use another emoji to assign tickets to yourself,

  1. Navigate to Workflows tab of your app and find the workflow named Assign the ticket when eyes 👀 emoji is added.

  2. Go to Trigger conditions of Eyes emoji added event.

  3. Update Rule 1 with the name of your emoji.

Update emoji to solve tickets

To use another emoji to solve tickets,

  1. Navigate to Workflows tab of your app and find the workflow named Solve the ticket when check mark ✅ emoji is added.

  2. Go to Trigger conditions of Checkmark emoji added event.

  3. Update Rule 1 with the name of your emoji.

Update emoji to create tickets

To use another emoji to create tickets,

  1. Navigate to Workflows tab of your app and find the workflow named Create a ticket when there is ticket 🎫 emoji.

  2. Go to Trigger conditions of Reaction added event.

  3. Update Rule 2 with the name of your emoji.

Create tickets when a Slack message contains or does not contain specific words

If you want to add such a filter to a workflow that is triggered with an emoji,

  1. Navigate to Workflows tab of your app and find below workflow named Create a ticket when there is ticket 🎫 emoji.

  2. Go to Trigger conditions of Reaction added event.

  3. Add a new rule with event.body.message.text filter.

If you want to add such a filter to a workflow that is triggered with a message,

  1. Navigate to Workflows tab of your app and find below workflow named Auto-create a ticket for new messages.

  2. Go to Trigger conditions of New message posted event.

  3. Add a new rule with event.body.message.text filter.