paint-brush
Creating the Perfect Bridge: How to Set up a Jira Salesforce Integrationby@exalate
377 reads
377 reads

Creating the Perfect Bridge: How to Set up a Jira Salesforce Integration

by ExalateOctober 16th, 2023
Read on Terminal Reader
Read this story w/o Javascript

Too Long; Didn't Read

One of the benefits of a Jira Salesforce integration is that it allows you to keep track of all your customer interactions in one place.
featured image - Creating the Perfect Bridge: How to Set up a Jira Salesforce Integration
Exalate HackerNoon profile picture

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 Jira Salesforce integration is that it allows you to keep track of all your customer interactions in one place. This can be helpful for sales teams, as they can see all the history of a customer's interactions with your company, from initial contact to purchase to support tickets.


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?


How to Integrate Jira and Salesforce?

There are several ways to integrate Salesforce and Jira, including the typical native ways. But who wants to talk about their limitations?



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.


Exalate is a data integration platform that makes it easy to connect different ITSM tools and work management platforms like Jira, Salesforce, GitHub, Azure DevOps, ServiceNow, etc.

Exalate: an Advanced Integration Platform

When it comes to conventional integration solutions, Exalate has obvious benefits over them.


  • It supports decentralized integration so each integration party has independent control over information sent and received. Such an autonomous control makes it a perfect candidate for cross-company or MSP integrations.
  • The decentralized integration feature is important for integration security since both the Jira and Salesforce admins need not consult one another for changing integration requirements. It ensures that admins don’t mess with each other’s syncs.
  • Every Exalate node has its own integration environment, separate from another node. This support for single tenancy ensures you have your dedicated process, file, and network space independent of each other.
  • It provides a No-code/ Low-code integration setup. Business users prefer the no-code mode for simple sync use cases, while technical users can implement deep integrations with the low-code mode.
  • The low-code mode, called the Script mode in Exalate, has an advanced Groovy-based scripting engine to allow you to sync anything you want, any way you require. Exalate achieves this with the help of incoming and outgoing sync processors.


Now it’s time to dive into the step-by-step process of setting up a Jira ServiceNow integration.


How to Implement a Jira Salesforce Integration in 6 Easy Steps


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!

Step 1. Install Exalate on Salesforce

To install Exalate on Salesforce, navigate to the Salesforce AppExchange and search for "Exalate".


Click the "Get it Now" button to proceed.

Exalate for Salesforce integrations


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 create a connected app. Save the "Consumer Secret" and "Consumer Key" generated during this process.


Exalate Console


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.


Exalate for Salesforce Jira integration


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.

Step 2. Install Exalate on Jira

Installing Exalate on Jira is a straightforward process since it is an app. You can do it directly from the Exalate website or by going to the Atlassian Marketplace and looking up Exalate Jira issue sync.


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 here. For more information about Jira Cloud, click here.*


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."

Exalate for Jira integrations


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."


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.


Connect Jira and Salesforce


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 configuration modes


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:

The Basic Mode

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”.


Accept Jira Salesforce connection invitation


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.


Successful basic Salesforce Jira sync


The Script Mode

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.


Initiate Salesforce Jira connection


When you're ready, click "Initiate".


Exalate generates an invitation code. Click "Copy Invitation code" to save it securely.


invitation code for Jira Salesforce sync


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.


Configure Salesforce Jira connection


Step 4. Configure the Connection to Define What Information Is Shared

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.

Jira Salesforce sync rules



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 'script helpers' for handling complex processing. For instance, on the Jira side, in the incoming sync rules, "issue.attachments = attachmentHelper.mergeAttachments(issue, replica)" uses a helper to process attachments. This is particularly useful for handling attachments with various file types.


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.

Step 5. Set Up Triggers for Automated Synchronization

Triggers define the conditions under which Jira issues and Salesforce entities synchronize.

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.

Automate sync

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.


Automate Jira Salesforce integration with triggers


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.

Step 6. Initiate Information Synchronization

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 "Bulk Connect" option, or use the "Connect" operation to sync existing Jira issues to Salesforce.


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.

Advanced Jira Salesforce Integration Use Cases Using Exalate

Exalate’s Script mode opens up a lot of possibilities to implement advanced use cases.

We’ll discuss a few in this section:



Benefits of Synchronizing Data between Salesforce and Jira

Let’s wrap up by summarising the benefits you get out of a Salesforce Jira integration:


  • Improved customer service: By tracking all customer interactions in one place, you can provide better customer service.
  • Improved project management: Jira can help you track the progress of your projects, set deadlines, and assign tasks to team members.
  • Increased productivity: By automating tasks and workflows, you can increase your team's productivity.

Conclusion

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.