ServiceNow and Jira Integration

    Jira users can collaborate with ServiceNow users to improve the quality of IT service delivery and product development.

    This involves getting both systems to interact with each other and then syncing the correct fields and entities to get data flowing based on configurations and use case requirements.

    Exalate allows you to set up a Jira ServiceNow integration with minimal fuss. It is compatible with Jira Service Management, Jira Software, Jira Product Discovery, Jira Work Management, and other Jira products. It also supports on-premise and Docker deployment.

    Exalate Ramp-up and Configuration Steps

    Here is a brief overview of how to configure an integration between ServiceNow and Jira.

    Create an Account or Log In to Existing Account

    1. Navigate to the Exalate app.
    2. You can sign up using Google (SSO) with a company email or create your own account.
    3. Click Create an account to submit your information (business email address, first name, last name, strong password).
    4. Confirm your password and click on Create an account to proceed.
    5. Verify Your Email: Check your email inbox for a verification message from New Exalate. Note: The verification link expires after 2 hours.
    6. Click the verification link in the email. You will be redirected to complete your account setup.
    7. Log in to New Exalate with your email and password.

    Create a Connection Between Jira and ServiceNow

    1. Log in to your account.
    2. Click Add Connections > Create New Connection.
    3. The connection creation wizard opens, guiding you through the steps.
    4. To configure System A (Jira):
      1. Enter the system URL [https://example.atlassian.net].
      2. A console status check runs automatically.
      3. If the system is already part of your workspace, you will see a confirmation message and can skip authentication.
      4. If the system is new, authentication fields appear automatically.
    5. To authenticate System A (Jira), go through Jira Cloud OAuth authentication:
      1. Click Check Authentication and wait for validation. If you have multiple Jira sites, choose the one you want to use for this connection.
      2. Once successful, the Next button becomes active.
      3. Click Next to proceed to System B.
    6. To configure System B (ServiceNow), follow the same steps as System A:
      1. Enter the system URL for your ServiceNow instance.
      2. Wait for automatic system type detection.
      3. Provide authentication credentials (ServiceNow username and password).
      4. Click Check Authentication to verify.
      5. Click Next to continue.
    7. Name your connection using a unique, descriptive name. For example, "Jira-SNOW-ITOps".
      If the name already exists, you will see an error message prompting you to choose a different name.
    8. Add a brief description to help identify the connection's purpose, such as "Sync incident escalations between Jira and ServiceNow."
    9. Click Next to review your configuration.
    10. Review the details of your connection. Confirm the connection name and description.
    11. Click Create Connection to begin the setup process.
    12. New Exalate automatically registers your systems and establishes the connection. You will see real-time updates as the process completes.
    13. When the process completes, you will see a success message, and your connection status will change to "Ready to configure." Once your connection is created, choose which projects to sync between your systems.

    Note: If the concept of a project does not exist in the given system, this modal will not be shown.

    Configure Your Bidirectional Jira to ServiceNow Connection

    Here, you have two options: Quick Sync and Edit & Test.

    The Quick Sync option allows you to sync one item between systems.

    1. Under the "Item sync monitor," enter the work item key and click on the "Sync Now" option.
    2. To link 2 existing items, click "Link with existing".
      Once the sync is complete, you can view both the synced items in a new window. You can also choose to compare the changes.
    3. To use the Edit & Test Sync option, follow these steps.
      1. Navigate to your Connections list.
      2. Click on the connection name or the Edit button to open the configuration page.
      3. Once on the connection configuration page, you will see the current sync rules.
    4. To make changes, create a new version or select Open latest draft. This ensures you do not modify the active configuration directly.
      1. Click the Edit button to open the editor:
      2. Edit sync rules using Aida (the outgoing script will hold the values passed from Jira to ServiceNow, and the incoming sync will define how the values coming from ServiceNow are mapped in Jira).
      3. Click Save Script to save the version or Start Test Run to test your configuration.
      4. Click Publish Version if you want to activate the configuration.
    5. Click the Switch Direction button to modify the sync rules for the opposite flow (for instance, if you want the incoming script of Jira and the Outgoing script of ServiceNow). This will create a new version (or draft) for that direction, which also needs to be reviewed and published.
    6. All configuration versions for a connection are available under the Version dropdown below the connection name.
    7. Versions have the following statuses:
      • Active: The currently published configuration.

      • Draft: An editable copy of the Active version.

      • Archived: When a new version is published, the previous Active version is archived. Restore an archived version by selecting Restore version.

    AI-Assisted Configuration with Aida

    1. Navigate to your connection.
    2. Click Add new version (or open the latest draft version).
    3. Click Edit to enter the script editor.
    4. In the Aida input field, type your request in plain language.
    5. Click the send button (or press Enter).
    6. Aida will begin drafting your script.
    7. Review the suggested changes. Green highlights show new lines to add, red highlights show lines to remove.
    8. Click Insert to accept or Discard to reject.
      • For Outgoing scripts: Describe what data should leave your system. For example, "Only sync high-priority incidents to the Jira board."
      • For Incoming scripts: Describe how incoming data should be applied to your system. For example, "Map urgency levels across both systems."

    Note: While Aida is helpful, always review the generated code before applying it to production.

    Test Run: Validate Before Production

    Once sync scripts are ready, click "Start Test Run" to validate them.

    1. Select the items you want to test (you can select multiple). Click "Start Test Run" to preview how the configuration will be applied.
    2. Review incoming and outgoing replicas for each test item. Verify field mappings look correct. If needed, go back, adjust scripts, and test again.
    3. Deploy only when confident that everything works correctly. Click "Publish Version" to apply the updated configuration to live synchronization.

    Automate Jira ServiceNow Integration Using Triggers

    Triggers determine which items automatically sync based on conditions you define.

    1. Click "+ Add trigger" to create a new trigger.
    2. Add trigger conditions with platform-specific trigger syntax:
      1. Jira Query Language (JQL): project = ITSM AND priority in (High, Highest).
      2. ServiceNow advanced search syntax: active=true^urgency=1.
    3. Activate triggers by toggling them on. Save changes by publishing.

    Troubleshoot with Aida

    1. Navigate to the “Troubleshooting” tab in your workspace.
    2. Hover over any error and click the Aida icon for immediate analysis. Aida shows affected systems, connections, and work items, plus a brief explanation of the error.
    3. For deeper investigation, click “Error Details” to view the impact level, stack trace, error type, and occurrence date.
      Aida diagnosis interface with error details
    4. Use “View Full Analysis” for complete context. Once you’ve resolved the issue, click “Resolve” to clear the error.

    Your integration is now active. Synchronization runs automatically based on your configured sync rules and triggers.

    Advanced Jira and ServiceNow Integration Use Cases (Using Aida)

    Exalate supports AI-powered Jira integration with ServiceNow thanks to the scripting engine in the configuration panel.

    It also provides several Script Helpers to reduce the effort of scripting connections from scratch.

    Here are some use cases for ServiceNow integration with Jira.

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

    If you want the status of a Jira work item to be reflected in the corresponding ServiceNow incident, you need a scripting rule to make sure the correct statuses are mapped on both sides.

    For instance, if the Jira status is To Do, the ServiceNow incident status changes to New. When the Jira status is In Progress, the ServiceNow incident should be Work in Progress. When the Jira work item is Done, the ServiceNow incident should be marked Resolved.

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

    The prompt to Aida can be something like this:

    "I want to map the statuses of a Jira work item and a ServiceNow incident so that when the Jira work item is 'To Do', the ServiceNow incident will be 'New', when the Jira work item status is 'In Progress', the ServiceNow incident will have a status of 'Work in Progress', and when the Jira work item is marked 'Done', the ServiceNow incident will have a status of 'Resolved'. This should be on the incoming side of the Jira connection."

    The sample output will contain a status mapping in Groovy code that looks like this:

    def statusMapping = [  "To Do” : "New", "In Progress" : "Work in Progress", "Done" : "Resolved"] def remoteStatusName = replica.status.nameissue.setStatus(statusMapping[remoteStatusName] ?: remoteStatusName)
    Go through the generated output to confirm if it aligns with your expectations. You can continue refining the prompt until you nail down the requirements for your ServiceNow and Jira integration.

    Use Case 2: Sync Custom Fields to Merge Multiple ServiceNow Incidents to One Jira Work Item (And Vice Versa)

    To sync multiple ServiceNow incidents to one Jira work item, you need to set up a custom field in Jira to store the Jira work item key.

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

    replica.customFields."Target Issue Key" = issue.customFields."Target Issue Key"
    You can discard, accept, or refine the prompt to nail down the specifics of your use case.

    Next, you need to write a script to fetch data from all linked incidents based on their respective keys stored in the custom field.

    The code snippet in the Jira outgoing sync should look like this:

    def remoteIssueUrn = replica.customFields."SNOW-123"?.valueif(remoteIssueUrn && firstSync){  def localIssue = httpClient.get("/rest/api/2/issue/"+remoteIssueUrn)  if(localIssue == null)    throw new com.exalate.api.exception.IssueTrackerException("Issue with key "+remoteIssueUrn+" was not found")  issue.id = localIssue?.id  issue.key = localIssue?.key  return;}
    The Jira work item ID from the ServiceNow custom field "Jira Ticket #" is saved in the remoteIssueUrn variable. The httpClient.get() method fetches the details of the Jira work item.

    If the Jira work item is not found, then an "Issue not found" exception is raised. However, if the Jira work item exists, then the Jira work item ID is set to the localIssue ID.

    By the same token, you can sync multiple Jira work items to a single ServiceNow instance. Say multiple teams are using a single ServiceNow instance, but you want to sync with multiple Jira instances.

    Specify the fields from ServiceNow to go to each Jira instance, as well as the automated triggers for the sync.

    Map tickets separately and set trigger conditions to control and automate the synchronization.

    Use Case 3: Sync Work Notes and Comments between Jira and ServiceNow

    Within a ServiceNow incident, the support agent can add work notes that need to be visible to the developer on the Jira side. This creates a transparent communication thread across both platforms.

    Subsequent replies will appear as comments under the corresponding Jira work item.

    To get this working, you need to configure comment visibility rules and triggers in your ServiceNow instance to control which notes are shared externally.

    Use Case 4: Sync Priority and Urgency between ServiceNow and Jira

    Your ServiceNow Jira integration setup can help you automatically replicate the priority and urgency of tasks on both sides to convey the importance of the incident or work item.

    Instead of manually changing the priority on both sides, a simple script can ensure that both systems obtain the updated priority level in real time.

    Here is a sample prompt:

    "I want to sync Jira work item priority to match the ServiceNow urgency so that the mapping will be 'Critical' to 'High', 'Medium' to 'Medium', and 'Minor' to 'Low'."

    Here is the code snippet generated by Aida for the Jira incoming side.

    def priorityMapping = ["Critical" : "High",  "Medium" : "Medium", "Minor" : "Low"] def remotePriorityName = replica.priority?.nameissue.priority = nodeHelper.getPriority(priorityMapping[remotePriorityName] ?: "Medium")

    This will help teams working on the same project to align workflows and become more productive.

    Use Case 5: Incident Management

    When a critical incident occurs in your IT infrastructure, your IT team handles it in ServiceNow while your development team tracks work in Jira. 

    With Exalate, the incident is automatically created in both systems. You can trigger escalation based on urgency and assignment group, creating a Jira work item with the corresponding priority (for example, Urgency=1 maps to Highest). 

    SLA information passes along for additional context. Comments, attachments, and status updates then sync bidirectionally, keeping everyone aligned without duplicate data entry.

    Use Case 6: Problem Management

    Recurring work items, such as repeated failures with an email server or an unstable API, often point to a deeper root cause. IT operations in ServiceNow and developers in Jira need to collaborate on the investigation.

    With Exalate, a problem record created in ServiceNow triggers the creation of a Bug or Problem work item in Jira when the status transitions to a defined state, such as “Assess.” Work notes, comments, attachments, and investigation findings flow bidirectionally between both systems throughout the process. 

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

    Find out much more about Jira to ServiceNow integration use cases supported by Exalate. If you have a specific use case to discuss, book a call with our engineers.

    Supported Jira and ServiceNow Entities

    You can sync any entities or work 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 work:

    •  ServiceNow Incident <> Jira Work Item
      • short description↔ summary
      • description ↔ description
      • urgency ↔ priority
      • state ↔ status
      • caller ↔ reporter
      • comments/ work notes ↔ comments
      • attachments ↔ attachments
      • tags ↔ labels
      • custom fields ↔ custom fields
      • any field available via REST APIs

    Other resources 

    • Start a free trial with Exalate, or book a demo with our integration engineers to discuss your use case.
    • Using Exalate Classic? View its documentation to learn more about the difference between Exalate Classic and New Exalate.
    • Visit our Trust Center for more security information.
    • Have configuration-related questions? Get answers on the Exalate Community.
    • Join our latest Webinar series: The Sync Room to get answers to your integration pain points, the latest AI trends in the integration space, and much more.