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
- Exalate: A Customizable Integration Solution
- How to Connect a Single Zendesk Ticket To Multiple Jira Cloud Instances Using Exalate?
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.
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.
You can install Exalate for Zendesk from the Zendesk marketplace and Exalate for Jira from the Atlassian 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”.
Enter the destination Jira instance Y URL.
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.
An invitation code is generated. Copy it. Click “Done”.
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.
Select project A, the project in which the Zendesk ticket must arrive.
That’s it. You have connected your Zendesk instance to Jira Y (project A).
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.
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.
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.
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.
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.
You can view the sync status in the Exalate panel present under the ticket view in Zendesk and the issue view in Jira.
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:
- How to Sync Comment Threads and User Mentions in Comments between Jira and Salesforce
- How to Use Exalate to Synchronize Insight Objects
- Advanced Integration Use Cases
- How to Synchronize a ServiceNow Customer Case to a Jira Epic
- How to Sync Tempo Worklogs Between Two Jira Cloud Instances
- How to Sync Custom List Fields Bi-Directionally Between Jira and Zendesk