This article shows examples of how to sync priority and urgency between ServiceNow and Jira instances.
Warning: Despite our best efforts, code can change without notice due to a variety of factors. If you encounter an issue in any of the code shown here and find that a specific block of code is not correct, or is causing errors, please check with the Community to find an updated version.
- Syncing priority between ServiceNow and Jira
- Syncing urgency between ServiceNow and a Jira custom field (deprecated after version 6.0.0)
- Syncing priority (deprecated after version 5.1.1)
Syncing Priority between ServiceNow and Jira
To exchange priority between ServiceNow and Jira you need to specify the mapping.
By default, it is not possible to sync priority from Jira to ServiceNow, because the priority field is read-only in ServiceNow. For more details, check the ServiceNow documentation.
As a workaround, you can create a custom field in ServiceNow and sync Jira priority there.
ServiceNow
Outgoing sync
replica.priority = entity.priorityValue
Jira
Incoming sync
//Priority sync def priorityMapping = [ // Snow incident priority <-> Jira issue priority "1 - Critical": "High", "2 - High": "High", "3 - Moderate": "Medium", "4 - Low": "Low", "5 - Planning": "Lowest" ] // set default priority in case the proper priority could not be found def defaultPriority = "Low" def priorityName = priorityMapping[replica.priority?.name] ?: defaultPriority // set default priority in case the proper urgency could not be found issue.priority = nodeHelper.getPriority(priorityName)
Syncing urgency between ServiceNow and a Jira Custom Field (deprecated after version 6.0.0)
DEPRECATED
This urgencyValue method is deprecated after version 6.0.0. You can use entity.urgency to sync urgency for ServiceNow. It becomes available starting from version 5.4.0.
This example shows how to sync ServiceNow urgency to an Urgency select list custom field in Jira.
ServiceNow
Outgoing sync
replica.urgency = entity.urgencyValue
Incoming sync
// Urgency sync def urgencyMapping = [ // Jira issue urgency <-> Snow incident urgency "High": "1 - High", "Critical": "1 - High", "Medium": "2 - Medium", "Low": "3 - Low" ] def defaultUrgency = "3 - Low" def urgencyName = urgencyMapping[replica.urgency.value] ?: defaultUrgency // set default urgency in case the proper urgency could not be found entity.urgencyValue = urgencyName
Jira
Outgoing sync
replica.urgency = issue.Urgency
Incoming sync
// //Urgency sync def urgencyMapping = [ // Snow incident urgency <-> Jira issue urgency "1 - High": "High", "1 - High": "Critical", "2 - Medium": "Medium", "3 - Low": "Low" ] def defaultUrgency = "Low" def urgencyName = urgencyMapping[replica.urgency] ?: defaultUrgency // set default urgency in case the proper urgency could not be found issue.Urgency = urgencyName
Syncing Priority (deprecated after version 5.1.1)
DEPRECATED
Because of a bug, this method syncs priority as urgency. This method was deprecated after version 5.1.1. For versions after 5.1.1, it is preferable to use the other methods, mentioned in this article.
ServiceNow
Outgoing sync
replica.priority = issue.priority
Incoming sync
def priorityMapping = [ // Jira issue priority <-> SNOW incident urgency "High" : "1 - High", "Highest" : "1 - High", "Medium" : "2 - Medium", "Low" : "3 - Low", "Lowest" : "3 - Low" ] def defaultPriority = "3 - Low" def priorityName = priorityMapping[replica.priority?.name] ?: defaultPriority // set default urgency in case the proper urgency could not be found entity.priority = nodeHelper.getPriority(priorityName)
Jira
Outgoing sync
replica.priority = issue.priority
Incoming sync
Set local priority based on the received urgency from the Servicenow side. If the priority name does not exist on the local side - set default priority to "Low".
def priorityMapping = [ // SNOW incident urgency <-> Jira issue priority "1 - High" : "High", "2 - Medium" : "Medium", "3 - Low" : "Low" ] def priorityName = priorityMapping[replica.priority?.name] ?: "Low" // set default priority in case the proper urgency could not be found issue.priority = nodeHelper.getPriority(priorityName, issue)