How to Sync Custom List Fields Bi-Directionally Between Jira and Zendesk

sync multiple zendesk tickets a jira issue

This article was originally published on the Atlassian Community.

Teams can use a third-party integration solution to sync custom Jira list fields with a Zendesk support ticket. This will help them share information about bugs and fixes using additional custom fields. 

I’ll show you how a third-party integration solution called Exalate makes this synchronization possible. All aboard!

Changing Ticket Status Through Custom List Fields: Zendesk to Jira Use Case

When the support team changes the “Mood” via the custom field on a Zendesk ticket, the label and “Mood” on the corresponding Jira issue should also reflect this change. 

At the same time, selecting a new option in the “Jira Mood” custom field will automatically change the status of the “Tag” and “Mood” on the Zendesk ticket.

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

Main Integration Requirements

When an agent selects an option from the dropdown custom field, the status will be transferred as a default value to the other side.

Jira Zendesk ticket integration

For this to work correctly, I’ll need to create sync rules to control the incoming and outgoing data that should be transferred on both sides. This will ensure that changing the status on Jira will affect the correct field on the Zendesk ticket.

Potential Challenges 

Here are the challenges you could face while working on this sync:

  • Returning the correct value (capitalization, etc)
  • Network interruptions
  • Bad trigger configuration
  • Incorrect field mapping 
  • Scripting errors

The Solution: Exalate

Exalate is a third-party integration solution that allows you to synchronize workflows (descriptions, attachments, labels, etc) between independent platforms. This tool works bidirectionally on Zendesk, ServiceNow, Jira, Salesforce, Azure DevOps, GitHub, and other workflow management systems.

Benefits of Using Exalate

  • Exalate’s Groovy scripting engine allows you to write custom integration rules, reducing the time and effort required to handle tickets individually.
  • It allows you to create and configure multiple triggers in order to automate syncs using the Jira Query Language.
  • Interdependent teams can use Exalate to streamline their efforts and improve user experience.
  • You can use the Bulk Exalate option to sync multiple tickets or issues simultaneously.

Syncing Data Between Corresponding Zendesk and Jira Custom Fields

First, you need to install Exalate on both the Zendesk and Jira sides. Follow the steps outlined in this comprehensive guide to complete the process. 

This specific use case demands that you follow the Script Mode installation steps. This means adding some Groovy code snippets to help you customize the sync.

After setting up the connection, click the “Edit Connection” icon to customize the sync settings. Focus on the following fields:

  • Outgoing sync (on the Zendesk side) refers to the data going over to the Jira side. 
  • Incoming sync (on the Jira side) refers to the data entering from the Zendesk ticket.

Under the “Rules” tab on the Zendesk side, enter this line of code in the “Outgoing Sync” text area:

Exalate outgoing sync interface
replica.customFields.”Mood” = issue.customFields.”Mood”

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

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

Exalate incoming sync user interface
issue.customFields.”Jira Mood”.value = (replica.customFields.”Mood”?.value?.value)?.capitalize()

Note: This line of code receives the value from the Zendesk custom field. The .capitalize() method converts the first letter of the received value into uppercase.

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

Voila! Your connection is set. 

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

ZenDesk dashboard interface

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

Go to the Apps tab on the right sidebar and click “Exalate”. Select the connection and complete the process. 

Once the sync is complete, the status will change to “Synchronized”. You will then see a Remote Link leading to the Jira side. Click on the remote link.

Exalate ZenDesk to Jira Unexalate synchronize feature

On the Jira issue, you will see that the label has changed and the mood has been updated.

Jira mood sync interface

At this point, changing the Jira Mood on the Jira side doesn’t affect the Zendesk ticket. So let’s fix that.

Open the console on the Jira side and adjust the rules in the Outgoing Sync text area. 

Exalate scripting mode outgoing sync interface
replica.customFields.”Jira Mood” = issue.customFields.”Jira Mood”

Note: This line of code tells the system to send over the value of the “Jira Mood” custom field.

Then go back to the Zendesk side and change the config for the Incoming sync. 

Exalate incoming sync mood value interface
issue.customFields.”Mood”.value = replica.customFields.”Jira Mood”?.value?.value

Note: This line of code returns the (already capitalized) value from the Jira side using a slightly different syntax.

After that, go to the Jira issue and change the Jira Mood to a different value (say “happy”). 

On the Zendesk side, this status will appear as a tag, and the value in the Mood custom field will change to correspond with what you have on the Jira side. 

Zendesk mood custom field interface

Click “Submit as New” to complete the process and save changes. And that’s all from my end!

Conclusion

Exalate is a customizable third-party solution that allows you to sync the value of custom list fields bidirectionally. The Exalate Groovy engine makes it possible to configure sync rules and set triggers for advanced customization.
If you want to see how Exalate works for your specific use case, you can book a free session with one of our experts.

Recommended Reading:

Comments are closed.