If you’re a Jira or Salesforce user (or maybe both?) and you’re struggling with syncing data between the two platforms, then you’re in the right place. Both platforms have their strengths and weaknesses, but when used together, they can be a powerful combination for businesses of all sizes.
One of the benefits of a
Why integrate Salesforce and Jira? It can help you improve your project management processes. You can use Jira to track the progress of your projects, set deadlines, and assign tasks to team members. This can help you ensure that your projects are on track and that everyone is on the same page.
Sounds nice, right? Let’s see how we can implement a two-way Jira Salesforce integration in a few steps.
But first, what are the different ways to integrate Jira and Salesforce?
There are several ways to integrate
So, for the purpose of this guide, I have chosen a third-party solution called Exalate. I can set up almost any use case, from basic to advanced, using this tool.
When it comes to conventional integration solutions, Exalate has obvious benefits over them.
Now it’s time to dive into the step-by-step process of setting up a Jira ServiceNow integration.
As I said, Exalate is a decentralized solution. So you need to install it on both Jira and Salesforce and then connect the instances.
Once your instances are connected, you can create a mapping (aka Sync Rules) between the two systems. This mapping will tell Exalate how to connect the data in Salesforce and Jira.
Once you have created a mapping, you can use Exalate to sync data between Salesforce and Jira. Exalate can sync data in real-time or on a scheduled basis.
Let's get started!
To install Exalate on Salesforce, navigate to the
Click the "Get it Now" button to proceed.
Select where you want to install Salesforce: either in your current organization or a Sandbox org. I chose to install it in my current organization.
Scroll down to review and accept the terms and conditions. Click "Confirm and Install" to begin the installation process.
Specify the Salesforce users for whom you want to install Exalate. You can modify this later if needed. I chose to install it for all users. Click "Install."
Now, "Approve Third-party Access" by clicking "Continue." This step gives Exalate access to necessary data. The installation process is complete.
Click "Done" to finalize the setup.
Proceed to your Salesforce instance and
Within your Salesforce instance, navigate to "Apps" and search for "Exalate."
Use the "Consumer Secret" and "Consumer Key" you saved earlier, and then click "Request Node."
Click "Allow" to grant access permissions to Exalate. Enter your personal details and click "Agree and Submit." Wait for an email from the Exalate License Manager.
In your email, click "Verify Exalate instance" to be redirected to the Exalate admin console.
Note*: You can also get the Salesforce Connector for Jira via the Atlassian Marketplace.*
If you've already installed Exalate on your Jira instance, you can skip to step 3 and start setting uo your connection. If not, proceed to the next step.
Installing Exalate on Jira is a straightforward process since it is an app. You can do it directly from the
Here, we'll guide you through setting up Exalate from within Jira.
Note*: I assume you're using Jira Cloud, but note that Exalate also allows you to synchronize Salesforce with Jira on-premise. You can find instructions for that installation
To install Exalate, click the "Settings" icon at the top right of your Jira instance and select "Apps" from the drop-down menu.
On the left-hand submenu, choose "Find new apps."
In the search box, type "Exalate" and press Enter.
You'll see various Exalate apps designed for different issue trackers listed. Ensure you select the correct one, such as "Exalate Jira Issue Sync & more."
Click the "Try it free" button.
A pop-up window labeled "Add to Jira" will appear. Click "Start free trial."
After a moment, click "Get Started."
All right! You're all set to begin your first connection.
Step 3. Connect Jira to Salesforce
Start by establishing a connection between Jira and Salesforce where one side initiates and the other side accepts.
In this example, we'll initiate the connection from Salesforce, but you can begin from either side. Exalate provides a consistent interface across all platforms, eliminating the need to worry about where to start and how to proceed.
Click the “Connections” > "Initiate Connection" button. The next screen prompts you to enter the destination instance URL.
We'll enter the Jira instance URL since we initiated the connection from the Salesforce side. After a quick check, choose the connection mode.
Exalate for Salesforce offers two modes: Basic and Script.
The Basic mode provides a no-code, no-configuration user interface suitable for simple synchronization use cases.
We recommend using the Script Mode for greater customization capabilities, even for complex use cases.
We'll cover both modes here, starting with:
After you click "Next" on the screen above, confirm if you have admin access to the destination side (i.e, the Jira instance).
Select "Yes, I have admin access" and click "Initiate." If you don't have access, you can manually copy and paste an invitation code on the Jira side.
After successful verification, you'll be redirected to the Jira instance. Select the Jira project where you want the Salesforce entities to sync and click “Confirm”.
You can immediately start syncing your first issue by entering its key in the text box and clicking "Exalate." Wait for a moment as the appropriate status messages are displayed.
Sit back and relax while your first issue gets synced.
Select Script mode and click "Next”.
Name your connection. This will help you identify your connection, especially if you have multiple connections.
Name the local and remote instances. A connection name is automatically generated based on your entries. You can change it if you want.
When you're ready, click "Initiate".
Exalate generates an invitation code. Click "Copy Invitation code" to save it securely.
Your work on the Salesforce side is now complete. Proceed to your Jira instance for the next steps.
On the Jira side, open the "Connections" tab in the Exalate Admin console and click "Accept invitation." This will open a text area. Paste the invitation code you copied earlier and click "Next."
Just like in the Basic mode, select the project on the Jira side and click “Confirm”
Congratulations, you’ve successfully connected your Jira and Salesforce instances.
Here comes the exciting part! Let’s configure our sync.
It’s time to control information exchange between Jira and Salesforce by configuring the connection.
The configuration screen has two tabs: “Rules” and “Triggers”. I’ll cover the “Rules” tab in this section, and, we’ll see how “Triggers” work in the next section.
You’ll find the sync rules under the “Rules” tab. These rules are written in the Groovy scripting language, so if you're familiar with it, it’ll be easy for you.
The "Outgoing sync" rules determine what you sent the other side, and "Incoming sync" rules control how you interpret information from the other side.
Both Jira and Salesforce have these rules; the only difference is how we address the entities. Entities depend on the platform from which you access the connection.
You can directly edit the rules inside the text boxes, or you can copy and paste them to work on later.
The "replica.description = entity.Description" statement in the Salesforce "Outgoing sync" rules means that Case (entity) description is saved in a replica.
The replica acts as a placeholder to store the values you want to send or receive. In this case, it means you send the Case description from Salesforce into the issue description created in Jira.
Similarly, in the Jira "Incoming sync" rules, "issue.description = replica.description" means you copy the replica description (Case from Salesforce) into the Jira issue description field.
If you want to set specific values for entity fields, you can replace any of the given values with values enclosed in quotation marks. For example, you can change "replica.description = entity.Description" to "replica.description = 'sent from Salesforce.'"
To exclude data you no longer want to share, you can delete the corresponding line or comment it out by adding "//" at the beginning of the line.
You can also explore advanced '
You can edit these rules in either the outgoing sync rules section or the incoming sync rules section, depending on whether you want to make changes to the data sent or received.
Remember to click "Publish" after making all your changes.
You may want to synchronize a "Salesforce Account" related to a specific customer with Jira or automatically create a Jira issue whenever a "Salesforce Case" is created or updated. You can easily configure triggers for any requirement.
The process for creating triggers is similar in both Jira and Salesforce, but the search queries are platform-specific. For instance, Jira uses JQL (Jira Query Language), while Salesforce uses SOQL (Salesforce Object Query Language).
Creating triggers is intuitive and straightforward.
We'll demonstrate how to create a trigger in Salesforce. If you've been following this tutorial step by step, you should be on the edit connection screen now.
If you're not there, go to the "Connections" section in the Exalate console and click the edit connection button. In the tabs above, click "Triggers."
Click "+ Create trigger" button, and a "Add trigger" modal will pop up.
There is a drop-down list of Salesforce entities to choose from, such as Account, Case, Opportunity, Task, Product, etc. Depending on what you select, additional fields appear.
You can even specify the conditions for filtering by writing a SOQL query in the "If" section. Be sure to add any relevant notes to help you understand the trigger's purpose, especially if you have many triggers.
You’ll find an "Activate" checkbox that lets you enable or disable the trigger.
Click "Add" to save the trigger.
You will now see the trigger listed on the previous screen.
We started off by establishing a connection between Jira and Salesforce.
In the Basic mode, you can synchronize via triggers, or sync multiple issues or entities together using the "
In the Script mode, once you've configured the connection according to your requirements, you’ll see that the issues or entities are automatically synchronized when the conditions are true.
Exalate periodically checks for syncs and updates, so if your synchronization doesn't reflect immediately, wait for some time and try again. You can adjust the sync rules and triggers at any time to ensure everything functions as intended.
Exalate’s Script mode opens up a lot of possibilities to implement advanced use cases.
We’ll discuss a few in this section:
Let’s wrap up by summarising the benefits you get out of a Salesforce Jira integration:
Integrating Salesforce and Jira is a great way to improve your business processes. Using Exalate, you can easily connect the two systems and start syncing data in real time, without worrying about admins messing up your data. It will help you improve customer service, project management, productivity and reduce costs.
If you have a specific use case in mind and are wondering if Exalate is the right solution for you, book a free session with one of our integration engineers.
This article was written by Teja Bhutada, a Senior IT copywriter at Exalate.