Best of breed tools such as Jira and Azure DevOps Services (VSTS) bring richness to the enterprise ecosystem. The integration of Jira with Azure DevOps Services (VSTS) enhances collaboration between the customer service and development teams. This, in turn, helps resolve the customer issues faster and gives visibility to both teams into customer priorities. There is no manual effort required from either of the teams to keep each other updated on the latest work status or customer expectations.

OpsHub Integration Manager integrates Jira and Azure DevOps Services (VSTS) bidirectionally. On this page, we will discuss the bi-directional integration of:

On this page, we will discuss the integration of:

Jira [Improvement]

Azure DevOps Services (VSTS)[Feature]

Jira [Bug]

Azure DevOps Services (VSTS)[Bug]

System Pre-requisites

Configuring system pre-requisites is mandatory for successful system configuration.

Check out the pre-requisites for Jira  and Azure DevOps Services (VSTS) systems before you proceed with the integration.


Integration Configuration

Log in into OpsHub Integration Manager. The default credentials are: User Name: admin, Password: Password.

prerequisites Before you proceed with the configuration, check whether the system is behind a proxy server. If yes, then set up proxy parameters in OpsHub Integration Manager.

Click Integrate on the top right corner of the screen and then click the Integrate icon .

The integration configuration page opens.

  • Enter a unique name for the integration. For example, this integration is named Jira-Azure DevOps Services (VSTS) Integration.
  • Click integration configuration adjacent to the System 1 and System 2 fields one by one to configure Jira and Azure DevOps Services (VSTS).

  • Configure System(s)

    Once you have fulfilled all the pre-requisites and are done with the above-mentioned check, configure Jira and Azure DevOps Services (VSTS) by following the steps given on Jira and Azure DevOps Services (VSTS) pages respectively.

    When you save the respective system configuration pages after configuring the systems, the systems will automatically be added to the integration. Proceed to adding projects and entities in the integration.

    Select Projects and Entities

    integration configuration If you receive the following error: PKIX certification path not found and the projects and entities don’t load properly, then import SSL certificate onto OpsHub Integration Manager’s Java KeyStore before you proceed.

    In the Add Project(s) to Sync section, select the projects you want to synchronize between Jira and Azure DevOps Services (VSTS) by clicking them. As we select Test Project from Jira and Demo Project3 from Azure DevOps Services (VSTS).

    Once the projects are selected, define the source project and target project.

  • If you select Azure DevOps Services icon, the data would flow from Jira to Azure DevOps Services (VSTS).
  • If you select Azure DevOps Services icon, the data flow would from Azure DevOps Services (VSTS) to Jira.
  • If you want a bi-directional flow of data, select Azure DevOps Services icon.
  • Once the direction is selected, the arrows would turn grey. We have selected the bi-directional flow.

    OpsHub Integration Manager fetches entities available in both systems and shows them in entities list for both systems. From the Select Entities to Sync section, select the relevant entities for both systems. In this case, we will select Improvement from Jira and Feature from Azure DevOps Services (VSTS).

    The next step is to define the fields that need to be integrated for every entity mapped.So once the entities are selected,click the entities adjacent to Select fields to be Synced to create the mapping between these two entities. You will, now, be navigated to Mapping Configuration screen.

    Mapping Fields

    Entity: Improvement and Feature
    Following details are automatically populated in the Mapping section: Systems, Projects, and Entities, and Mapping Name. If you wish, change the name for the mapping in the Name field.

    Now, either click the Create from Scratch button to define the mapping from scratch or click Auto Map button to automatically map all fields with same name. Even if you select the Auto Map button, OpsHub Integration Manager will allow you to remove or add more fields before saving mapping. We select Create from Scratch.

    Mapping Mandatory Fields

    Now from the All fields drop-down list, select the Mandatory fields option.

    Mandatory fields The integration would fail if the mandatory fields are not mapped.

    You will see, Summary as the Mandatory field in Jira for this instance, map it to Title field in Azure DevOps Services (VSTS).

    Mandatory fields Mandatory fields might vary from one instance to another.
    Azure DevOps Services (VSTS) Check the Mandatory fields for Jira from Jira UI as well and map them accordingly to suitable field(s) in Azure DevOps Services (VSTS).

    Mapping Look-up Type Fields
    Once you have mapped the Mandatory fields, you can now add more fields for mapping. We map the Look-up type fields first.: Look-up type fields are multivalued fields. During mapping the fields for integration, the values of Look-up fields must be mapped for the mapped entities. In this case, we choose Status and Priority as the Look-up type fields to be mapped. We map:

    1. Priority to Priority
    2. Status to Status

    The Look-up type fields are marked with Look-up type fields icon . Once you have mapped these fields in Jira and Azure DevOps Services (VSTS), click Look-up type fields icon to map their values one by one.

    Values for Look-up type fields may vary from one instance to another. Kindly map the values that you think are equivalent by clicking them. You have to map the values for all Look-up types fields before you proceed.

    For example, map the following values for Priority:

  • Critical – 1
  • High – 2
  • Medium – 3
  • Low – 4
  • You can map values for Status fields accordingly.

    Now, save the value mapping.

    Then click the Create Mapping button to save the mapping.

    Once you save the mapping successfully, you will be further re-directed to the Integration page.

    Default Mapping is used to write default value to target field in case if there is no value coming from mapped source fields. Click default-mapping to define the default mapping. The Default Mapping pop-up opens.

    For user mapping, default value should be configured in form of user name or email as user name as expected by target end-point.

    For user mapping, default value will not be written to target even if matching user not found in target. This will be done only if nothing coming from mapped source field.

    Mapping Rich Text Fields
    A rich-text field provides editing tools to customize the text entered in the field. We can map rich text fields with similar values from both the systems, for example, in this case we have mapped Description from Jira to Description in Azure DevOps Services (VSTS).

    Then click the Create Mapping button to save the mapping.

    Once you save the mapping successfully, you will be further re-directed to the Integration page.

    If you do not wish to add more entities, save the integration and activate it.

    Entity: Bug and Bug
    From Select Entities to Sync, select the relevant entities for both systems. In this case, we will select Bug from Jira and Bug from Azure DevOps Services (VSTS). Create a Mapping for these entities as well.

    Click the adjacententitiesto Select fields to be Synced to create the mapping between these two entities. You will be navigated to Mapping Configuration screen.

    You can refer to the previous mapping and follow the same steps further.

    It is time to save this mapping now. Once the mapping is created, click the Create Mapping button to create & save this mapping as well.

    The image on right shows a reference mapping for these entities. Once you save the mapping successfully, you will be further re-directed to the Integration page.

    Comments and Attachments Mapping

    At this stage, you can also map entities such as comments and attachments.

    Refer to the videos on this page to learn in detail about Comments and Attachments mapping.

    Configure Filter(s) (Optional)

    Criteria Filter helps in integration of subset of entities based on some conditions. For example, user can specify that only bugs with high priority are to be synchronized or tickets that are closed should be synchronized. Once the entity meets the criteria, it is always in synchronization, even after the criteria changes.

    Criteria Configuration can be applied in both the directions, forward direction would mean Jira would be the source system and backward direction would mean Azure DevOps Services (VSTS) would be the source system.

    entities to be synchronized It is not a mandatory step for integration and if no filter needs to be applied on the entities to be synchronized, this step can be skipped.


    If you want to specify conditions for synchronizing an entity between Jira and Azure DevOps Services (VSTS) to be integrated, use the Criteria Configuration feature.
    For example, we only want to synchronize fields with Low Priority Bug to Jira then we set the configuration as shown here.

  • Click the configuration-criteria icon against the mapping on which you are going to apply the criteria.
  • The Criteria Configuration pop-up opens. In the pop-up, select Yes from Configure Criteria list.
  • Enter the criteria query.
  • configuration-criteria The query is different for different systems. You can refer to more details about Criteria Configuration in Jira and Azure DevOps Services (VSTS) from their respective configuration pages

  • From the Select criteria storage type drop-down list, select In Database option.

  • Save and Activate Integration

    To save the integration in active mode, slide the Activate Integration button to the right.

    As the final step, click Save button to save the integration.

    The integration will be created. You will also get a pop-up at the bottom of the screen confirming the integration has been successfully configured and the integration will be listed in the integrations list.

    Test the Integration

    At this stage, test the integration by trying to synchronize data between the specified Jira and Azure DevOps Services (VSTS) projects.

    Azure DevOps Services (VSTS) projects You should not be using the integration user credentials to create entities in the systems as in this case the integration will not work.

    Create/Update event in the source system and check whether the event synchronizes to the target system. Wait for a minute for the data to synchronize. If you face any issue, please refer this page for possible reasons and their fix.

    Azure DevOps Services (VSTS) projects

    Additional Configurations

    Mapping User Fields

    Choose the mapping in which you want to make the additional configuration. We choose Jira [Bug] – Azure DevOps Services (VSTS) [Bug] mapping. Edit this map to add the changes.

    We will add user-types of fields such as Author, Updated By, etc. in the mapping. The user fields vary from one system to another. For example, in this integration, we map the user fields: Assignee in Jira to Assigned to in Azure DevOps Services (VSTS). You are free to choose other fields.

    Azure DevOps Services (VSTS) projects User fields are mapped by email id. If e-mail ids of the users are same in both the systems, it will be mapped automatically, but if the email ids are not same, you will have to update the one-to-one XSL for user fields mapping.

    Once the additional configurations are completed successfully, update the mapping, and activate the integration, and save it again.