This section details the configuration that must be carried out in your Jira instance to make the integration work.
You must ensure that you have a project setup in Jira to create issues for. When setting up the trial for Jira, you will be taken through steps to create your first project, so you will always have at least one project available for posting.
It is possible to push initial estimates across to Jira when creating new issues. You can find out how to configure this further on in the guide, however, to use this feature you must ensure that your project uses a “Scrum” board, as Jira does not support time tracking on the new issue screen for a Kanban Board based project. You must also ensure that the original estimate field has been added to your issue type.
To sync updates from Jira issues back to Halo, you will need to create webhooks in Jira for the “Issue – Updated” and “Comment – Created“ events. To do this, click the settings icon in Jira, and go to System Settings. Then, scroll down the tree view until you see the advanced options, and there should be an option for webhooks:
The URL for the webhook should be set to your Halo API URL, followed by /notify. For example:
The exact URL you need to use is outlined in the Jira configuration screen within Halo and is highlighted further in this guide.
This section details how to configure the Jira integration in Halo.
To activate the Jira integration, go to Configuration > Integrations and enable the module. Please note that this integration cannot be used in tandem with the Azure DevOps integration. Once enabled, click into the integration to begin configuring it:
Begin by choosing your Jira instance type. Depending on which you choose, a different authentication method is required, and different boxes will be displayed based on this. Each authentication option should be self-explanatory, with links provided if you need to generate any tokens.
To link Halo to multiple Jira projects, you need to create Products in Halo and assign a Jira key to the product. You must be using at least version 1.22.1 or later in order to do this. You can configure your products in Configuration > Software Releases > Setup Products. On the details screen, you will see an option for Jira Project Key.
Issues can be created in Jira from tickets in Halo using actions. To do this, create a new action with the system use "Create Bug/Issue/Work Item", and make sure the action is available in your workflow.
The action will create an issue against the default project (using the name and key specified in the above step), unless the ticket is linked to a particular product which has a different Jira Project Key assigned to it. Tickets can be associated with different products by adding the product field to a ticket type.
When creating the issue in Jira, it's possible to send extra information across other than just the basic details.
It is possible to set the original estimate, remaining estimate and reporter fields for a new issue in Jira, as well as sending attachments from your ticket to Jira. To set these fields, you should add the corresponding field to the field list of the new action you have created. These fields will only be selectable once you have chosen the correct system use for the action.
For the reporter field to work, you must assign the ID of the Jira User to their corresponding Agent/User record. This must be done manually, or via a spreadsheet import. The fields can be updated on the details tab of both the User and Agent details screens.
Receiving Updates from Jira
It is possible to sync updates made to issues in Jira back to Halo. Following the steps outlined in the Jira Configuration part of this guide, create a webhook in Jira for the events specified on the setup screen:
To change the result of what happens to a Halo ticket when an update is received from Jira, there are some options below this to map statuses and custom fields. Setting up custom field mappings maintains your custom field values between the two systems, whilst status mappings allow you to change the Halo ticket status to a certain value depending on the new status of the Jira ticket. If you are mapping multi-select fields between Jira and Halo, you must ensure that the option list is equal across both systems.
Finally, there is an option to map ticket types. Ticket type mappings are used to determine which type of issue is created in Jira when you use your new system action. For example, if you match your Incident ticket type to the Bug ticket type in Jira, when you perform the action on an Incident, an issue of the type Bug will be created in Jira.