two-way sync
Jira Azure DevOps Integration
Connect Jira and Azure DevOps using a reliable, flexible integration solution. Improve the productivity of your cross-team and cross-company collaborations.
Automate data transfer workflows and get rid of silos with a bidirectional Jira Azure DevOps integration tool.
sync issue types, labels, priority, status...
sync any custom fields, attachments...
sync comments, worklogs, history...
Sync type, title, creator...
sync status, description, priority...
sync attachments, custom fields...
sync comments...
Seamless Azure DevOps Jira Sync For Smooth Collaboration
Automate your integration process between Jira and Azure DevOps to improve productivity.
Increase transparency by eliminating information silos between internal and external teams.
Automatic triggers to streamline synchronization
Real-time status updates on work items
Reliable one and two-way syncs from either side of the connection
Top-notch reporting for authorized stakeholders
Automatic restarts after downtimes
Unlimited sync capacity for Jira issues, sprints, etc.
Get Anything Synced Between Azure DevOps and Jira
Use one or two-way mappings to configure fields to precision. Decide what gets synced and what doesn’t. Your sync, your rules.
Check the full list of supported fields for Jira and for Azure DevOps
“
Its hard to talk about supported fields, because with Exalate you can support a lot. And it is impossible to capture on a single page. We have done cases with very weird things - certainly not limited to the ones listed on the documentation.
Majid Hassan | Exalate Support Engineer
discover if we cover your integration requirements
Book a demo to see Exalate in action
Get the Most out of Your Jira Azure DevOps Integration
Connect Your Teams
Start all cross-team connections from either Azure DevOps or from Jira, whichever option you prefer. You can install the app with a straightforward installation wizard on both Jira and Azure DevOps.
Automate Your Flows
Improve the speed and accuracy of syncs by using custom automated triggers. Configure your triggers with platform-native query language to establish granular control over every sync.
Sync Operations in Bulk
Use the custom Bulk Exalate feature to make your synchronization workflow more efficient. Connect multiple existing entities with similar trigger configurations in one operation.
Create Custom Connections
Use the Groovy scripting engine to explore endless connection scenarios and syncing possibilities. We have a few sample code snippets in our stash to get you started. Non-technical users can also use Visual Mode to create mappings with little or no code.
Keep Integration Decentralized
Maintain independent control over every sync, especially for cross-company integrations. Keep your confidential information close to your chest, with no need to share admin rights.
Scale Faster
Start working with out-of-the-box connections for basic synchronization scenarios. Continue growing with the help of script-based custom connections.
Secure by Design
Protect your sensitive data from unauthorized users. Let Exalate’s single-tenant architecture help you maintain autonomous control over your instance.
Ensure Data Privacy
Protect your sensitive data from unauthorized access with our single-tenant architecture that works even behind your firewall. Stay ahead of any data breach or suspicious activity using advanced endpoint detection and response (EDR).
Handle Errors Easily
Spot errors as soon as they occur and track them down to the source. Get the first crack at debugging your code before asking a technician.
“
The fact that Exalate is a very extensible and flexible product is quite an impressive feature for us. We can even build our own integration on top of it, and it actually shows that the developers and the engineers behind the product do really know what they are doing. Plus we have had an excellent customer experience.
Alexander Sinno |
Start Simple, Advance With Confidence
Work with simple integration templates or completely customize a sync between Azure DevOps and Jira.
Sync Anything
Set up two-way syncs to link new and existing work items (defects, components, test suites, test plans, test cases, etc).
Share data between fields, including comments, descriptions, attachments, statuses, priorities, urgencies, work logs, custom fields, and much more.
Add custom triggers to exert granular control over how your Jira Azure DevOps sync works.
Keep Synced Attachments Private
Add and share attachments to work items without having it reflect on the Jira issue. Filter the attachments you want to share with the other side of the integration.
if(firstSync){
issue.projectKey = “JSM”
issue.typeName = nodeHelper.getIssueType(replica.type?.name, issue.projectKey)?.name ?: “[System] Service request”
}
replica.addedAttachments.each { a ->
def comment = commentHelper.addComment(“!${a.filename}!”, [])[0]
comment.internal = true
comment.restrictSync = true
issue.comments += comment
}
issue.attachments = attachmentHelper.mergeAttachments(issue, replica)
replica.addedComments.each { it.executor = nodeHelper.getUserByEmail(it.author?.email) }
replica.changedComments.each { it.executor = nodeHelper.getUserByEmail(it.updateAuthor?.email) }
issue.comments = commentHelper.mergeComments(issue, replica, {it.internal = true; it})
Replicate Jira Issue Hierarchy on Azure DevOps
Map all features coming from Azure DevOps to appear under a Jira (Cloud) Epic. Retain the same hierarchy when sending data over to Jira.
if(firstSync){
workItem.projectKey = “Majids Development”
def typeMap = [
“Epic” : “Feature”,
“Story” : “Task”
]
workItem.typeName = nodeHelper.getIssueType(typeMap[replica.type?.name],workItem.projectKey)?.name ?: “Task”
workItem.summary = replica.summary
if(replica.issueType.name==”Epic”)
workItem.parentId = “9785”
store(issue)
}
. . .
Sync Inline Images Between Systems
Configure your custom sync to enable the syncing of inlin e images between Azure DevOps and Jira On-Premise.
import com.atlassian.jira.component.ComponentAccessor
class WikiToHtml {
static String transform(String wikiFormat) {
if (!wikiFormat) {
return null
}
. . .
def fixImage = wikiFormat?.replaceAll(/\!(\S+)\|\S+\!/, ‘<!– inline image filename=#$1# –>’)
fixImage = fixImage.replaceAll(/\!\^(\S+)\|\S+\!/, ‘<!– inline image filename=#$1# –>’)
fixImage = fixImage.replaceAll(/\!\^(\S+)\!/, ‘<!– inline image filename=#$1# –>’)
fixImage = fixImage.replaceAll(/\!(\S+)\!/, ‘<!– inline image filename=#$1# –>’)
. . .
}
replica.description = WikiToHtml.transform(issue.description)
replica.labels = issue.labels
replica.comments = issue.comments.collect {
comment ->
comment.body = WikiToHtml.transform (comment.body)
comment
}
“
We can now handle around 500 customer incidents per week, thanks to Exalate, which is a very good result regarding the number of products we’re dealing with. It synchronizes 45x faster than our previous solution.
Christof Cuyper |
Get Started In Minutes
01
install
Install the Exalate app on both Jira and ServiceNow. Or, have it as a bridge app on ServiceNow.
02
connect
Use the instance URL to connect the instances you want to integrate. Choose the no-code set-up or the Script mode.
03
customize
Configure your sync rules to make sure the right data is shared. Automate your sync with triggers.
04
synchronize
Now your instances are connected and will automatically exchange information instantly. Happy syncing!
Assistance on Demand
Let the best technical support managers and engineers help you fix errors and technical difficulties. Sit back while we do most of the work for you.
FAQ
Answers to the most frequently asked questions
You can sync work item type, title, description, priority, state, comments, attachments, custom fields, area path, tags, etc, on Azure DevOps. On Jira, you can sync summaries, descriptions, comments, attachments, assignees, reporters, labels, priority, due, work logs, custom fields (check box, cascading select, group picker), components, organizations, issue links, agile boards, versions, etc. To explore further sync possibilities, use the advanced scripting mode.
Exalate’s no-code Basic Mode is free to install and use for simple synchronization tasks. To get the advanced Script Mode, you need to buy the Premium Plan after a 30-day trial. Contact the sales team to get a more detailed pricing quote.
We offer Standard and Premier Support to our customers depending on their needs and the running service-level agreement. As part of our Premier Support, we’ll assign a dedicated support agent to assist with your problem. You’ll also get up-to-date progress reports about critical production issues.
Exalate has a built-in error recovery mechanism that allows you to fix problems and resume synchronization from the moment it fails. You can use the troubleshooter to examine the error stack trace to determine if the error occurred at the entity, connection, or application levels.
Jira sends data as a Wiki, while Azure DevOps uses HTML. To handle the formatting differences, Exalate uses converters (called Transformers) to change the incoming or outgoing data to the corresponding format on either side of the sync. One application of transformers is the synchronization of inline images between Jira and Azure DevOps. Transformers can convert HTML to Wiki, Markdown to Wiki, or Wiki to HTML.
Yes, Exalate supports single-tenancy, thus isolating your infrastructure and minimizing the risk of information leakage. When you deploy a node on the Exalate Cloud, it runs inside a ‘Kubernetes pod’ configured to prevent information leaks. You can also add a firewall as extra protection.
Yes, you can use Exalate to connect multiple Jira and Azure DevOps instances. This integration solution helps to streamline collaboration between developers, salespersons, marketers, and support agents. Exalate supports other ITSM tools like ServiceNow, Zendesk, Salesforce, and GitHub. Check out our integrations for more information.
How useful was this content?
Click on a star to rate it!
Average rating 4.7 / 5. Vote count: 23
No votes so far! Be the first to rate this post.
We are sorry that this post was not useful for you!
Let us improve this post!
Tell us how we can improve this post?