Jira Zendesk Integration: The Comprehensive Step-by-Step 2021 Guide

Jira Zendesk Integration

You might have different teams working in different environments. Helping these teams work in harmony and having data shared in the most autonomous and flexible way possible is one of the key factors that can guarantee your business success. For instance, if you are using Jira for development and Zendesk for support, then a Jira Zendesk integration is what can make your workflow much smoother. 

Using the right technology to do the hard work lets your developers focus on development and your support team focus on customers. This way, your priorities are respected and your customers are always satisfied.  

When you are setting up an integration, you first need to make sure you choose the right technology, you’re aware of your goals, and you have foreseen the potential pitfalls. In this guide, we’ll cover these and then see how to set us an integration following a few straightforward steps.

Here’s what is going to be covered in this blog post:

The Benefits of a Jira Zendesk Integration 

What is Jira?

Jira is a project management tool, designed for tracking issues and bugs. It is geared towards agile development and is popular with development teams working on software projects.

It uses issues as the main unit of information and you can organize these on its scrum and kanban boards. 

What is Zendesk?

Zendesk is an automated help desk platform that lets you manage customers easily. That makes it a good option for any team that deals directly with clients and It is great for customer support, marketing, and sales teams.

Its approach is based on tickets. You can use the data on these tickets to integrate it with other platforms.

Jira and Zendesk are both extensible platforms with many apps in their marketplace that add extra functionality. That’s something you can take advantage of when integrating the two platforms while working in the comfort of your familiar environment. 

A Jira Zendesk integration can be hugely beneficial to both sides of the connection. In practice, you will be exchanging information between Jira issues and Zendesk tickets, so you need a system that can pick which issues and tickets need to be shared, and then filter the specific information you need, leaving just what the other team needs to know.

Choosing the Right Technology for a Jira Zendesk Integration 

To make sure your integration delivers its best, it’s also important to keep a few features in mind when choosing the right integration solution.

Autonomy

The purpose of your integration is to share data automatically without having to leave your trusted environment. The integration should enable everyone to tune their side of the integration independently without jeopardizing security.

Each side of the integration should be able to control what they send out and change how they deal with incoming data. That gives you the right balance of autonomy and security and lets everyone work efficiently.

Flexibility

When you set your integration up, you’ll need to decide what is shared and when the synchronization happens. The decisions you make at first may need to be changed later, as you gain an understanding of what your integration can do. 

You may want to share additional fields, or use more advanced logic to process items, and a team might want to filter some of it out. Your integration solution must be flexible enough to enable these changes easily. You should be able to adapt it quickly. 

Reliability

Sometimes computer systems break down. As your integration is dealing with two different platforms, it should be able to deal with potential issues on either side, as well as general connection outages.

If your integration solution can’t handle outages properly, it may crash or need to be set up again. That means extra work for you.

When one side is unavailable, your integration should manage to handle the problem gracefully. If ticket exchange isn’t possible, it should be able to wait and then try again later, resuming automatically when the connection is restored.

The tool I’m going to use for my Jira Zendesk integration is called Exalate. Exalate was designed with these three issues in mind and is built to solve the challenges that arise when connecting platforms. 

Now, let’s set up a Jira Zendesk integration. 

How to Integrate Jira and Zendesk in 6 Steps 

I’ll start by installing Exalate on both platforms. Then I’ll create a connection between them. Once the connection is set up, you can configure it to control what it sends and then define the conditions for data exchange. 

Step 1 – Install Exalate on Jira

This tutorial uses Jira Cloud, which you can read more about here. You can also check out the Exalate documentation for Jira Server.

Log in to your Jira instance and find the Exalate app in the Atlassian marketplace. To do that, click the cog in the top right, and select “apps” from the menu.

If you aren’t taken straight to the marketplace, click “Find new apps” in the left-side menu, and type “Exalate” into the search field. You should see a list of Exalate add-ons appear with “Exalate Jira Issue Sync & more” at the top.

Exalate Jira issue sync

Click that, and choose “Try it free”. A confirmation screen will appear. Click the “Start free trial” button. 

After a brief pause, you’ll see a popup appear saying Exalate has been installed successfully. Click “get started”. You’ll see the initiate connection button highlighted, but we’re going to leave Jira for the time being. We’ll return later on.

Step 2 – Install Exalate on Zendesk

Next, you need to install Exalate on your Zendesk instance. Log in, then click the cog in the left-side menu. Go to the marketplace and type “Exalate” in the search field. 

On its store listing page, click “Install”. A pop-up will appear. Select your account from the drop down list and click “Install” again.

Install Exalate on Zendesk

You’ll be taken back into Zendesk with another install screen. On this screen, you can change the Exalate app’s name if you want to refer to it as something else. You can also set role and group restrictions if you want to limit who can use it.

Change those if you need to, and then click the “Install” button. Exalate will now install itself. You’ll see its icon listed under the settings cog in the left side menu. Click the Exalate icon now.

Allow Exalate to access Zendesk account

When you access it for the first time, Exalate will ask for permission to read and write data. Click “Allow” to give it the permissions.

Exalate license agreement

Next, you’ll have to accept Exalate’s user licence agreement. Click the green “Accept” button to do so.

Finally, you need to add a license to your installation. Click on the 30-day trial image. Enter your email address in the popup that appears, and click “Send”. Check your inbox for the license activation mail. When it arrives, copy the code you get onto the clipboard.

Exalate license key

Click the license button at the bottom of the Exalate license screen. Scroll down from the 30-day licence image to find it. When you click it, a license key field will appear. Paste the code from your email into the field.

Click “Update” and Exalate will register the license for you. You are now ready to go. 

Step 3 – Connect Your Jira and Zendesk Instances

Now that you’ve installed Exalate on both platforms, you can connect the two. To create the connection, you need to initiate it on one side and generate an invitation code that you can paste into the other. 

You can start in either Jira or Zendesk. Exalate gives you a consistent interface across platforms so the process is the same either way. This guide uses Zendesk, so if you aren’t there already, log in, select the Exalate icon on the left, and then click “Connections” in Exalate’s left-side menu.

initiate Jira Zendesk connection

You can see all your connections here. To create your first one, click the green “Initiate connection” button. 

destination instance type for a jira zendesk sync

First, you need to choose the type of your “destination instance”’. You can choose “Public” or “Private” depending on what kind of access you have to it. If you’re not sure which to pick, read this

You can also pick “Local” if you want to synchronize projects on the same instance. 

I’m using “Public”. When you’ve made your selection, click “Next”.

Using the Visual Mode 

On the next screen you can choose whether to use visual mode to set up your connection. Visual mode gives you a straightforward interface that many people find easier to work with than scripting. It also lets you configure things once, instead of separately for each side of the connection. 

On the other hand scripting lets you use advanced decision making, so will be better in some cases.

Exalate visual mode for a Zendesk Jira integration

I’ll now describe how to set things up in visual mode. After this section, you can read on to see how to do things using scripting. If you want to use visual mode you’ll need to verify that you have access to the other side of the connection. Click “Verify admin access” to do that.

Click “Accept” to allow access. You’ll then be taken back to the other window where you’ll see your verification confirmed. Click “Next”.

initiate Jira Zendesk sync in visual mode

Next, there’s a brief wait while Exalate tries to establish a connection. After a while, you can click the green button to configure your connection.

jira zendesk sync rules in visual mode

Here you can see various controls to let you choose what is shared over the connection. On the Jira side of the connection, there is a “Select Project” dropdown box that lets you pick a project to use for synchronization.

Jira and Zendesk both have a filter entities button, which lets you choose what filters are applied to the items. Items that match the filters will be synchronized.

zendesk jira integration filters

If you click the button, a popup will appear showing you the various filter options. In some cases, like the “Issue type” filter, you use a dropdown box to select from the choices available. In others, you can type in the box to select from the entries there. 

With the description and summary fields, you can enter specific values you want to match. Lastly, the assignee and reporter fields let you filter items associated with specific people.

When you’ve made your choices, click “Save”. You can do this for both the Jira and Zendesk sides of the connection.

In the middle of the screen you can see “Sync method” controls which let you choose the sync method in both directions. You can choose manual or automatic synchronization, or disable it altogether, which means you can make a one or two-way connection.

When you’re happy with the filters you’ve set, click “Next”. Here you can use field mappings to control what happens when items are synced. You might want to map similar items directly onto each other, or you might want to pipe fields to other fields.

Jira to Zendesk mapping

Exalate will create some defaults for you the first time you do this. As you can see in the above image, identically or similarly named fields are mapped together.

You can drag and drop these rules if you want to reorder them. The icons on the right of each mapping allow you to edit or delete them. If you select the edit button, you can choose to have that specific field mapped in one direction only, or the default which is both directions. 

edit jira zendesk sync mapping

You can also select a default value if there is no value on the other side. Perhaps you want to make an issue’s type “From Jira”, so you can see that it has come from your connection. You could also pass unassigned issues to a specific person in the same way.

If you want to map each field to a different one, you can use the dropdown box to change them. You also have the option to report an error if a field is blank when you were expecting it to be populated. 

Some fields, such as comments in the screenshot above, have additional checkboxes allowing you to filter them in more detail. Here, you can choose whether or not to sync internal or external comments, as well as whether to sync the original comment author.

add mapping in Exalate visual mode

To add a completely new mapping, click the “Add mapping” button at the top right. The add mapping popup works in a similar way to the edit popup. The only difference is you have to pick the fields to get started. 

Once you’ve selected the fields, further controls may appear allowing you to set conditions, as in the edit mapping popup. When you’ve set things up as you like, click “Save” and the new mapping will be created.

add script to jira zendesk sync

Click the arrow next to the “Add mapping” button and you’ll also see the “Add script” button. Click this and you’ll see a further popup letting you add rules using a simple scripting language.

Visual mode works better for simple rules, but scripting allows you to get more creative. Read this to learn more.

You add rules by typing them into the field. A few examples are shown when you open the page. 

If you want to sync a field you can type something like jira.issue.labels = zendesk.issue.labels. If you want to set a specific value for Jira’s labels, you can change that to jira.issue.labels = “synced from Zendesk”.

After adding the scripting rules, click “Save” to go back to the main screen.

When you’ve got everything set up, click the “Publish” button. With visual mode, that’s all you need to do. You can edit the connection later by clicking the “Connections” entry in the left hand menu, clicking the edit icon on the connection you want to change and going through these steps again.

You can skip the next steps entirely if you only want to use visual mode.

Advanced Synchronization with Scripting

If you don’t want to use visual mode, select the other option, scripting. 

On the next screen, you need to enter the URL of the destination instance, so in this case, that’s your Jira node URL.

After that, several more fields appear. There are fields to name both your local and destination instances. Exalate will use those to generate the connection name automatically, but you can adjust it if you like.

There is also an optional description field especially helpful if you have multiple connections or if different people are working with them.

When done, click “Next”. You’ll learn how to configure Exalate fully in steps 4 and 5. For now, click “Initiate”.

copy Exalate invitation code

Exalate will now generate an invitation code for you. Copy it to your clipboard. Then paste the code somewhere safe, such as a text editor. 

If you click the “Go to remote” button, you’ll be taken directly to the connections screen on your other instance. Note that you may have to log in first.

If you’re not already on Jira’s connections screen, navigate there by clicking “Add-ons” on Jira’s top menu, followed by “Connections” from the left-side menu under the “Exalate” heading.

accept exalate invitation code

“Accept invitation”, paste the invitation code, and click “Next”. 

jira zendesk sync rules

You’re asked if you want to use a single project sync rules template or an advanced one. Leave the default “Single project”.

accept invitation to a jira zendesk integration

Next, you need to choose a project for synchronization on the Jira side. Choose one from the drop-down list, and then click “Confirm”.

Exalate connections

After your connection is set up,you can see the connection listed on the “Connections” screen in both Jira and Zendesk. 

In the next steps, you’ll learn how to configure the connection.

Step 4 – Configure Your Connection to Determine What Gets Shared

When Exalate synchronizes items, it copies data from the fields in one side of the connection to those on the other. Often it is obvious which fields should match the other side. You can customize the mappings as you see fit.

You can also set specific values for synchronized tickets, or use advanced programming logic to fill in the information. In this step you’ll see how to make the changes you need.

To get started, go to your “connections” tab. You can delete the connection or activate and deactivate it here. There’s also a button to switch to the other side of the connection.

Edit jira zendesk connection

Click “Edit connection”. You’ll see four tabs on the next screen with “Triggers” selected by default, along with “Rules”, “Statistics” and “Info”. 

The statistics tab shows you how many issues, comments and attachments are under sync and when synchronization last took place. The info tab shows you the connection’s name, type and description and also the destination URL.

zendesk jira sync rules

In step 5, you’ll look closely at the triggers. For now, click the “Rules” tab. Here you can see two sets of rules.

You can do this and the next step in either Jira or Zendesk. I’m using Zendesk. It basically works the same way, but the incoming and outgoing sync rules are relative to each platform, so refer to different things in each case.

Looking at the outgoing rules, we can see how Zendesk ticket issues are mapped to the outgoing replica. In this case all fields are mapped to equivalents with the same name.

If there’s any data here you don’t want to share, you can remove it. You can do that permanently by deleting the line, or temporarily by making the line a comment. You comment lines by adding “//” to the start. You can comment blocks by adding “/*” to the beginning and “*/” to the end of the section you want to comment.

If you want to give a specific value to a field, you can do that by replacing any of the issue values with a specified value in quotes. For example, instead of replica.type = issue.type, you can use replica.type = “sent from Zendesk”. 

The incoming rules show you how the data coming from Jira is used to create matching Zendesk tickets. Again, you can specify any values you want, or comment out any you don’t want to use.

There are also advanced ‘script helpers’ which handle complex processing for you. For example in the incoming sync rules, the line issue.attachments  = attachmentHelper.mergeAttachments(issue, replica) uses a helper to process attachments. 

Attachments are complicated, and may contain different file types, so using a helper can make your life much simpler.

There are many different helpers available. Read this guide to learn more. 

Step 5 – Set Up Automated Synchronization Triggers

Synchronization triggers determine the conditions under which issues and tickets are synchronized. You might want to synchronize all issues of a particular type, or everything assigned to a particular team member. You might want to create a tag that one team can use that marks those items for sharing with the other team. 

Whatever conditions you want to set, it is likely you can implement them with Exalate. The process for creating triggers is the same in Jira and Zendesk, but they each use a different language. Jira uses Jira Query Language, or JQL for short. Zendesk uses Zendesk search syntax.

Here’s a guide to setting it up in Jira, and here’s one for Zendesk. For the rest of this step, I’ll use Zendesk to create a trigger.

If you’re following this tutorial step by step, you should be in the edit connection screen. If not, get there by clicking “Connections” from Exalate’s left side menu, then clicking the edit button.

jira to zendesk sync triggers

Then click the “Triggers” tab. On this screen, click the “+ Create trigger” button on the right. You can access a similar screen by clicking “Triggers” from Exalate’s left hand menu. That gives you a similar interface, but you’ll have to specify the connection for each trigger.

add triggers to an integration

There are several fields on the add trigger popup. There’s a drop-down box to let you choose the entity type the trigger applies to. In this case that will be tickets.

Next, there’s a box where you can enter your query. Here in Zendesk I’ve used type:ticket status:open. That will synchronize all open tickets. I’ve also added a description to that effect in the box below. As with connections, it is a good idea to fill out description fields with as much information as possible.

There’s also a switch to turn the trigger on and off, which I’ve activated. When everything is ready, click the green “Add” button.

jira zendesk connection triggers

You should see the trigger listed on the previous screen.

Step 6 – Start Synchronizing Tasks

You’ve set your connection up and defined what is shared. You’ve also set the conditions for synchronization. When an issue meets those conditions, it will be synced. 

For performance reasons, Exalate checks for matching items periodically, so if you don’t see the sync begin immediately, check again after a few minutes.

After a while, you should see the synced items reflected in the connection entry in the connections list. If not, make sure your sync rules and triggers are set up correctly. Don’t be afraid to make adjustments and test them until everything is working as you intend.

Common Use Cases 

Here are a few examples of situations where you can improve your workflows using a Jira Zendesk integration.

Customer Service Team and Development Team

If your customer service team uses Zendesk and your developers use Jira, there is likely to be potential for useful information exchange. The customer service team will use Zendesk to create tickets, based on their interactions with customers. These tickets will include details of problems and bugs. 

Some of these issues can be dealt with by the customer service team, but if they see something they haven’t encountered before, it will be of interest to the developers. You can use Exalate to transfer these issues from Zendesk to Jira under conditions you specify. 

One way would be to define a tag, ‘dev team’, for example, that can be used to mark tickets that support can’t handle themselves. 

These tickets can then be automatically transferred to Jira. The devs can look at them, and mark them as ‘resolved’ when they come up with a solution. Exalate can look for the ‘resolved’ tickets and send the solutions back to Zendesk. The customer service team can then provide the customers with a resolution to their problem.

Market Research and Design Teams

Your marketing team studies your customer base and finds out what they want. The design team converts these needs into product features. The marketing team will want to know about new features so they can conduct further research, to see what consumers think of them. Designers will want to know about the feedback.

The teams are often looking at the same issues, but will want to handle them independently. The market research team will collect a lot of data, but will focus on a subset of it when analyzing it and drawing conclusions. The design team only wants to see what they learn.

Using an automated tool to share the relevant data between these teams leaves them both free to do their own work, while taking advantage of each other’s data.

Sales Team and Onboarding Team for Online Services

If you’re making services available online, you may use Zendesk for sales, and Jira to manage your user data. Your sales team will work with clients to set up contracts. During this process they’ll collect a variety of data, stored on Zendesk. When they make a sale, you’ll want to transfer some of this information to Jira. 

An integration tool can do this automatically, filtering the data and transferring what’s needed to Jira tickets. Your onboarding team can use these tickets to help set the new customers up with their accounts.

Conclusion 

There are many benefits to connecting software platforms. A Jira Zendesk integration can increase their productivity and let them take advantage of their unique strengths. 

Exalate lets you do this easily and gives you a flexible interface which you can use to control the integration. You can share what you want and set the conditions for sharing. All of it can be easily adjusted, as well as switched on and off quickly.

Recommended Reads:

Add a Comment

Your email address will not be published. Required fields are marked *