Zendesk

Transform Slack messages into tickets on Zendesk with bidirectional synchronization.

Overview

Zendesk offers a ticketing system designed to seamlessly connect your support team with customers.

The Thena <> Zendesk Integration is designed for Product Support Agents and Customer Success Managers, facilitating improved visibility of requests originating from Slack and enabling a bidirectional flow of information between Slack and Zendesk.

See in action

Workflow Overview

Using Zendesk and Thena at a high level creates a workflow that allows requests, which are more appropriate for the Support Team, to be synchronized bi-directionally between Slack and Zendesk. Here’s how it works:

  • A customer initiates contact in Slack.
  • A customer representative (likely a CSM or a related role) in the channel assesses the need for Zendesk support. They create a ticket using the workflow from Slack, webapp, or the Triage Channel. Tags, if configured in Thena, can automate triggers in Zendesk.
  • The ticket is created in both Thena and Zendesk. The team sees the new ticket in Zendesk, enabling them to prioritize and address the issue.
  • All relevant context shared by the customer or team (files, links, etc.) is also transferred to Zendesk.

Getting Started

Pre-requisites

  1. Zendesk API Token
    1. Generate a new API token by following the steps outlined in the Zendesk documentation here. Avoid using an existing token to prevent potential issues should the token be removed.
    2. Set up Thena Request Management on Slack by consulting the documentation here.

Integrating Zendesk

Follow these steps to integrate Thena with Zendesk

  • Go to Integrations in your Thena Web App 's Global settings.
  • Click on 'Connect' under the Zendesk integration.

Step 1. Basic Details

You should see the following model once you click on "Connect".

Provide the following information:

  • Username: Your Zendesk login email.
  • Token: Obtain this from the Zendesk API Token.
  • Base URL: Follows the format: https://[workspace name].zendesk.com/api/v2.
    For example, if your workspace is named acme, the URL would be https://acme.zendesk.com/api/v2.

Step 2. Webhooks & Triggers

Click on "Test connection" to automatically create webhooks, triggers, and fetch Zendesk forms & fields.

Once the actions are complete, your integration with Zendesk is up and running! Click on "Next" to continue.

🚧

Webhook & Trigger creation is mandatory; if it fails, you won't be able to proceed.

Non-mandatory steps like fetching forms & fields can be configured later.

Step 3. Forms & Fields

Form mapping is a crucial aspect of integrating Zendesk with Slack for efficient ticket creation. It involves configuring how information on Zendesk forms is presented on Slack channels.

Form Mapping

Global Configurations

Under global configuration for Forms, you can select all Zendesk forms that will prompt ticket creation in Slack channels

Channel Specific Configurations

  • For more granular control, you can configure channel-specific settings. This includes specifying which Zendesk form should be displayed on which channel/s.
  • Moreover, when dealing with multiple Zendesk instances such as Support, HR, and IT, etc a many-to-many mapping approach is implemented for forms.
  • This ensures that the integration accommodates different forms associated with distinct Zendesk instances.
  • Each channel can be linked to specific Zendesk forms based on the instance, optimizing the integration for various business functions.

🚧

Channel-specific configurations override the global settings, allowing for flexibility in different communication channels.

Field Mapping

Field mapping is crucial for aligning Zendesk fields with Thena metadata, facilitating the streamlined exchange of data between the two systems.

Map Zendesk Fields:

You can specify how Zendesk fields align with the metadata structure in Thena. This guarantees accurate information transfer between the two systems during ticket creation.

Use the "Back" button to return to the previous step. Click "Finish" to save your configurations and complete the setup process.

Advanced configuration for Zendesk on Slack

Thena enables seamless integration between Slack and Zendesk, offering advanced configuration options to customize the behavior of the Zendesk integration within your Slack workspace. You can tailor how tickets are previewed, created, and managed, with the option to configure settings globally, ensuring consistency across your integration. Additionally, you have the flexibility to exclude specific channels where these settings should not apply.

  • Zendesk Ticket Preview within Slack Thread: Toggle this to enable/disable the preview of Zendesk tickets in Slack. Channel exceptions can be specified.
  • Urgency Indicator within Zendesk Ticket Preview: Switch this on to display urgency indicators in ticket previews. Channel exceptions can be specified.
  • Send Slack Thread to Zendesk on Ticket Creation: While creating a ticket, include the entire Slack thread by enabling this. Channel exceptions can be specified.
  • Send AI Summary to Zendesk on Ticket Creation: On creation of ticket, include the AI Summary generated by Thena to Zendesk. Channel exceptions can be specified.
  • Send a message in the thread to fill out the form for ticket creation in Slack when "🎫" emoticon is added : You can use the "🎫" reaction on Slack messages to create tickets. When this configuration is enabled, adding the "🎫" reaction will trigger the ticket creation form, which you can fill and create a ticket. When disabled, adding the "🎫" reaction will create tickets automatically. Note: If the selected form has mandatory fields, you will need to fill in these details as an additional step. Channel exceptions can be specified.
  • Automatic Ticket Creation from Slack Thread Without Confirmation: Auto-create tickets from Slack threads based on message content, with options to exclude channels. Channel exceptions can be specified.
  • Send Customer as submitter on Zendesk: Enabling this feature ensures that the customer is listed as the requester on Zendesk, even when you create the ticket in the customer's thread. Channel exceptions can be specified.

πŸ‘

Ensure to review channel exceptions to fine-tune the integration as per your team's workflow.

Adding multiple instances on Zendesk

Once the details are added, you'll be redirected to the Setup screen. You can add more than one instance of Zendesk Helpdesk using the "add new helpdesk" option.

View & Edit the Zendesk instance setup details by clicking on it.

πŸ“˜

If you are using another version of Zendesk, please refer [this documentation]


Features

Ticket Create

In the integration between Slack and Zendesk, ticket creation is a vital component for efficiently managing customer inquiries. This feature allows for the easy initiation of tickets directly from both Slack and the Web App, ensuring a streamlined workflow and thorough information capture.

For a detailed guide on supported ticket creation methods, refer to this link.

  1. Ticket fields

    The following form pops up when a user selects to create a Zendesk ticket:

Field Specifications

Field NameDefault ValueType
TitleAI SummaryPlain Text
DescriptionExact MessageMulti-line Text
PriorityAI UrgencyRadio
TagsMulti Select/ Multi External SelectMulti-Select/Multi-External Select
Custom FieldsBased on the form fieldsDynamically fetched depending on the form selected

Other Supported fields: Assignee, Requestor Email, Title, Creation & closing Date, Tags, CSAT etc

Key Features:

Here's an overview of the key functionalities and how they enhance your user experience.

  • Multiple Instances & Form Handling

    This ensures the integration accommodates different forms associated with distinct Zendesk instances. Each channel can be linked to specific Zendesk forms based on the instance, optimizing the integration for various business functions. When initiating a ticket, the displayed form appears in the Slack UI.
    • Choose the relevant Zendesk instances using the Helpdesk field.
    • Specify which forms should be shown on specific channels or all channels based on the selected Zendesk instance using the Form field.
  • Fetching All Fields

    Although we fetch fields based on selected forms, it is essential to retrieve all fields, whether they are part of the form or not. This is because some fields may be required at the time of ticket creation or closure. To accomplish this, we utilize the Zendesk API.
  • Loading Screen and Error Handling

    During field retrieval, users will see a loading screen that indicates the fetching process. This screen has a timeout of 30 seconds. If errors occur or the Zendesk APIs do not respond within the specified time, an error screen will appear. Users are given options to go "Back" or "Retry," ensuring a seamless experience.
  • Autofill Support for Field Values

    Thena supports autofill by fetching real-time field values, providing users with a seamless and efficient data entry experience.
  • Requirements and characteristics of fields in Zendesk

AttributeDefinitionUsage
requiredThis indicates that the field is necessary for closing the ticket.When this attribute is set, it means the corresponding field must be filled or selected before the ticket can be closed.
required_in_portalThis signifies that the field is mandatory for ticket creation.When this attribute is set, it means the corresponding field must be filled or selected when creating a new ticket through the Zendesk portal.
regexp_for_validationThis is used for specifying the regular expression pattern for validation.It implies that there's a regular expression pattern defined for validating the input in the corresponding field. Users must adhere to this pattern for their input to be considered valid.
typeThis attribute provides information about the type of the field to be displayed.It helps define what kind of data or input is expected in the field. For example, it could indicate whether the field is for text, a dropdown, date, etc.
  • Zendesk and Thena Field Type Mapping

To enhance compatibility, the Zendesk field types are mapped to corresponding Thena/Slack field types:

Zendesk TypeThena/Slack Type to Use
Drop-down (tagger)Single Select
Multi-selectMulti Select
TextPlain Text
Multi-lineMulti-line Text
CheckboxCheckbox
NumericPlain Text
DecimalPlain Text
DateDate
RegexPlain Text

Ticket Update

A webhook is established to notify Thena of any updates. The entire ticket object is retrieved and mapped with the corresponding external ticket object in Thena, regardless of the nature of the update.

Updation of Standard & Custom Fields:

Users can modify various fields, including custom fields and standard fields.

FieldPossible ValuesUpdate Supported
*StatusIn Progress<>Closed<>On HoldYes
Urgency/PriorityLow, Medium, High, Critical,...Yes
AssigneeUsernames or IDs of available agentsYes
RequestorEmail addresses or usernames of usersYes
TitleTextYes
DescriptionTextYes
Created DateDate and timeNo
TagsArray of labels or tagsYes
CSATRatings, e.g., 1 to 5Yes

Note: Escalation flow, if present, will be considered in the integration.

*Thena status will be mapped to Zendesk statuses.

Updation of Comments:

Comments made on the ticket thread are synchronized between Zendesk, Slack, and the Web App. Any comment added to the ticket in Zendesk is posted as a comment in Slack and the Web App, and vice versa. Users can edit and delete comments, and these changes are reflected across all integrated platforms.

Workflow for Re-opening tickets

πŸ“˜

Zendesk's "Solved" versus "Closed" states involve a configurable duration during which a "solved" ticket can be reopened upon customer response. If this duration has passed, the ticket moves to "Closed," and Zendesk does not allow reopening a closed ticket. Instead, a follow-up ticket is created.

For additional information, please refer to Zendesk Automation.

Before attempting to re-open a ticket, we verify it's status in Zendesk. If it is closed, we allow Zendesk to create the follow-up ticket and utilize this information in the new message posted on the channel.

Current State:

  • Agent solves a ticket and marks it as closed.
  • The customer returns after a few days (or hours) to ask additional questions on Slack.
  • The ticket in Zendesk remains closed, disrupting bi-directional sync.

The agent (in Zendesk) is unaware of the customer's follow-up, potentially leading to an SLA breach.

Thena Functionality:

We facilitate both re-opening a ticket and creating a new ticket when a customer responds to a closed Zendesk ticket.

Re-opening a Ticket:

  • After the customer responds, we attempt to reopen the ticket, moving it to "In Progress," provided the Zendesk ticket is marked as solved.
  • When a Zendesk ticket is reopened, the default status in Zendesk is "Open." However, this can be configured to default to other Zendesk statuses; you can reach out to your account manager for this.

New follow-up Ticket

If re-opening is not possible due to Zendesk limitations or the ticket being closed in Zendesk. We create a new follow-up Zendesk ticket.

πŸ“˜

When sending the ticket attachment message in the Slack thread, we update the text from "Zendesk Case ID: 2234" to "Follow up Zendesk Case ID: 2235."

Bidirectional Ticket Integration

Below provides a comprehensive comparison of features in the bidirectional ticket integration between Slack and Zendesk.

Messages

Rich Text Formatting

FeatureSlack to ZendeskZendesk to SlackSupported By Thena
Bold textβœ”βœ”βœ”
Italic textβœ”βœ”βœ”
Underlined text❌❌❌
Strikethrough textβœ”βœ”βœ”
Colored text❌❌❌
Bulleted listsβœ”βœ”βœ”
Numbered listsβœ”βœ”βœ”
Indented textβœ”βœ”βœ”
Quoted textβœ”βœ”βœ”
URLs in Messagesβœ”βœ”βœ”
Hyperlinks in Messagesβœ”βœ”βœ”
Inline Codeβœ”βœ”βœ”
Code Blocksβœ”βœ”βœ”

Mentions and Notifications

FeatureSlack to ZendeskZendesk to SlackSupported By Thena
User mentionsβœ”βœ”βœ”
Channel mentionsβœ”βœ”βœ”
User Group mentionsβœ”βœ”βœ”

Attachments

File Sharing

FeatureSlack to ZendeskZendesk to SlackSupported By Thena
Image files (All types)βœ”βœ”βœ”
PDF filesβœ”βœ”βœ”
Word documentsβœ”βœ”βœ”
Excel spreadsheetsβœ”βœ”βœ”
PowerPoint presentationsβœ”βœ”βœ”
Audio filesβœ”βœ”βœ”
Video filesβœ”βœ”βœ”
Zip filesβœ”βœ”βœ”
Text filesβœ”βœ”βœ”
CSV filesβœ”βœ”βœ”
GIF filesβœ”βœ”βœ”
JPEG imagesβœ”βœ”βœ”
PNG imagesβœ”βœ”βœ”
BMP imagesβœ”βœ”βœ”
SVG imagesβœ”βœ”βœ”
PDF documentsβœ”βœ”βœ”
Word documentsβœ”βœ”βœ”
Excel spreadsheetsβœ”βœ”βœ”
PowerPoint presentationsβœ”βœ”βœ”
Text filesβœ”βœ”βœ”
MP3 audio filesβœ”βœ”βœ”
WAV audio filesβœ”βœ”βœ”
MP4 video filesβœ”βœ”βœ”
AVI video filesβœ”βœ”βœ”

Other

Emoticon Support

FeatureSlackZendeskSupported By Thena
Standard emojisβœ”βœ”βœ”
Custom emojisβœ”βœ”βœ”
Animated emojisβœ”βœ”βœ”
Emoji reactions to messagesβœ”βœ”βœ”
Emoji shortcutsβœ”βœ”βœ”

Link Previews

FeatureSlackZendeskSupported By Thena
Website link previewsβœ”βœ”βœ”
Video link previewsβœ”βœ”βœ”
Image link previewsβœ”βœ”βœ”

🚧

File size exceeding limits

In the scenario of an attachment, a file (which is greater than50MB on Slack) is added to a comment/message respectively, the attachment would not be posted to the destination due to the file size limit imposted by Zendesk


FAQs

How do I migrate from my current Zendesk Integration to the updated External Ticketing?

If you're looking to transition to our enhanced External Ticketing system, please contact your designated point of contact (PoC) at Thena. Our team is ready to facilitate a smooth migration process for you.

What Enhancements Can You Expect with the New External Ticketing System?

Upon transitioning to the new External Ticketing System, you'll benefit from a suite of improvements designed to enhance your workflow and broaden integration capabilities:

  • Multi-Account Linking

    • Effortlessly link multiple Zendesk accounts to a single Slack workspace for a unified ticketing experience.
  • Custom Field Mapping

    • Gain the flexibility to map Thena-specific fields, such as Slack channel and message permalink, to custom fields within Zendesk for improved data alignment.
  • Revamped UI for Zendesk Integration

    • Experience a completely redesigned user interface for Zendesk integration and management within Thena, aimed at simplifying navigation and functionality.
  • Enhanced Ticket Management

    • Implement mandatory fields for ticket creation and closure directly from Slack, ensuring all necessary information is captured from the start.
  • Real-Time Synchronization

    • Benefit from real-time updates of tags and fields between Thena and Zendesk, keeping ticket information current and synchronized.
  • Improved Slack Modal for Form Creation

    • The Slack modal for form creation has been updated to include:
      • Dynamic Forms and Fields: Customize the ticket submission process to suit specific needs.
      • Type-Ahead Search for Priority Selection: Move from radio buttons to a direct Zendesk query for priority selection, enhancing user experience.
      • Simplified Ticket Creation Modal: Default Thena tags have been removed, and the message has been updated to guide users more effectively through the submission process.
        • Previous Message: "Hi :wave: Dave. Tell us more."
        • New Message: "Hi Dave. Please fill out the following information to provide our support team with full context regarding your issue. Submitting this form will generate a ticket in our support queue."
  • Streamlined Ticket Details

    • The request type (e.g., Tech Support, Account Management) has been removed from the ticket details message sent in the thread for a cleaner and more focused presentation.
  • Consolidated Webhook Configuration
    In an effort to streamline integration and simplify management, the previous approach of creating two separate webhooksβ€”one for comment updates and another for status changesβ€”has been revised. Now, a single webhook is utilized to handle both comment and status updates, enhancing efficiency and reducing complexity in webhook management within Zendesk.

These updates reflect our commitment to delivering a seamless, efficient, and user-friendly ticketing experience through our integration with Zendesk.

Why are some of my customer requests showing up as requested by the Zendesk admin?

Each Slack workspace has the ability to choose whether or not to display a member's email address. If the workspace has set this to No one, then Slack does not provide the email address of your customers through its API (image below)

The email is critical for our Zendesk integration to work. This is because we sync contacts between Slack and Zendesk using the email object. If the email id is not provided by Slack, Thena will automatically assign it to the Zendesk admin that setup the Thena integration.

Why are responses by my agent from Zendesk showing up as they are sent as Thena on Slack?

Thena whitelables the responses with the agent name and profile picture. If your agent's response is being delivered on Slack with the Thena icon and name, one of the following is the root cause:

  • Agent user does NOT exists on Slack
  • Agent has a different email on Slack vs that on Zendesk (case sensitive)

What happens if a ticket is raised on behalf of a user that does not exist on Zendesk?

In this scenario, Thena will automatically create a new user in Zendesk.

Why does the 'Requested By' dropdown show up when I am creating a ticket

In a private channel, we do not pull the user data to cater to privacy. That is why, you are asked to explicitly add the requestor in order to send it to Zendesk. This is then used to map and show the relevant user in Zendesk.

Does Priority sync work for the Zendesk integration?

Yes - We sync both Status and Priority bi-directionally.

Will an OAuth for Zendesk be available?

Yes - we are currently working on having an O-Auth enabled integration with Zendesk. Once completed, you will no longer need to do a one time setup of Webhooks and associated Triggers in Zendesk.

Should I create a new Admin user in Zendesk for the integration?

This is optional - You can continue to use an existing admin account, or create a new user.

What happens if I create the integration in Zendesk as an Agent (and not as an Admin)?

If the integration is setup as an agent, then the Zendesk API ends up passing a lot of customer messages as a message from the Zendesk Thena admin, instead of mapping the message correctly.

Why am I unable to receive hyperlinked text in Slack when I send a message through Zendesk?

This is due to the limitations with the Zendesk Webhooks which do not support complete HTML.
As an alternative, you can share the exact link instead of hyper linking Eg: https://example.com/ instead of Example

Am I able to track the ticketing volume from Thena/Slack in Zendesk?

Yes, you can enable what's known as a default tag to send to Zendesk. This can be something like thenaSlackRequest. All requests that originate from Slack will have the default tag applied. To request default tagging, please reach out to the Thena team.

Will Internal notes in Zendesk be visible on Slack?

No - Internal notes are viewed as collaboration within the Support team. As a result, we do not show the internal notes to the customer.

What happens if the user who's message is being converted into a ticket is suspended in Zendesk

When converting a Slack message to a Zendesk ticket, if the user who sent theoriginal message in Slack is marked as suspended in Zendesk, we try to un-suspend the user in Zendesk and if Zendesk does not allow un-suspending the users, we fallback to create the ticket using the admin user who had integrated Thena with Zendesk.

Why did a reply from a fellow support agent become an internal note?

As per Zendesk's documentation below, this is an expected outcome. Link to Zendesk documentation.

How do I disable emails for tickets created via Slack?

🚧

Please share the name of your tag with Thena

Please go through the steps below on Zendesk and then share this tag with us and we will configure this tag to be sent with all of your tickets.

Go to Zendesk Admin pannel --> Object and Rules --> Business Rules --> Triggers --> Notify

  • Select Trigger - Notify requester and CCs of comment update
  • Add a condition of tag contains non of the following: {{yourslacktag}}

What occurs when a Zendesk ticket is closed, and the customer replies to the Slack thread for a follow-up question?

πŸ“˜

Zendesk's "Solved" vs. "Closed" states involve a configurable duration during which a "solved" ticket can be reopened upon customer response. If this duration has passed, the ticket moves to "Closed, Zendesk does not allow reopening of a closed ticket. Instead, we create a follow-up ticket.

When a Zendesk ticket is closed, and the customer responds in the Slack thread with a follow-up question, we create a new ticket in Zendesk as a follow-up to previous ticket. This process continues with subsequent follow-up tickets for ongoing communication.

Here is an example of how this process works:

Let's say the Zendesk closure automation is set to two days.

A customer submits a request on Slack which initiates the creation of a Zendesk ticket (T1).

The support team resolves the issue and marks the ticket as Solved, which results in the ticket being closed due to the Zendesk automation.

After two days, the customer has a follow-up question and responds on the Slack thread. As T1 is closed, this triggers the automatic creation of a follow-up ticket (T2) in Zendesk, which is a follow up ticket to Ticket T1.

The vendor works on the follow-up ticket (T2) and marks it as solved in Zendesk, ultimately resulting in its closure due to Zendesk Automation.

If the customer responds again on the Slack thread after the closure of T2, it triggers the generation of another follow-up ticket (T3) in Zendesk. This new ticket (T3) serves as a follow-up to T2.

Can we close the Ticket using emoticons?

The tickets cannot be closed using Emoticons.

What Type of Authentication Does Thena Use to Authenticate into Zendesk?

Thena integrates with Zendesk using API token integration, rather than OAuth or basic authentication methods. This means you won't need to provide your username and password for the integration. Whether you're integrating a single Zendesk (ZD) instance or multiple ZD instances, our approach remains consistent. To set up the integration, you will need to log into your ZD instance using a service account and generate an API token with this account. For successful integration with Thena, we require the following three items:

  1. User email associated with the Zendesk account
  2. Zendesk URL
  3. Zendesk API token

It's important to note that you do not need to log into the Thena web application with this service account. This method ensures a secure and efficient integration process, aligning with Zendesk's documentation, which advises against using basic authentication if your organization uses Single Sign-On (SSO) or two-factor authentication.

Can I Integrate with Thena if I Use SSO for Zendesk?

Yes, you can still integrate with Thena even if your organization uses Single Sign-On (SSO) or two-factor authentication in your Zendesk user profile. Since Thena utilizes API token integration to connect with Zendesk, the use of SSO or two-factor authentication does not hinder the integration process. You will need to log into your Zendesk instance using a service account specifically to generate the required API token. This approach aligns with Zendesk's recommendation to use an API token or another OAuth access token instead of basic authentication under such security settings. For integration, you will need to provide the user email, Zendesk URL, and the generated API token. This ensures a secure and seamless integration without compromising your organization's authentication protocols.

I can see the fields in my Zendesk form but those are not available in the form in Slack, how can I keep same forms on Zendesk and Slack?

Not all fields in Zendesk forms are accessible and editable when they appear in Slack. This discrepancy occurs because only fields that are editable by the end user in Zendesk are carried over to the Slack form. If a field is mandatory for creating a request in Zendesk, it will automatically be included in the Slack form to ensure consistency in the request creation process. To manage and understand which fields will appear in your Slack form, you should review the field permissions in Zendesk.

For more details on managing field permissions in Zendesk, refer to the Zendesk field permissions documentation.

Are conditional forms on Zendesk supported in Slack with Thena?

Currently, the conditional logic used in Zendesk forms does not directly translate to Slack when using Thena. However, support for conditional forms in Slack via Thena is under development and expected to be released soon. This means that in the near future, you will be able to create more dynamic and context-sensitive forms in Slack that behave similarly to their Zendesk counterparts. Stay tuned for updates on the availability of this feature.