How to set up an Azure DevOps Jira integration: A step-by-step guide to an advanced two-way sync

How to set up a Jira Azure DevOps integration

With a Jira Azure DevOps integration, teams can stay aligned on important information and use these tools to their fullest capacity. This includes keeping deployment or testing cycles in Azure DevOps aligned with dev workflows in Jira.

To bring out the best in both these tools, I have come across companies implementing some pretty advanced integrations.

But at the basic level, they all follow some simple steps first to connect Microsoft Azure DevOps with Atlassian Jira. After that, they can configure the sync any way they want.

Let’s look into the steps to integrate Jira (Cloud or on-premise) with Azure DevOps using Exalate. You can also install Exalate via docker for both of these apps.

There are a few template-based no-code apps on the Atlassian marketplace that help you integrate Azure DevOps and Jira. But, they lack the advanced integration capabilities that tools like Exalate have. To bring this to light, I’ll share some advanced Jira Azure DevOps integration use cases we’ve helped customers with.

4 easy steps to set up your Azure DevOps Jira integration

Step 1: Install Exalate on Jira and Azure DevOps

You can install the Exalate app via the marketplace or through its integrations page. You can request a free trial, and our team will assist you with the initial setup.

The Atlassian marketplace apps can be found here: Jira and Azure DevOps.

You can always watch some quick installation videos here.

Step 2: Connect Jira to Azure DevOps

You can connect these platforms where one side initiates the connection request, and the other accepts the request.

You need some basic information, such as the destination instance details, the projects you want to sync between Jira and Azure DevOps, and an invitation code (which is generated automatically for you).

 

Exalate has two modes: the Basic mode and the Script mode. The Basic mode is for simple syncs and does not support configuration.

Exalate’s Script mode is where all the advanced configuration happens. It also supports the dynamic AI-powered scripting assistant, AI Assist.

image2.png

So, set up a connection in this mode by following this Jira Azure DevOps integration guide.

Step 3: Set up your sync rules

Sync rules allow you to decide what you want to send and receive. These rules are low-code Groovy scripts that help you configure the incoming and outgoing data according to your needs.

The outgoing sync decides what information needs to pass over to the remote side, and the incoming sync decides how to display the information coming from the remote side. These sync rules are present on both sides so that admins can control them independently.

image1.png

You can configure these sync scripts to exchange a variety of default and custom fields, map statuses or issue types, sync third-party fields, add advanced logic, and much more.

For instance, to send a custom field from Jira to Azure DevOps, simply add it to the outgoing Jira sync as follows:

 

replica.customFields."CF name" = issue.customFields."CF name"

 

On the Azure DevOps side, you get to decide the field that’ll display the Jira custom value.

Instead of manually writing the scripts, you can use AI Assist to generate them faster.

 

The AI Assist feature appears as a chat window in both the incoming and outgoing sync rules tabs.

 

To use AI Assist, enter your sync requirements into the chat box, and it will generate the necessary scripts based on your input, existing configurations, and Exalate’s scripting API.

 

However, keep in mind that AI Assist, like any AI, can make mistakes. So it’s important to be clear and detailed with your prompts.

 

Let’s say you want to sync work item statuses from Azure DevOps with issue statuses in Jira. In the AI chat box, you can type something like this:

 

image4.png

 

Give it a moment to generate the script.

 

The system will highlight changes: red lines indicate deletions, while green lines show new additions. You can accept or reject the suggestions and refine your prompt if needed.

 

Once you are satisfied with the result, remember to publish your changes.

Step 4: Automate your sync with triggers

To filter out issues and work items transferred between Jira and Azure DevOps, set these conditions as triggers, based on which your sync will be automated.

To set these conditions and automate your sync process, use Jira Query Language (JQL) on Jira and Work Item Query Language (WIQL) on Azure DevOps.

image3.png

 

 

 Some common Jira triggers in JQL:

  • project = DEMO AND labels = sync
  • project = DEMO AND reporter = 623aa86b7910a200718add3c
  • project = DEMO AND issuetype IN (Story, Task) AND created > "2023-01-05"
  • project IN (DEMO, Discovery, EDN) AND issuetype = Bug AND priority = Highest
  • project = "Exalate Demo" AND status = "In Progress"

Some common Azure DevOps triggers in WIQL: 

  • by work item type: [Work Item Type] = 'Task'
  • by multiple WorkItem types:  [Work Item Type] in ('Feature', 'Epic', 'User Story', 'Task')
  • by status: State = 'To do'
  • by multiple statuses: State in ('To do', 'Doing')

That’s it! You’ll sync your data automatically based on the rules and triggers you have set.  

As promised, here are some unique ways some of our customers have implemented their Jira Azure DevOps synchronization.

Advanced Jira Azure DevOps integration use cases

The following use cases really make implementing such an integration worth the effort.

  • Sync and maintain issue links, relations, and subtask mappings between Jira Cloud and Azure DevOps
  • Maintain parent-child hierarchy when integrating Jira on-premise with Azure DevOps
  • Sync area and iteration paths in Azure DevOps as custom fields in Jira
  • Sync epics between Jira and Azure DevOps
  • Map and sync statuses between Jira and Azure DevOps
  • Map and sync Jira issue types with Azure DevOps work items
  • Advanced comment sync between Jira and Azure DevOps
  • Sync any issue and work item field available via REST APIs

If you want to learn more about what you can sync between Jira and Azure DevOps, don’t hesitate to get in touch with our team to discuss your use case.

 

9 comments

Comment

Log in or Sign up to comment
francis
Atlassian Partner
February 21, 2024

Watch the video of an Azure DevOps Jira integration here --> https://bit.ly/49KGHCf

David Berclaz _Apwide_
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
February 21, 2024

Hi @francis

Thank you for sharing! I recall facing similar synchronization challenges at Nestlé, where we decided to avoid duplicating information across several tools because synchronization, especially bi-directional, is always a challenge.

It's encouraging to see Exalate addressing these issues. However, I believe it's always preferable to avoid duplication in the first place.

For organization using:

  • Jira for development backlog/ticketing, and
  • Azure DevOps for code repositories and deployment pipelines (which appears to be the standard use case, although I may be biased by our customer base),

we offer a free Azure DevOps Extension that connects to our Golive App and covers these use cases:

  • Display in Jira issues the environment and timing of deployments (based on Azure DevOps commit messages).
  • Create missing Jira versions.
  • Synchronize versions across multiple Jira projects, if necessary.
  • Add Jira issues to versions (updating the fixVersion field).
  • Create missing environments in Golive, if necessary.

✅ Developers no longer need to update Jira tickets manually.
✅ The QA Team can easily track where the Jira tickets are deployed.
✅ Release Managers always have access to updated release notes.

An added bonus: this solution also works for Jira Data Center, providing the equivalent (and more) of the Deployments feature from Jira Cloud right in your Jira Data Center. 💪

Cheers,

David

Like # people like this
francis
Atlassian Partner
February 21, 2024

Hi @David Berclaz _Apwide_ ,

We do see the value of this type of integration which is more like a viewport to the remote system in the context of your work environment - which is a totally valid approach.

Each approach has its own applicability. 

We do see a lot of ADO - JC where teams of different organisations need to collaborate.  With the synchronisation capability, everyone can cooperate without the need to swivle seats. 

Like David Berclaz _Apwide_ likes this
David Berclaz _Apwide_
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
February 21, 2024

Yes, I definitely see how such an approach can improve collaboration and save time. How do you manage the mapping of users between the different systems? Because that was one of the main issues we faced when we synchronized HP ALM and Jira using ConnectALL.

Move Work Forward
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
February 21, 2024

Hi,

Nice article.

If you need to bring development information from Azure DevOps to Jira, like pull requests, builds, branches, deployments - check out Azure DevOps for Jira.

Cheers,
Leo

Like francis likes this
John Funk
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
February 24, 2024

This is helpful stuff! I see more and more clients wanting to do this synchronization. 

Like # people like this
GdP
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
July 22, 2024

Hello,

I am searching for a synchronisation tool between Azure DevOps and Jira for the Work Items: Epic, Feature, User Story. In Azure DevOps the Work Items I would like to synchronize in Jira are in different ADO Projects.

=> Does your tool is able to synchronize Work Items in different ADO Project?

Thank you in advance for your answer.

Best regards,

 

Like francis likes this
francis
Atlassian Partner
October 28, 2024

Hi @David Berclaz _Apwide_ 

Sorry for the belated answer (a colleague pointed me to the fact that I missed your comment)


> Yes, I definitely see how such an approach can improve collaboration and save time. How do you
> manage the mapping of users between the different systems? Because that was one of the main
> issues we faced when we synchronized HP ALM and Jira using ConnectALL



Is this creating users on the HP side or on the Jira side?


On the Jira side (On Premise), you can use the createUser function
https://docs.exalate.com/docs/nodehelpercreateuser-36765894

If on Jira Cloud - users can always be created through the httpClient functionality, but it requres that the appropriate permissions are set.








francis
Atlassian Partner
October 28, 2024

Hi @GdP 

Sorry for the belated answer (a colleague pointed me to the fact that I missed your comment)


Hello,

I am searching for a synchronisation tool between Azure DevOps and Jira for the Work Items: Epic, Feature, User Story. In Azure DevOps the Work Items I would like to synchronize in Jira are in different ADO Projects.

=> Does your tool is able to synchronize Work Items in different ADO Project?

Thank you in advance for your answer.

Best regards,

 

Yes - Exalate is supporting multiple ADO projects.   It requires some scripting skills, but with our newly introduced AI Assist, we expect that you can have it done in a flash.

If not - let us know.


 

TAGS
AUG Leaders

Atlassian Community Events