Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

How to Set Up a Jira to Jira Integration

Your teams can integrate multiple Jira instances to improve collaboration and share relevant data back and forth. A well-implemented Jira to Jira integration can help connect dev teams working in Jira Software to customer support teams handling tickets in JSM (Jira Service Management). It also supports scenarios like merger and acquisition transitions, MSP client coordination, outsourced QA collaboration, and departmental separation across large organizations.

There are many such possibilities. I'll show you how to do this using Exalate.

There are a few apps on the Atlassian marketplace for syncing Jira work items between multiple instances, but the use cases they support are limited. Exalate comes with a Groovy scripting engine that allows you to implement even complex use cases with ease. It also includes Aida, an AI-assisted configuration tool that can generate sync scripts from natural language prompts, so you don't need deep scripting knowledge to get started. 

Why Integrate Multiple Jira Instances?

Organizations end up with multiple Jira instances for a variety of reasons: company growth, restructuring, mergers, migrations, or simply because different departments need autonomy. But even when systems stay separate, the work inside them rarely does. Teams still need to coordinate, escalate work items, share progress, and keep information aligned.

Here are common scenarios where Jira to Jira integration makes a real difference:

  • Development to QA handoff: Dev teams and QA teams work in separate Jira instances. Syncing bugs, test results, and status updates keeps both sides aligned without manual data entry.
  • JSM to Jira Software escalation: Customer support logs tickets in Jira Service Management and needs to escalate to engineering in Jira Software. With integration, work items flow automatically with full context, including priority, attachments, and comments.
  • Merger and acquisition transitions: After a merger, teams in different Jira environments need to collaborate before (or instead of) consolidating instances. Integration bridges the gap without forcing a disruptive migration.
  • MSP and vendor coordination: Managed service providers can sync work items with multiple client Jira instances, maintaining separate configurations for each relationship while working from their own environment.
  • Cross-company collaboration: When partners, vendors, or suppliers each maintain their own Jira instance, integration enables seamless data sharing while each organization keeps full control over what they share.
  • Departmental separation: Large organizations often run separate Jira instances for IT, HR, Engineering, and Marketing. Integration keeps these teams aligned without requiring them to work in unfamiliar environments.

What Data Can You Sync Between Jira Instances?

Exalate syncs any data available via the REST API between your Jira instances. The most common fields include:

Standard fields: Work items (bugs, stories, tasks, epics), summaries, descriptions, statuses, priorities, assignees, reporters, comments, attachments, and labels.

Advanced fields: Custom fields, sprints (name, state, start/end dates, goals), story points, time tracking and worklogs, components, fix versions, linked work items, parent-child relationships, and sub-tasks.

Specialized sync: User mentions in comments, public vs. private comment filtering, Tempo Worklogs, Insight/Assets fields, and third-party plugin data.

You can also map different field values between instances. For example, sync a "Bug" in one instance as a "Defect" in another, or map statuses so "In Progress" on one side becomes "Active" on the other.

How to Set Up a Jira to Jira Integration: Step by Step

This guide walks you through setting up a Jira to Jira integration using Exalate. The setup is done entirely through the Exalate app; there is no need to install anything separately on each instance.

Step 1: Log in to Exalate and or Create an Account

Go to the Exalate app. If you already have an account, log in directly. New users can create an account by entering their email or signing up with Google.

Workspaces help you organize and manage your integrations and connections in one place. To create your first workspace, click "+ Create Workspace", enter a name and description, and confirm.

Step 2: Create a Jira to Jira Connection

image1.png

Once you have a workspace, you can start creating connections between your Jira instances.

  • Click "+ Add connections" and select "Create new connection".
  • Enter a name for your first Jira system (System A) and provide its URL.
  • Exalate detects the system type automatically. For new systems, you'll need to authenticate. Jira uses OAuth for authentication.
  • Complete the same setup for your second Jira instance (System B).
  • Give your connection a name and description, then click "Next".
  • Review the details and click "Create connection".

 

image2.png

 

 

When the process completes, select "Continue to configuration" and choose a Jira project to use for synchronization.

Step 3: Configure Your Sync Rules

After creating your connection, you have two configuration paths: "Quick Sync" and "Edit & Test".

 

 

image5.png

Quick Sync publishes the starter configuration and lets you sync one work item between your Jira instances to verify the connection works. Enter a work item key under the "Item sync monitor" and click "Sync Now" to test, or "Link with existing" to connect two existing work items.

Edit & Test opens the draft editor, where you can customize your sync rules. Click "Create a new version" or "Open latest draft" to start editing without affecting your live configuration.

Sync rules are based on Groovy scripts. They are divided into outgoing scripts (what data leaves a Jira instance) and incoming scripts (how that data is applied in the receiving instance).

Here is a sample line for syncing Jira custom fields:

issue.customFields."Jira custom field name".value = replica.customFields."Jira custom field name".value

The above statement maps a custom field value through the replica (the data payload passed between synced entities). Make sure to configure both sides: the outgoing script sends the value, and the incoming script maps it to the appropriate field in the destination instance.

To stop something from syncing (for instance, attachments), remove that script line from the outgoing script.

Using Aida for AI-assisted configuration: Instead of writing scripts manually, you can use Aida to generate sync scripts from plain language prompts. For outgoing scripts, describe what data should leave your system (e.g., "Exclude attachments" or "Only sync high-priority work items"). For incoming scripts, describe how data should be applied (e.g., "Map statuses" or "Set a default assignee if the user can't be found"). Aida generates working Groovy scripts based on your existing configuration and Exalate's scripting API.

 

image4.png

Test Run: Before going live, use the TestRun feature to validate your configuration against real data without affecting production. Select work items, run the test, and review the incoming and outgoing replicas. If something looks off, adjust and test again. Publish only when everything works correctly.

Step 4: Automate Your Sync with Triggers

Triggers control which work items enter the sync automatically. You configure them using Jira Query Language (JQL).

 

image3.png

Click "+ Add Trigger" and define conditions. Here are sample JQL triggers:

  • project = FIR and labels = sync
  • project = XProject and assignee = JDoe
  • worklogDate > startOfWeek()
  • priority in (High, Highest) AND status != Done

Save your triggers and publish the configuration. Your Jira instances will now exchange data automatically based on the rules and triggers you have set.

Advanced Jira to Jira Integration Use Cases

Exalate gives you the flexibility to handle a wide range of Jira-to-Jira integration scenarios. Here are some commonly implemented use cases:

  • JSM to Jira Software escalation: Automatically create a bug or task in your development Jira project when a customer-facing support ticket meets certain criteria in JSM. Status updates, comments, and resolution notes sync back to inform the support team.
  • Cross-company collaboration with controlled sharing: Use labels like "share-with-partner" to trigger selective sync. Only tagged work items are shared, and comments prefixed with specific markers can be filtered for privacy.
  • Convert remote status changes to local comments: Instead of mapping statuses directly, capture status changes from the remote instance as comments in the local instance. Useful when workflow states don't align across teams.
  • Sync story points between Jira instances: Keep story point estimates aligned for sprint planning across integrated instances.
  • Sync user mentions in comments: Preserve @mentions when comments sync between instances, keeping team references intact.
  • Sync sprints and epics bidirectionally: Keep sprint details, epic progress, and related work items aligned across teams working in different instances.
  • Multi-instance hub-and-spoke: Connect a central Jira instance to multiple departmental or vendor instances. All connections are managed from a single unified console with network visualization.
  • Work item type mapping: Sync a "Bug" in one instance as a "Defect" in another, or "Story" as "User Story". Exalate's scripting engine handles any type transformation you need.

To learn more about syncing possibilities between Jira instances, reach out to us to discuss your use case.

Why Use Exalate for Jira to Jira Integration

Exalate combines flexibility with operational simplicity through a unified management console:

  • Groovy scripting engine: Handle any custom workflow, logic, transformation, or data mapping
  • Aida (AI-assisted configuration): Generate and troubleshoot sync scripts using natural language prompts.
  • Test Run: Test sync scripts against real data before production deployment.
  • Script versioning: Full audit trail of configuration changes with rollback capability. Work on drafts without affecting live data.
  • Unified console: Manage all your Jira connections and integrations from one interface.
  • Side-by-side view: View both sides of a connection simultaneously for faster diagnosis.
  • Real-time sync: Complete queue visibility with automatic retry logic.
  • Security: ISO 27001 certified, role-based access control (RBAC), encryption in transit (TLS 1.2/1.3) and at rest, and decoupled access control. Visit the Exalate Trust Center.
  • Outcome-based pricing: Pay for active sync pairs (work items currently in sync), not user seats. Each integration is billed independently with subscription-based plans.
  • Supported integrations: Beyond Jira to Jira, Exalate also connects Jira with ServiceNow, Azure DevOps Cloud and Server, Salesforce, Zendesk, Freshservice, Freshdesk, Asana, GitHub, and custom connectors.
  • Available on the Atlassian Marketplace with full functionality to try for free. 

 

1 comment

francis
Atlassian Partner
March 26, 2024

Watch the video of a Jira to Jira integration here

 

 :point_right::skin-tone-2: https://bit.ly/4cAvCG7


CleanShot 2024-03-26 at 15.49.14.png

Like • # people like this

Comment

Log in or Sign up to comment
TAGS
AUG Leaders

Atlassian Community Events