Azure DevOps and ServiceNow Integration

    Azure DevOps and ServiceNow Integration

    A team of developers using Azure DevOps can get in sync with the ITSM team working with ServiceNow. 

    This synchronization will help them map entities, objects, and fields between both platforms unidirectionally or bidirectionally.

    But for this to go smoothly, you need to find a way to bridge the gap between the two platforms. With a tool like Exalate, users can set up a custom Azure DevOps to ServiceNow integration.

    You can also deploy Exalate for ServiceNow and Azure DevOps on Docker.

    Exalate Installation and Configuration Steps 

    Here is a brief overview of an Azure DevOps ServiceNow configuration. 

    1. Install the Exalate app for ServiceNow. You can get started from the integrations page.
    2. Install Exalate for Azure DevOps from the Visual Studio Marketplace. Or you can request a trial from our integrations page.
    3. Choose the connection type: Basic or Script.

    To learn how to set up a connection between Azure DevOps and ServiceNow using the Script mode, go to the Getting Started guide for a detailed visual breakdown. 

    Choose two platforms you want to configure, and you’ll get a comprehensive explanation of the steps involved.

    Advanced Azure DevOps and ServiceNow Integration Use Cases Using AI Assist

    Exalate comes with an embedded AI-powered scripting engine that allows you to set up syncs in the configuration panel.

    You can use natural language prompts to explain the configuration scenario, and the AI Assist tool will help you set it up.

    Exalate also provides several Script Helpers to help you get started with scripting connections. For a step-by-step breakdown, check out a detailed Azure DevOps ServiceNow integration guide.

    Here are some Azure DevOps ServiceNow integration use cases.

    Use Case 1: Map and Sync Statuses between Azure DevOps and ServiceNow

    When the status of the Azure DevOps work item changes from “New” to “Closed”, the ServiceNow incident state should change from “Open” to “Resolved”. 

    Enter the code snippet or script mapping you want for your use case, or use AI Assist to generate the code by typing in a detailed prompt describing what you want to sync.

    Go through the generated output to confirm if it aligns with your expectations. You can continue refining the prompt until you get what you need.

    def statusMap = [
    "New"   : "Open",        
    "Done"  : "Resolved"
    ]
    
    
    def remoteStatusName = replica.status.name
    issue.setStatus(statusMap[remoteStatusName] ?: remoteStatusName)

    Click Discard if the generated code is incorrect. If the generated script is correct, click Insert Changes. Once you’re satisfied with the scripting, click Publish to save and implement changes.

    Note: Review the AI Assist prompting guidelines to improve your prompts and, thus, the output. 

    Use Case 2: Map and Sync Custom Fields between Azure DevOps and ServiceNow

    Apart from the default fields and entities in ServiceNow and Azure DevOps, custom fields are also available for synchronization. You just need to call the correct name and header in the API.

    The prompt to the AI Assist can be something like this:

    "I want to sync an Azure DevOps custom field named "Contact Name" with a ServiceNow custom field named "Contact Name"

    Here is the code snippet generated by AI Assist for the Azure DevOps incoming sync.

    workItem.customFields."Contact Name".value = replica.customFields."Contact Name".value

    You can discard, accept, or refine the prompt to nail down the specifics of your use case.

    Use Case 3: Sync Urgency and Priority between ServiceNow and Azure DevOps

    The priority field is read-only in ServiceNow, which means you can only set up a unidirectional sync to Azure DevOps. So, the workaround is to create a custom field in ServiceNow and sync Azure DevOps priority there.

    Here is a sample prompt:

    "I want to sync Azure DevOps work item priority to a custom field named "Priority" in ServiceNow so that whenever I change the priority of the Azure DevOps work item, the custom field in ServiceNow also changes. The mapping should be "

    Here is the code snippet generated by AI Assist.

    replica.customFields."Priority" = workItem.priority

    The outgoing value for the work item priority should be mapped as follows:

    def priorityMapping = [ 
    
    "1 - Critical": "High", 
    "2 - High": "High", 
    "3 - Moderate": "Medium", 
    "4 - Low": "Low", 
    "5 - Planning": "Lowest" ]
    . . .
    
    workItem.priority = nodeHelper.getPriority(priorityName)

    You can discard, accept, or refine the prompt to nail down the specifics of your use case.

    Other use cases include syncing checklists and radio buttons, SLA and time-related information, and correlation details between Azure DevOps and ServiceNow. 

    AI Assist, like any other AI, can make mistakes. So, try to be as precise and detailed as possible with your prompts. 

    Note: The code snippet might not work precisely as intended due to changes to the environment or other reasons. If you encounter any problems, reach out to us for clarification.

    Automate Azure DevOps ServiceNow Integration Using Triggers

    Exalate uses WIQL (Work Item Query Language) or the Azure DevOps Search Syntax to set trigger conditions on the Azure DevOps side.

    [Work Item Type] = 'Task' AND System.TeamProject = 'Demo'

    Any work item of type “Task” within the project “Demo” will be synced automatically.

    You can use the ServiceNow search syntax to specify the filter query.

    caller_id=9ee1b13dc6112271007f9d0efdb69cd0

    All ServiceNow records opened under the caller ID will be logged under the corresponding name in the Azure DevOps work item.

    Supported Azure DevOps and ServiceNow Entities

    Check out the comprehensive list of supported ServiceNow entities. Some of the most popular ServiceNow entities are incidents, problems, change requests, RITM, and catalog tasks. 

    Here is the comprehensive list of supported Azure DevOps entities.

    This is a sample mapping between ServiceNow incidents and the Azure DevOps work items:

     ServiceNow Incident <> Azure DevOps work item 

    • short description↔ summary
    • description ↔ description
    • urgency ↔ priority
    • state ↔ status
    • caller ↔ assignee
    • comments/ work notes ↔ comments
    • attachments ↔ attachments
    • tags ↔ labels
    • custom fields ↔ custom fields
    • any field available via REST APIs

    Video Tutorials

    Other Resources 

    • Download the Azure DevOps ServiceNow integration eBook.

    • For any help or support for your Jira and ServiceNow integration use case, reach out to our integration engineer. 

    • Talk to Aida, your AI-powered integration sidekick, and get answers to your questions faster. 

    • Check out the detailed security and architecture whitepaper.

    • Visit the Exalate Academy to get access to learning materials.

    • Subscribe to Exalate Hack to get email updates and expert tips about the product.