How to Synchronize a Zendesk Ticket to Multiple Jira Cloud Instances

sync multiple zendesk tickets a jira issue

This article was originally published on the Atlassian and Zendesk Communities

If you use Zendesk and Jira Cloud, you may want to synchronize tickets between the two platforms. This synchronization can help you keep track of customer issues and ensure they are promptly addressed.

To synchronize a ticket to multiple Jira Cloud instances, you can use Exalate. Exalate is a third-party tool that allows you to connect different software applications and sync data between them.

Jump to:

The Use Case

When a customer ticket arrives in Zendesk, it is automatically synced to multiple Jira Cloud instances. 

For the purpose of this use case, we consider one Zendesk instance and two Jira Cloud instances, the yellow (Y) Jira and the Blue (B) Jira. We will sync the ticket from Zendesk to instance Y in two different projects, project A and project B. We will also sync the ticket with instance B.  

zendesk to jira link

We need an advanced integration solution to achieve this kind of flexibility, allowing us to sync a single entity to multiple locations. 

The solution we will use here is called Exalate. 

Exalate: A Customizable Integration Solution

Exalate is a unique integration solution that supports synchronization between multiple platforms like Jira, Zendesk, Azure DevOps, Salesforce, ServiceNow, etc. 

It has some features that make it an ideal solution for implementing complicated integrations: 

  • It uses an advanced scripting engine based on low-code Groovy scripts. This lets users implement custom configurations. 
  • It has a decentralized integration architecture. This allows you to control the source and destination information independently. 
  • It has security features like single-tenant architecture, JWT tokens, encrypted data, etc. This makes it secure by design. 
  • It has an embedded retry mechanism. This helps you resume your synchronization from the point at which it was interrupted. 

Let’s implement the use case with a step-by-step process using Exalate. 

Note: You can watch the video here

How to Connect a Single Zendesk Ticket To Multiple Jira Cloud Instances Using Exalate?

Step 1: Install Exalate on Zendesk and All Jira Cloud Instances. 

To use Exalate to sync a single ticket to multiple Jira Cloud instances, you must install it on your Zendesk and all Jira Cloud (Y and B) instances. Exalate is a decentralized integration solution that requires all integration parties to install the application on their platforms. 

exalate on marketplace

You can install Exalate for Zendesk from the Zendesk marketplace and Exalate for Jira from the Atlassian Marketplace

exalate zendesk marketplace

Step 2: Create Connections Between the Zendesk and Jira Instances

Now, you must connect all the instances together. Connect the Zendesk instance to the Jira Y instance (project A and project B) and also to the Jira B instance. 

The following connections must exist: 

  • Connection Zendesk – Jira Y (project A)
  • Connection Zendesk -Jira Y (project B)
  • Connection Zendesk -Jira B

This way, there can be any number of Jira instances you can connect to. 

The process to set up a connection using Exalate is simple and straightforward. One side initiates the connection, and the other side accepts the connection invitation. It doesn’t matter which side starts initiating the connection; the interface remains the same. 

We’ll start all the connections from the Zendesk instance.  

Head to the “Connections” tab in the Zendesk Exalate admin console and click “Initiate connection”. 

exalate for zendesk

Enter the destination Jira instance Y URL. 

Configuration modes in Exalate

You’ll be prompted to choose between three Exalate modes. The Basic and the Visual Mode are no-code modes, whereas the Script mode is a low-code mode based on Groovy scripts for simple to complex use cases. 

Select the “Script mode” and click “Next”.

Enter the connection details. We are keeping the connection names as per the list above. In this case, the connection name is Zendesk – Jira Y. 

exalate initiate connection

An invitation code is generated. Copy it. Click “Done”.

exalate invite code

Open the Jira Y instance’s Exalate console, and this time, click “Accept invitation” under the “Connections” tab. 

Paste the invitation code in the text box. 

exalate invitation code

Select project A, the project in which the Zendesk ticket must arrive. 

invite project a

That’s it. You have connected your Zendesk instance to Jira Y (project A). 

established connection

Proceed to create the remaining connections in a similar manner. 

Step 3: Set the Sync Rules for Information Exchange

Once all your instances are connected, you can configure the sync under the “Rules” and “Triggers” tab. These tabs appear when you click “Configure sync” after the connection is established or when you edit the connection.  

outgoing sync exalate

Sync rules govern the information flow. You can specify the fields you want to sync under this tab. You can choose to sync all fields or select only specific ones. You can also choose the direction of the sync. 

After making changes to the sync rules, click the “Publish” button to save them. 

Upon specifying the entity fields you want to sync, proceed to the next important step. 

Step 4: Create Triggers for Syncing Zendesk Tickets to Jira

After the initial groundwork, it’s now time to sync a single Zendesk ticket to multiple Jira instances

You must create “Triggers” in Exalate to implement such conditions of information exchange. 

exalate triggers

Click the “Triggers” tab. Then, click “+ Create trigger”. 

Note: You can also create triggers from the Exalate admin console’s left-side menu. 

The “Add trigger” modal pops up. 

Note that this modal is present for the Zendesk and all the Jira instances, so you can control the sync from any direction in any way you want. 

The triggers are created in the platform-native query language. For instance, you need to use Jira Query Language (JQL) for Jira and Zendesk search syntax for Zendesk. 

We want the ticket to go from Zendesk to Jira, so click the trigger screen shown below for Zendesk. 

exalate add trigger

Enter the search query. Here, we are syncing the tickets that have been assigned the label = “sync”. You can create all kinds of conditions depending on your requirements. For example, sync an “Open” ticket assigned to a specific user, having a label = “sync”. 

Note: If you’re creating triggers from the left-hand Exalate console, you need to select the connections we have created in Step 2 and activate the trigger.

Do this for the remaining connections too. 

You’re all set for now.  You can keep configuring the sync rules and the triggers as your demands change with time. 

Step 5: View the Status of Your Sync

Exalate will start synchronizing all the tickets based on the trigger conditions you’ve set in Zendesk over to the Jira cloud instances. Comments, attachments, labels, etc. will synchronize according to the sync rules configured in Step 3. 

You can create a ticket in Zendesk and assign Tags = sync to it. 

create ticket zendesk

Exalate will pick this up automatically and start syncing the ticket to all the Jira instances. Appropriate status messages will be displayed when the ticket is being transferred to Jira.  

exalate status messages

You can view the sync status in the Exalate panel present under the ticket view in Zendesk and the issue view in Jira. 

zendesk jira sync

Conclusion

Syncing a single Zendesk ticket to multiple Jira cloud instances is a relatively straightforward, albeit tricky process. By following the steps outlined in this article, you can ensure that your tickets are always up-to-date and your teams have the information they need to resolve issues quickly and efficiently.

Recommended Reading:

Comments are closed.