How to a Sync Single Salesforce Case to Multiple Jira Projects

Published: Mar 28, 2025 | Last updated: Feb 25, 2026

Salesforce to Jira integration
Table of Contents

This article was originally published on the Atlassian community.

Teams working with Jira often need to collaborate with other teams using different work management systems and CRMs. For sales and marketing teams, Salesforce is the go-to choice.

But here’s a common scenario.

The sales team wants outgoing data from Salesforce to appear in more than one Jira project without having to copy the contents and fields one by one.

Sounds like a challenge, right?

Exalate provides a two-way synchronization option to help you exchange data between both systems automatically.

All you need to do is set up a connection and configure the sync with a simple line of code.

Let’s break it down.

What Should You Consider When Syncing Jira and Salesforce?

When two teams want to sync their platforms, security is the first thing that comes to mind. You want to make sure that data is protected in transit and at rest.

Exalate is ISO 27001 certified and uses encryption in transit (TLS 1.2/1.3) and at rest, role-based access control (RBAC), and decoupled access control to keep your data secure. You can review security documentation, penetration test results, and compliance certificates at the Exalate Trust Center.

Another primary consideration is autonomy. Both sides of the connection should be able to dictate what they share. This granular control helps teams keep private comments in-house while sharing essential information.

Due to ever-increasing workloads and tech sprawl, flexibility and scalability have also become critical concerns.

For instance, if you want to sync custom fields between Jira and Salesforce, you need a flexible solution that supports custom connections and API calls.

Exalate’s Groovy scripting engine handles any custom workflow. If you can write it in Groovy, Exalate can sync it. And with Aida, Exalate’s AI-assisted configuration, you can describe what you want in plain English and get working sync scripts generated for you. This is useful when setting up field mappings or troubleshooting sync errors.

Automated triggers also make Jira to Salesforce integration scenarios more flexible. You can define conditions using JQL on the Jira side or SOQL on the Salesforce side to control exactly which work items get synced and when.

As the number of work items and syncs adds up, the integration should be able to handle the increase in traffic and network demands. Exalate supports this through real-time sync with complete queue visibility, so you can monitor what’s being processed at all times.

Common Use Cases for Multi-Project Sync

Before diving into the code, it helps to understand when routing a single Salesforce case to multiple Jira projects is useful.

  • Customer escalation routing. A support case in Salesforce might require attention from both the backend engineering team and the QA team, each working in separate Jira projects. Exalate lets you route the case data to both projects automatically based on field values or custom logic.
  • Product-specific distribution. If your Salesforce cases cover multiple products, you can use a custom field (like a product line identifier) to determine which Jira project receives the synced work item. One case, multiple destinations, all handled through script logic.
  • Cross-functional collaboration. Sales and customer success teams often work with development, DevOps, or infrastructure teams. Rather than manually creating work items in each project, syncing from Salesforce to the right Jira projects keeps everyone aligned in real time.

How to Sync a Salesforce Case with Multiple Jira Projects

Let’s say you want to sync the content of a custom field (Sync Over [sync_over__c]) in a Salesforce case to appear in work items in different Jira projects. Here’s a brief run-through of how things work with Exalate.

First, agree on the fields that should be synced as well as the mapping for the connection.

Then, log in to the Exalate console, authenticate your Jira and Salesforce instances, and create a connection between them. With the connection in place, configure your sync using the scripting engine.

In the incoming sync on the Jira side, add a condition to route the case to the correct project based on the custom field value:

if (firstSync) {
  if(replica.sync_over__c = true){
    issue.projectKey  = "DEMO"
  }
    issue.projectKey  = "SMP"
    issue.typeName    = nodeHelper.getIssueType(replica.type?.name, issue.projectKey)?.name ?: "Task"
}
. . .Code language: JavaScript (javascript)

You can validate this logic using the Test Run feature before deploying it to production. Test Run lets you preview how the sync configuration will apply to your work items without affecting live data.

Once you’re confident the mapping is correct, publish the version and let the sync run.

That’s it. Continue tweaking the code to get different fields to interact automatically based on pre-approved permissions and mappings. With script versioning, every change you publish is tracked with a full audit trail, so you can review who changed what and roll back if needed.

Watch the video to see this implemented in practice.

Setting Up Triggers for Conditional Sync

You can also set up triggers to make sure the connection follows pre-set conditions. For instance, Exalate allows you to specify that all work items within a project named “DEMO” and with the label “customer” should be synced over instantly.

The trigger in Jira Query Language (JQL) will look like:

project = DEMO AND label = customer

If the case is coming from a prospect, the trigger query in Salesforce Object Query Language (SOQL) will be:

StageName= 'Prospecting'

This query defines the Opportunity stage as ‘Prospecting’. This helps the Jira dev team better understand how to prioritize and address the work item.

What Are the Benefits of Jira to Salesforce Integration?

Getting Jira work items in sync with Salesforce helps your organization in several ways.

Teams exchange valuable information instantly without manually requesting it through spreadsheets and email threads.

Due to the constant visibility of all necessary information, both sides collaborate transparently and productively. Exalate’s unified console gives you a single view of all your connections and integrations, so you’re not jumping between systems to check sync status.

Automatically syncing a work item with a case removes the probability of human error, data duplication, and inaccuracies.

It also prevents context switching, as both sides stay in their own instances while exerting granular control over what is shared. The side-by-side view lets you manage both sides of a connection from one screen, making it easier to spot and resolve mismatches quickly.

Beyond Jira and Salesforce, Exalate supports integrations with Jira Service Management, ServiceNow, Azure DevOps Cloud and Server, Zendesk, Freshservice, Freshdesk, Asana, GitHub, and custom connectors.

Book a demo with our integration engineers.

Recommended Reads:

Subscribe to the Newsletter

Join +5.000 companies and get monthly integration content straight into your inbox

Shopping Basket