Forums

Articles
Create
cancel
Showing results forĀ 
Search instead forĀ 
Did you mean:Ā 

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

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 with Azure DevOps Cloud using Exalate.

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.

Why Integrate Jira and Azure DevOps?

Teams often use Jira for project management and Azure DevOps for their DevOps, software development, or testing. Without a reliable connection, teams rely on manual updates, leading to delays, miscommunication, and status mismatches.

A well-configured Jira Azure DevOps integration helps you:

  • Automatically sync work items between platforms so both teams see the latest updates without manual copy-paste
  • Keep dev and product teams aligned with real-time status changes, comments, and attachments flowing both ways
  • Map Azure DevOps work item types (Tasks, Bugs, Features) to Jira work item types (Stories, Bugs, Epics) with custom rules
  • Maintain end-to-end traceability from feature request to release across both tools
  • Let each team stay in their preferred platform while data flows automatically

Common use cases include bug escalation, sprint synchronization, QA handoffs, cross-company vendor collaboration, and MSP client management.

4 Easy Steps to Set Up Your Azure DevOps Jira Integration

Step 1: Log In to Exalate and Create a Workspace

Go to exalate.app and log in to your Exalate account. If you're new, you can create an account using your email or Google sign-in.

Once logged in, create a workspace to organize your integrations. Click the "+ Create Workspace" button, enter a name and description, and confirm.

Step 2: Connect Jira to Azure DevOps

From your workspace, click "+ Add Connections" > "Create new connection".

Enter the name for your first system (System A). You can designate either Jira or Azure DevOps as System A. Enter your system's URL and authenticate. Jira uses OAuth, and Azure DevOps uses API tokens.

Complete the same setup for the second system (System B). Give your connection a name and description, review the details, and click "Create connection".

image1.png

Once the connection is created, select "Continue to configuration" and choose the Jira project you want to use for synchronization.

 

image5.png

Step 3: Set Up Your Sync Rules

After creating your connection, you have two configuration paths: "Quick Sync" and "Edit & Test".

Quick Sync lets you publish the starter configuration and sync one work item between Jira and Azure DevOps to verify that your connection works properly.

Edit & Test opens the draft editor, where you can customize your sync rules. Click "Create a new version" to start editing without affecting your live configuration. Changes in the draft are saved automatically.

 

image4.png

Sync rules are based on Groovy scripts. These scripts let you add custom data logic, field mapping, and conditional flows for any complex workflow.

The scripts are divided into incoming and outgoing scripts:

  • Outgoing script: Defines what data leaves your system and gets sent to the other side
  • Incoming script: Defines how data coming from the other side is mapped in your system

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

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.

image6.png

AI-Assisted Configuration with Aida

Instead of manually writing scripts, you can use Aida to generate them faster. Aida is available in both incoming and outgoing script sections.

  • For outgoing scripts: Describe what data should leave your system. For example, "Exclude attachments" or "Only sync high-priority work items."
  • For incoming scripts: Describe how incoming data should be applied. For example, "Map statuses" or "Set a default assignee if the user can't be found."

Based on Exalate's scripting API and your existing scripts, Aida generates working Groovy scripts with proper field mappings. Review the suggested changes (green highlights for additions, red for removals), then choose to "Insert" or "Discard" them.

 

image3.png

Test Run: Validate Before Production

Once your scripts are ready, use the "Start Test Run" option to validate your configuration against real data without affecting production. Select the work items you want to test, run the test, and review how the sync will be applied. Deploy only when you're confident everything works correctly.

Once satisfied, click "Publish Version" to apply the updated configuration to your live synchronization.

 

image7.png

Step 4: Automate Your Sync with Triggers

To filter out which work items get transferred between Jira and Azure DevOps, set conditions as triggers. These triggers automate your sync process.

 

image2.png

These triggers are platform-specific:

  • For Jira: Use Jira Query Language (JQL) to specify conditions for work items
  • For Azure DevOps: Use Work Item Query Language (WIQL) to apply conditions

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 work item 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! Your data will sync automatically based on the rules and triggers you have set.

Troubleshooting with Aida

If you run into sync errors, go to the "Troubleshooting" tab of your workspace. Hover over the error and click on the Aida icon. Aida provides a short explanation of the error and a proposed solution, including context-aware suggestions to resolve the problem quickly.

Advanced Jira Azure DevOps Integration Use Cases

As promised, here are some unique ways our customers have implemented their Jira Azure DevOps synchronization. The following use cases really make implementing such an integration worth the effort.

  • Sync and maintain work item links, relations, and subtask mappings between Jira and Azure DevOps
  • Maintain parent-child hierarchy when integrating Jira 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 work item types with Azure DevOps work item types
  • Advanced comment sync between Jira and Azure DevOps
  • Sync any work item field available via REST APIs
  • Multi-instance hub-and-spoke architectures connecting multiple Jira instances to a single Azure DevOps environment (or vice versa), all managed from a unified console

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

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

francis
Atlassian Partner
February 21, 2024

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

David Berclaz _Apwide_
Community Champion
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 Champion
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
Atlassian Partner
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 Champion
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.


 

Comment

Log in or Sign up to comment
TAGS
AUG Leaders

Atlassian Community Events