This article was originally published on the Atlassian Community.
Syncing between two Jira Cloud instances helps companies share epics and work items between teams and beyond business borders. This can be done using third-party connectors and integration tools that adapt to your specific use cases. Both manual and automatic options are available, giving you the ability to use custom triggers based on JQL.
To shed more light on this topic, let’s explore a sample use case. I’ll use a third-party integration solution called Exalate for this illustration.

Epic Syncs: Jira to Jira Use Case
After creating an epic on one Jira Cloud instance, you can establish a connection with another Jira Cloud instance to share data between the two. Changes on the origin (local) side will reflect on the receiving (remote) side in real time.
Let’s go through the requirements and potential challenges.
Primary Requirements
When you create a Jira epic and add work items to it on your instance, the changes should appear on the other end without having to replicate the same data manually.
For this to work, you need to configure sync rules for the outgoing and incoming data fields. To automate the transfer of epic content, you can also create triggers using the Jira Query Language (JQL).
Potential Challenges
When syncing epics between Jira instances, teams commonly face:
- Network timeouts during large sync operations
- Misconfigured triggers that don’t capture the right work items
- Script errors when mapping custom fields or work item types
Why Use Exalate for Jira to Jira Sync?
Exalate is a bidirectional integration solution that syncs data between work management systems. It connects platforms like Jira, Jira Service Management, ServiceNow, Azure DevOps Cloud, Azure DevOps Server, Salesforce, Zendesk, Freshservice, Freshdesk, Asana, GitHub, and more.
Key benefits for Epic synchronization:
- Sync Jira epics and their child work items in a few clicks
- Groovy scripting engine for custom rules and advanced use cases
- Bulk operations to sync multiple epics and work items at once
- Aida (AI-assisted configuration) to generate and troubleshoot sync scripts
- ISO 27001 certified with encryption in transit and at rest. Visit Exalate Trust Center
How to Sync Jira Epics with Exalate
Access the Exalate App
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. Create a workspace.
Create Your First Connection
- In your workspace, click + Add connections > Create new connection
- Enter the name for your first Jira instance (System A)
- Enter the URL of your Jira instance
- Once validated, a validation check occurs. For Jira, authentication uses OAuth
- Repeat the setup process for your second Jira instance
- Give your connection a name and description
- Click Next
- Review the details, then click Create connection
When the process completes, select Continue to configuration and choose a Jira project you want to use for synchronization.
Configure Sync Rules for Epics
After creating your connection, you have two configuration options: Quick Sync and Edit & Test.
For epic synchronization, use the Edit & Test option to customize your sync scripts.
Click Create a new version or select Open latest draft to start making changes. This ensures you don’t accidentally modify the existing configuration.
Understanding Sync Rules
Sync rules are based on Groovy scripts. These scripts control what data goes out and what data comes in:
- Outgoing script: Defines what data leaves your system
- Incoming script: Defines how incoming data is applied to your system
To send epics from one Jira instance to another, add the following to your Outgoing sync script:
Epic.send()
This line sends your Jira epic and its contents to the remote instance.
On the receiving side, add the following to your Incoming sync script:
Epic.receive()
The .receive() method tells the console to accept epic data from the sending instance.
Click Save script to save your changes.
AI-Assisted Configuration
To simplify the scripting process, use Aida to generate sync scripts from natural language prompts.
For example, describe what you want: “Sync epics with all child work items” or “Exclude attachments from epic sync.” Aida generates working Groovy scripts with proper field mappings.
Review suggested changes before applying them. Green highlights indicate new lines; red highlights show lines that will be removed.
Step 5: Test Your Configuration
Before going live, use Test Run to validate your sync scripts against real data without affecting production.
- Click Start Test Run
- Select the epics you want to test
- Review the incoming and outgoing replicas
- Verify field mappings look correct
- If needed, adjust scripts and test again
Deploy only when everything works correctly. Click Publish Version to apply your configuration.
Step 6: Add Triggers for Automatic Sync
To sync epics automatically, add triggers using JQL conditions.
- Go to Triggers in the sidebar
- Click Add Trigger
- Define your JQL query. For example:
issuetype = Epic AND project = DEV - Add notes to describe the trigger’s purpose
- Click Create to activate
Now, anytime you create an epic matching your criteria, it automatically syncs to the other Jira instance.
Summing Up
With Exalate, you can sync your Jira epics with another Jira Cloud account bidirectionally and in real time. You can establish specific rules and triggers to automate the sync, use Test Run to validate configurations before deployment, and rely on script versioning for safe rollbacks.
These types of data syncs simplify your day-to-day operations and make cross-team collaboration easier.
Start a free trial to see how Exalate works for your specific use case, or book a demo with one of our integration engineers.

Frequently Asked Questions
Can I sync epics with all their child work items?
Yes. The Epic.send() and Epic.receive() functions handle epics along with their linked child work items. You can customize exactly which fields and work item types are included using Groovy scripts.
What happens if an epic is updated after the initial sync?
Exalate provides real-time bidirectional synchronization. When an epic or its child work items update in one Jira instance, the changes sync to the other instance within seconds.
Can I sync only specific epics based on criteria?
Yes. Use JQL-based triggers to filter which epics enter the sync. For example: issuetype = Epic AND labels = "sync-enabled" syncs only epics with that specific label.
How does Exalate pricing work for Jira to Jira sync?
Exalate offers outcome-based pricing: you pay for active sync pairs (work items currently synchronized), not user seats. Each integration is billed independently, and you can create as many connections as needed. A 30-day free trial is available with full functionality.
Recommended Reading:
- Jira to Jira Integration: The Comprehensive Guide to Jira Sync
- How to Sync Issue Types and Select Lists (Dropdown) Between Jira On-premise and Jira Cloud
- How to Synchronize User Mentions in Comments Between Jira Cloud and Jira On-premise
- Jira Integrations: Integrate Jira and Other Systems Bidirectionally



