Missed Team ’24? Catch up on announcements here.

Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

How to Orchestrate Workflow By Connecting Multiple Zendesk Tickets to a Single Jira Issue

You can manage workflows by using a third-party integration solution to sync multiple Zendesk tickets to a single issue in Jira. 

Interdependent teams use these integrations to connect their workflows. For instance, your Support team can sync tickets with the Development team to account for a bug.

To find out how this will work in practice, we’ll create a sample use case for an integration solution called Exalate.

Connecting Multiple Tickets to 1 Issue: Zendesk-Jira Use Case

Every ticket the Support team receives in Zendesk automatically appears as a bug on the Jira side. Other tickets opened subsequently will also map automatically to the same Jira issue – and they’ll appear on the “On-Hold” queue while the development team works on earlier tickets.

Once the development team marks the corresponding Jira issue as “Done”, the Zendesk tickets will receive an automatic update and start appearing as “Open” for support agents to address.

Here are the primary requirements and potential challenges of this process:

Main Integration Requirements

When a support agent opens a ticket for a bug on the Zendesk side, it will appear on the Jira side as an issue. 

When they open another ticket for the same bug with the same key, the ticket will be added to the already open Jira ticket instead of opening a separate one.


To put this into effect, we’ll need to create synchronization rules to control the incoming and outgoing data that should be transferred on both sides. 

You’ll also need to create rules to ensure the tickets are getting mapped correctly under the same issue – and ensure that changing the Jira status affects the ticket status on the Zendesk side.

Potential Challenges 

The common problems you could encounter while working on this synchronization include:

  • Network interruptions during the sync
  • Triggers created with errors
  • Groovy script errors, which might lead to incorrect mapping of fields.

The Third-Party Solution: Exalate

Exalate is an integration solution that lets you synchronize workflows on independent platforms. This bidirectional synchronization tool works on Zendesk, ServiceNow, Jira, Salesforce, HP ALM, and other workflow management systems.

Benefits of Using Exalate

  • Exalate comes with a Groovy engine that allows you to write custom integration rules.
  • You can set up multiple triggers to automate the sync.
  • You can connect interdependent teams (like Support and Development) to streamline their efforts toward solving user experience issues.
  • Exalate improves workflow synchronization by reducing the time and effort required to configure syncs and handle tickets individually.
  • You can set up multiple syncs simultaneously using the bulk connection option Bulk Exalate.

Connect Multiple Zendesk Tickets to a Single Jira Issue

Start by installing Exalate on both the Zendesk and Jira sides in order to connect multiple tickets. Follow the steps outlined in this comprehensive guide

For this specific use case, you need to follow the Script Mode steps. It requires some coding but allows you to customize your sync using the Groovy engine.

After setting up the connection, go to the editor to configure the settings. Pay attention to the following:

  • Outgoing sync (on the Zendesk side) refers to the data to be sent to the Jira issue. 
  • Incoming sync (on the Jira side) refers to the data to be received from Zendesk tickets.

Go to the “Rules” on the Zendesk side and enter this line of code in the “Outgoing Sync” text area:


replica.customFields."Key" = issue.customFields."Key"

Note: The issue.customFields method is a field containing the unique key for the Zendesk ticket. The replica.customFields method contains the key value you want to pass to the Jira side.

On the Jira side, you need to enter the following code into the “Incoming Sync” text area:


import com.atlassian.jira.component.ComponentAccessor
   issue.projectKey   = "SYEDR" 
   issue.typeName     = "Bug"
   def remoteIssueUrn = replica.customFields."Key"?.value
   if (remoteIssueUrn){
        def issueManager = ComponentAccessor.issueManager
        def mainIssue = issueManager.getIssueByCurrentKey(remoteIssueUrn)
        issue.id = mainIssue.id
        issue.summary = replica.summary
        issue.description  = replica.description

The above code snippet reads the value of the given field (Key and typeName) on the Jira side and uses the ComponentAccesor to search for the local issue with a corresponding key.

Click on “Publish” to validate the code and establish the connection.

You can download the entire code snippets here.

Voila! Your connection is set. You can now start syncing multiple Zendesk tickets to 1 Jira issue.

Go to the Zendesk dashboard and click “Add Item” to start. Select “Ticket” from the dropdown menu.


Enter a subject and public reply. You can also change the brand, requester, assignee, tags, and form. Then click “Submit as New” to save the ticket. 


Scroll to the bottom of the ticket and click on “Apply Macro”. Select “Exalate'' from” from the dropdown menu. You will see an internal note showing that the ticket has been Exalated. 

The issue key will also reflect automatically in the “Key” input field. Copy this key to your clipboard.


Open a new ticket and paste the copied key into the “Key” input field. Click “Submit as On-Hold” to complete the process and save the ticket.

Repeat this process two more times to create a total of three tickets.

Now, go over to the Jira side and open the issue. Or you can click on the remote link from the Exalate tab on the Zendesk side.


On the Jira issue dashboard, you will see that the three tickets have been added to the issue on the bottom right.


New comments (“We are closing this soon”) added on the Zendesk side will reflect there but not on the Jira side. However, comments added on the Jira side will appear on the Zendesk side instantly.


Why is the setting this way? Because the support team needs to share updates on the ticket–and the developers don’t need to follow this communication. 

But when a developer drops a comment on the Jira issue, the support staff needs to see the latest update in order to coordinate their response.


After that, go to the Jira issue and click “Selected for Development”. From the “Workflow” dropdown menu, select “Done” to mark the issue as completed.


On the Zendesk side, this message will appear as “IMPORTANT: The bug SYEDR-252 has been resolved”. The ticket status will also change from “On-Hold” to “Open”.


Click on “Submit as Open” to complete the process and save changes.


With Exalate, you get access to a customizable third-party solution for syncing multiple Zendesk tickets to 1 Jira Issue. You can also use Exalate’s Groovy scripting engine to edit the rules and set triggers for advanced customization options.

If you still have questions or want to see how Exalate works for your specific use case, book a demo with one of our experts. 




Log in or Sign up to comment
AUG Leaders

Atlassian Community Events