Want to sync your Jira Service Management instance with your ServiceNow platform?
Your teams can use a Jira ServiceNow integration to improve collaboration and share relevant data back and forth. Connecting these platforms ensures data is never lost in manual updates and emails. Stay on top of things, always!
So, how do you connect Jira and ServiceNow to ensure you have a two-way, real-time synchronization?
I'll show you how to do this using Exalate. For those of you who are unfamiliar with Exalate, here is a quick overview.
Exalate is a script-based integration solution that helps you synchronize data between multiple tools like Jira, Jira Service Management, ServiceNow, Azure DevOps Cloud, Azure DevOps Server, Salesforce, Zendesk, Freshservice, Freshdesk, Asana, GitHub, and more. With its Groovy scripting engine, you can set up deep integrations between Jira and ServiceNow and sync in any way you want. There is no limitation on data mapping or advanced logic. Sync anything that your use case requires.
Exalate also offers a unified management console where you manage all integrations from a single interface. You get AI-assisted configuration through Aida, Test Run to validate sync scripts before production, script versioning with full audit trails, and real-time sync with complete queue visibility.
Another option for integrating Jira with ServiceNow is IntegrationHub's Jira Spoke, but the major drawback to using this solution is that it has a limited scope and can be expensive. Also, ServiceNow is in the driving seat of this integration, so you cannot expect an ongoing bidirectional sync. Other integration apps available in the marketplace are also limited in scope, and you cannot implement any kind of advanced use cases with them.
Before jumping into the setup, it helps to know what Exalate can synchronize between these two platforms.
Standard fields you can sync include work items (stories, bugs, tasks, epics in Jira mapped to incidents, change requests, problems, RITMs in ServiceNow), comments and work notes, attachments, status and workflow transitions, assignees, reporters, priorities and urgency levels, and dates.
For advanced synchronization, you can sync custom fields, SLA information, time tracking data, parent-child relationships, CMDB configuration items, and practically any data available via REST APIs.
Go to the Exalate app and log in. New users can create an account by entering their email and verifying it, or by signing up with Google.
Once logged in, create a workspace to organize your integrations. Click the "+ Create Workspace" button, enter a name and description, and click "Create workspace" to confirm. Workspaces help you manage all your connections in a single place.
Within your workspace, click "+ Add connections" > "Create new connection" to start setting up your Jira ServiceNow connection.
Enter the name for your first system (System A). You can name either Jira or ServiceNow as System A. It does not matter which one goes first.
Enter the URL of your system. For example, if you start with ServiceNow, enter your ServiceNow instance URL. Exalate automatically detects the system type and prompts you for authentication. ServiceNow uses Basic authentication, and Jira uses OAuth.
Complete the same setup process for the second system. Give your connection a name and description, then review the details and click "Create connection."
When the connection is ready, select "Continue to configuration" and choose a Jira project you want to use for synchronization.
After creating your connection, you have two configuration options: "Quick Sync" and "Edit & Test."
Quick Sync lets you publish the starter configuration and sync one item between Jira and ServiceNow to verify that everything works. Enter a work item key in Jira or an incident number in ServiceNow, then click "Sync Now."
Edit & Test opens the draft editor, where you can customize sync rules. Click "Create a new version" or "Open latest draft" to start editing without affecting your live configuration.
Sync rules are Groovy scripts that control your synchronization behavior. Depending on your needs, you can edit these rules to sync records unidirectionally or bidirectionally between Jira and ServiceNow. Map and sync custom fields, statuses, priorities, assignees, reporters, comments, attachments, third-party fields, and much more.
The scripts are divided into incoming and outgoing scripts:
The Replica works like a message payload and holds the actual data passed between the synced entities in JSON format. To stop something from syncing (for instance, attachments from Jira to ServiceNow), simply remove that script line from the outgoing Jira script.
Here is a sample line of code for custom fields:
entity.resolution_notes = replica.customFields."Jira custom field name".value
This maps the custom field value coming from Jira to the resolution notes in ServiceNow.
You can also add advanced conditions and logic to the sync rules. If you don't want to sync certain fields, you can simply delete or comment out those script lines.
Use Aida for AI-assisted configuration
If scripting is not your thing, you can use Aida to generate scripts for you. Aida is available in both incoming and outgoing script sections.
For outgoing scripts, describe what data should leave your system. For example, "Exclude attachments" or "Only sync high-priority work items." For incoming scripts, describe how incoming data should be applied. For example, "Map statuses" or "Set a default assignee if the user can't be found."
Based on your existing scripts and Exalate's scripting API, Aida generates working Groovy scripts with proper field mappings. Review the suggested changes (green highlights show additions, red highlights show removals) and choose to "Insert" or "Discard" each suggestion.
Validate with Test Run
Once your sync scripts are ready, use the "Start Test Run" option to validate them against real data before going live. Select the items you want to test, click "Start Test Run," and review how the sync configuration will be applied.
Review the incoming and outgoing replicas, verify field mappings, and if needed, go back and adjust your scripts. Deploy only when you are confident everything works correctly.
Once everything matches your needs, click "Publish Version" to apply the updated configuration to your live synchronization. All versions for a connection are available in the "Version" dropdown. You can view Active, Draft, or Archived versions and roll back if needed.
Triggers are conditions that control how your sync starts automatically. Once the condition is fulfilled, the connection carries out the operation.
On Jira, you can configure triggers using Jira Query Language (JQL). On ServiceNow, use the ServiceNow advanced search syntax.
Click the "+ Add trigger" button to start creating triggers. These triggers are platform-specific.
Here are sample JQL triggers:
Here are ServiceNow triggers using the search syntax:
That's it! Your data will sync automatically based on the rules and triggers you have set.
Troubleshooting errors is a natural part of synchronization, especially with script-based tools that allow complex workflows.
Aida helps you troubleshoot errors faster by offering clear, context-aware suggestions. Go to the "Troubleshooting" tab of your workspace, hover over any error, and click the Aida icon. You will see a short explanation of the error and a proposed solution. You can also view the full analysis, error details, and replicas for further debugging.
To learn more about syncing possibilities between Jira and ServiceNow, get in touch with our team to discuss your use case.
francis
1 comment