Best of breed tools such as ServiceNow and Azure DevOps Services (VSTS) bring richness to the enterprise ecosystem. The integration of ServiceNow 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 ServiceNow and Azure DevOps Services (VSTS) bi-directionally. On this page, we will discuss the bi-directional integration of:

ServiceNow [Enhancement]

Azure DevOps Services (VSTS) [Feature]

ServiceNow [Problem]

Azure DevOps Services (VSTS) [Bug]

System Pre-requisites

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

Check out the pre-requisites for ServiceNow and Azure DevOps systems before you proceed with the integration.

Azure DevOps

Integration Configuration

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

OpsHub Integration Manager 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 ServiceNow – Azure DevOps Integration.
  • Click ServiceNow and Azure DevOps adjacent to the System 1 and System 2 fields one by one to configure ServiceNow and Azure DevOps.

  • Configure System(s)

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

    After you save the respective configuration form after completion of the system configuration, the system automatically will be added to the integration form. You can now proceed to adding projects and entities in the integration.

    Select Projects and Entities

    projects and entities 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 ServiceNow and Azure DevOps Services (VSTS) by clicking them. For example, ServiceNow doesn’t have projects, so OpsHub Integration Manager will show OH_NO_PROJECT and Demo Project3 from AZURE DEVOPS

    projects and entities You can map OH_NO_PROJECT with multiple projects in Azure DevOps.

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

  • If you select ServiceNow to Azure DevOps icon, the data would flow from ServiceNow to Azure DevOps.
  • If you select ServiceNow to Azure DevOps icon, the data flow would from Azure DevOps Services (VSTS) to ServiceNow.
  • If you want a bi-directional flow of data, select Azure DevOps Services (VSTS) to ServiceNow 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 Enhancement from ServiceNow and Feature from Azure DevOps.

    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 OpsHub Integration Manager 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: Enhancement 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.

    You will see the APIs of ServiceNow and Azure DevOps Services (VSTS) do not allow mandatory fields to be called. Therefore, you will have to search the mandatory fields from the systems’ UIs and map them.

    Azure DevOps Services (VSTS) For ServiceNow, a field will be writable only if it is part of import set.

    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 multi-valued 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 Azure DevOps Services (VSTS) icon . Once you have mapped these fields in ServiceNow and Azure DevOps, click values one by one 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:

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

    Now, save the value mapping.

    Default Mapping is used to write default value to target field in case if there is no value coming from mapped source fields. Click value 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 map Description from ServiceNow to Title in Azure DevOps.

    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: Problem and Bug
    From Select Entities to Sync, select the relevant entities for both systems. In this case, we will select Problem from ServiceNow and Bug from Azure DevOps. Create a Mapping for these entities as well.

    Click the adjacentServiceNoto 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 ServiceNow would be the source system and backward direction would mean Azure DevOps Services (VSTS) would be the source system.

    entities 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 ServiceNow and AzureDevOps to be integrated, use the Criteria Configuration feature.

    For example, we only want to synchronize fields with Low Priority Bug to Azure DevOps Services (VSTS) then we set the configuration as shown here.

  • Click the entities 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.
  • Criteria Configuration The query is different for different systems. You can refer to more details about Criteria Configuration in ServiceNow and Azure DevOps 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 ServiceNow and Azure DevOps Services (VSTS) projects.

    oim 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 one minute for the data to synchronize. If you face any issue, please refer this page for possible reasons and their fix.

    data to synchronize

    Additional Configurations

    Mapping User Fields

    Choose the mapping in which you want to make the additional configuration. We choose ServiceNow [Problem] – Azure DevOps [Bug] mapping. Edit this map to add the changes.

    We will add user-type 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: Assigned to in ServiceNow to Assigned to in Azure DevOps. You are free to choose other fields.

    data to synchronize 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.