Jira to Jira Integration: Sync Multiple Instances Bi-directionally  

This article was written by Teja Bhutada from Exalate.

Jira is a powerful project management tool and a coveted choice for many. It is flexible and customizable so every team can work within their unique workflow. 

Integrations allow you to extend the customization capabilities of Jira, and the number of integration apps available on the Atlassian Marketplace is proof of that. 

This blog post explores how you can integrate multiple Jira instances after discussing the benefits such an integration provides. 

Why Do You Need a Jira to Jira Integration in the First Place?

Let’s say, the development team logs issues in their own Jira whereas the customer support team uses Jira Service Management to take note of customer tickets.

The information should pass between them so that it can be useful for both teams. 

Here collaboration needs to be handled automatically through an integration. If done manually, it can lead to errors or misplaced information exchange. 

Here’s what is expected from such an integration:

  • Consistent, accurate, and accessible information within your own Jira instance. 
  • Automation of end-to-end business processes, leading towards a holistic B2B integration setup. You can extend your integration within different departments of the same company or across company borders.
  • Transparency between teams ensures everyone stays on the same page.

We have chosen a solution called Exalate for setting up this integration.

Exalate is an integration solution that allows you to set up bi-directional syncs for basic to advanced use cases. It supports different task management systems like Jira, Salesforce, Zendesk, Azure DevOps, GitHub, and the like. And you can easily set up a Jira Salesforce integration or even set up the same platform integrations like a Salesforce to Salesforce integration

Exalate supports decentralized integration. It means that the outgoing and incoming information at either end can be controlled independently. It has various security mechanisms in place to ensure information exchanged is not misused or tampered with. 

And it has an intuitive scripting engine that allows you to implement even the most advanced or complex integration cases. 

So let’s see how to integrate multiple Jira instances using Exalate. 

How to Integrate Multiple Jira Instances in 5 Steps 

As a first step, it is necessary to chalk out an integration plan and its requirements, roadmaps, stakeholders, security considerations, and governance defined.

This groundwork is necessary in order to reap the required benefits of such a setup. 

Once this is done, proceed toward the next few steps. 

Step 1: Install Exalate on both the Jira instances

Exalate needs to be installed as a dedicated app on both Jira instances. It can be done either on Jira cloud or on-premise

Head over to the Atlassian marketplace and select the “Exalate Jira Issue Sync& More

 and click “Try it for free”. 

The installation wizard is pretty straightforward afterward. 

You’ll then be redirected to the ‘Getting Started’ screen on the Exalate console. 

Step 2: Create a connection between the Jira instances

A connection works like an initial handshake that allows you to verify the source and the destination Jira instance. Once it’s set up, information flows securely between them.

To create a connection, go to “Connections” on the Exalate console. From either of the Jira instances, click “Initiate connection”. 

You then need to enter the destination instance URL or the URL of the other Jira instance. You will be prompted to choose between 3 different modes: Basic, Visual, or Script. 

The Basic mode: 

This mode is for simple synchronization cases. You can sync the issue type, summary, description, comments, and attachments. However, you cannot configure the sync. With this mode, you can sync a particular issue between the Jira instances by directly entering the issue key. 

The Visual mode:

This mode is a drag-and-drop interface. But you can still add scripts for advanced use cases. 

You first need to give a name to the local and remote Jira instance and also a connection name. And after verification of admin access to the remote Jira, your Visual mode connection has been set up. 

You can proceed to configure it. 

The Script mode:

The Script mode has sync rules that can be configured to share any kind of information between multiple Jira instances. We will see the configuration part in Step 3. 

For now, choose Script mode and click ‘Next’. Name the connection just like you did for the Visual mode. 

Then select the project on the Jira side and click “Next”.

An invitation code will be generated, copy it. 

Go to the other side and this time click “Accept invitation”. Then paste the code you just copied. 

Select the Jira project and a connection is successfully created. 

Step 3: Configure the connection to determine the information flow

Let’s see how configuration is done in the Visual and Script mode. 

Configuration in the Visual mode

After the connection is created, decide on the scope of the sync. 

Here you select the projects on both Jira instances. Decide the direction of the sync; whether it must be manual, automatic, or disabled. The arrowheads determine the direction of the sync. 

Filters can also be applied to both projects. Click on “Filter entities” for that. Say you want to sync issues that have ‘Highest’ priority having a label “today”. 

Save your filters. Based on the filters you set, the sync happens automatically.

Click “Save”’ and you will see the “Rules” section. This will determine the mapping of your sync.

You can add a new mapping, edit, or delete any of the default mappings here. You can even add scripts for advanced cases. 

“Publish” these changes to save them. 

Configuration in the Script mode

Click “Configure Sync” to start configuring your connection. 

There are incoming and outgoing sync rules under the “Rules” tab. They determine the information that must be sent and received at either end.

Issue information is sent under the outgoing sync in a “replica” that acts as a message or payload to carry information securely to the other side. In the incoming sync, you extract the contents of this replica and apply it in a way that makes the most sense. 


This allows Exalate to be immensely customizable. These scripts are written in Groovy and are interpreted by the outgoing and incoming processors. 

Step 4: Set up automated synchronization triggers

Triggers are conditions you specify to begin automatic synchronization. 

Go to ”Triggers” and click “Create trigger”. 

Select the entity: issue or sprint to which the trigger must apply. 

The ‘If’ section allows you to write queries in JQL (Jira Query Language). So if you want to sync all issue types that are tasks, you can write something like this in the ‘If’ section: issuetype=’Task’

Activate the trigger by toggling the switch. Once you “Add” the trigger, you can see it on the previous screen. Here you can edit, delete, or ‘Bulk Exalate’ issues satisfying the trigger condition. 

Step 5: Start syncing

Once the trigger is active, issues will automatically sync based on the conditions you have set. You can check the synchronization status under every issue view in the ‘Exalate’ sync panel.

You can also manually sync issues, or connect existing issues using the “Connect” or the “Bulk Connect” option or even “Bulk Exalate” issues satisfying the trigger condition. 

There are a lot of options to enable you to set up a sync tailored to your needs using Exalate. 


Integrating multiple Jira instances using the right solution is a sure way to break down team silos and streamline collaboration. This blog post introduces a solution called Exalate, whose flexibility, brought by its scripting engine, and the increased security due to decentralized integration, makes it the perfect fit for a Jira to Jira integration. 

Book a demo with the Exalate experts if you want to learn more about it.