ServiceNow and Jira Integration

    Organizations integrate Jira and ServiceNow to exchange data. For this to work, you need to map the right entities and set up the integration for your use case.

    Exalate supports Jira Service Management, Jira Software, and Jira Work Management.

    You can install it on Jira Cloud or Jira on-premise or even set up a private connection in case any of your instances are behind a firewall. 

    You can also deploy Exalate for ServiceNow and Jira on Docker.

    Exalate Installation and Configuration Steps 

    Here is a brief overview of a Jira ServiceNow configuration. 

    1. Install the Exalate app for ServiceNow. You can also get started from the integrations page
    2. Install the Exalate app on Jira.
    3. Choose the connection type: Basic or Script.Integrate Jira and ServiceNow

    To learn how to set up a connection between Jira and ServiceNow using the Script mode, go to the Getting Started guide for a detailed visual breakdown. Just choose the two platforms you want to configure, and you’ll get a comprehensive explanation of how to proceed.

    Advanced Jira and ServiceNow Integration Use Cases (+ using AI Assist)

    Exalate allows you to explore multiple advanced use cases thanks to its AI-powered scripting engine embedded in the sync configuration panel.

    It also provides several Script Helpers to reduce the effort of scripting connections from scratch. For a step-by-step breakdown, check out a detailed Jira ServiceNow integration guide.

    Here are some Jira ServiceNow integration use cases.

    Use Case 1: Map and Sync Statuses between Jira and ServiceNow

    If you want the status of a Jira issue to be reflected in the corresponding ServiceNow entity, you need a rule to make sure the right statuses are mapped on both sides.

    For instance, when the Jira issue status changes to Done, add a resolution note to the issue. Once the Jira status changes, the ServiceNow incident status changes to Resolved. The resolution note from Jira is added to the ServiceNow incident, and the proper resolution code is selected based on the user mapping. 

    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.

    AI assisted Jira ServiceNow integration


    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",        
    "Working"   : "In Progress",
    "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, then 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 Jira and ServiceNow

    If the default fields and entities in ServiceNow and Jira don’t fulfill your needs, you can add custom fields with a solid guarantee that Exalate can fetch and exchange data between them.

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

    "I want to sync a Jira custom field named "Contact Name" with a ServiceNow custom field named "User Info"

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

    issue.customFields."Contact Name".value = replica.customFields."User Info".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 Jira

    It is impossible to sync priority from Jira to ServiceNow by default because the priority field is read-only in ServiceNow. So, the workaround is to create a custom field in ServiceNow and sync Jira priority there.

    Here is a sample prompt:

    "I want to sync Jira issue priority to a custom field named "Priority" in ServiceNow so that whenever I change the priority of the Jira issue, the custom field in ServiceNow also changes."

    Here is the code snippet generated by AI Assist.

    replica.customFields."Priority" = issue.priority

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

    Use Case 4: Sync Only Internal Comments in Jira as Work Notes in ServiceNow

    Now, we want to send some data from Jira to ServiceNow such that when a comment is added to a synced issue in Jira, then it must appear as a work note (or an internal note) on the ServiceNow side. 

    The prompt should be something like this:

    "I want to sync Jira with ServiceNow so that the internal comments from a Jira issue will appear as internal work notes in ServiceNow."

    Here is the code snippet generated by AI Assist for the Jira Outgoing sync.

    replica.workNotes = issue.comments.collect { comment ->
       return [
           author: comment.author,
           body: comment.body,
           created: comment.created
       ]
    }
    

    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 Jira and ServiceNow. 

    Check out more Jira ServiceNow Integration use cases.

    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 Jira ServiceNow Integration Using Triggers

    Triggers help to automate the sync based on the conditions you provide. Exalate uses platform-specific triggers at all integrating ends. 

    Exalate uses Jira Query Language (JQL) to set trigger conditions on the Jira side.

    project = DEMO AND labels = vital

    Any project with the name “DEMO” and the label “vital” 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 Jira issue.

    Supported Jira and ServiceNow Entities

    You can sync any entities or issues between Jira and ServiceNow. 

    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. 

    Note: Learn more about how to sync any entity in ServiceNow here

    Check out the comprehensive list of supported Jira Cloud and On-premise entities.

    This is a sample mapping between ServiceNow incidents and the Jira issues:

    •  ServiceNow Incident <> Jira issue 
      • short description↔ summary

      • description ↔ description

      • urgency ↔ priority

      • state ↔ status

      • caller ↔ reporter

      • comments/ work notes ↔ comments

      • attachments ↔ attachments

      • tags ↔ labels

      • custom fields ↔ custom fields

      • third-party plugin fields

      • any field available via REST APIs

    Video Tutorials

    Other resources 

    • Download the Jira 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.