is way more than a ticketing system. It’s a programmable platform that lets you hook into data and services from other systems in your enterprise to fulfill your team’s mission-critical work. The nature of large enterprises often requires JIRA
to integrate with many third-party legacy tools to build a complete picture of the work to be done. This introduces new considerations and challenges for cross-system performance, stability, and dependency management. Here are some techniques to consider when you need to hook JIRA into your enterprise platform.
Easier Integration Paths
These techniques require some technical knowledge, but most of the work can be accomplished through point and click configuration in a web interface, no programming required.
|Integration with other Atlassian Tools
||Configure Application Links
||Allows JIRA to use many “out of the box” integrations baked into the Atlassian suite of products (Confluence, Bitbucket, Bamboo, FishEye, Crucible, Stash)
||Many rich features and information panels are available from Atlassian “out of the box” through this method.
|Integration with popular SaaS Tools
||Install a JIRA addon support by the Vendor of remote system
||Salesforce & JIRA Server Connector, ZenDesk Support for JIRA
||The Tool Vendor or Atlassian must have created a plugin to support the integration you need.
|Integration with Rest API’s
||Install a JIRA addon allowing integration hooks to the remote system to be configured thru the JIRA administration user interface.
||The API you are connecting to may need to provide data in a certain format in order for the tool to consume it correctly in JIRA.
|Integration with less popular SaaS Tools
||Use an intermediary service that connects to both JIRA and your remote system vendor
||Note that your data may travel thru a 3rd party, which could have implications for your organization’s data security policy
|Communicating issue events that occur in JIRA to other systems
||You can use JIRA webhooks to notify your add-on or web application when certain events occur in JIRA.
||Atlassian Documentation – Webhooks
||Webhooks tends to have growing popularity in the Atlassian integration bots space.
Advanced Integration Paths
The following techniques require a programmer’s involvement, but give you the most complete control over the behavior of your integration.
|Call out from JIRA to another system
||Develop a JIRA script that implements a call to a remote system’s API
||Scripts in JIRA can be configured as part of your JIRA workflows. They can execute in response to events triggered across a class of issues in JIRA, or on a regularly scheduled basis.
|Call in to JIRA from another system
||Develop a custom script (e.g. In Python) that lives in or near the remote system and executes logic in JIRA
||An Integrated Development Environment for your preferred programming language
||Additional ease of use when calling JIRA API’s is provided by the marketplace add-on JIRA Command Line Interface (additional license required.)
|Integration requiring advanced User Interface customization (eg. New Field Types)
||Develop a custom JIRA addon that interacts with the JIRA Java API and any remote systems
||Atlassian Tutorial – Creating a Custom Field Type
||Requires Java programming knowledge. Note the need for a skilled resource to maintain and upgrade the add-on in the future.
|No API exists for the remote system
||Direct SQL queries
||Database scripts (for Postgres, mySQL, Oracle, or Microsoft SQL Server)
||Not preferred unless the remote system is a legacy application with no API support. Regardless of the remote system’s capabilities, Atlassian does not support directly manipulating the JIRA database from SQL tools as this can generate problems with JIRA data integrity.
|Integration between many systems and JIRA is required
||Introduce a middleware data broker
||Requires additional tool license. Assess the savings and efficiency that can be achieved by having one platform supporting the number of integration points you require.
With JIRA at the center of all integrations, here’s an example of how other third-party applications may conceptually integrate to build one seamless Enterprise platform.
Now, before you get started. Here are few factors to consider when you’re looking to integrate JIRA with one or more external tools:
- Check the performance and health of each system individually, and tune/optimize for areas of performance wherever necessary before proceeding with integration.
- When integrating two or more systems, asynchronous (1-directional) integration is usually less complicated than synchronous (bi-directional) integration.
- If integration involves just moving data between systems “as-is”, this is less taxing on systems than if the data must be processed or translated in some way as it is being moved to the destination system.
- Finally, bring in an expert who can help review/assess each systems for readiness, decouple the systems if necessary through middleware, or use asynchronous messaging instead of real-time HTTP events.