Service Desk Sync
Requirements
A user with a Jira Admin rights and Project Admin rights is required for
retrieving the request type IDs (Can be acquired using Project Admin user)
retrieving the Request Type custom field ID (Can only be acquired using Jira Admin user)
Config requirements
request type IDs or Names depending on Configuration.
Use the Request Type IDs if the Target System is on a Cloud environment.
Use the Request Type names (case sensitive) if the Target System is on a Data Center environment.
issue types IDs for mapping
Service Desk to Service Desk using only Core Jira
This configuration will mainly use Jira Core functionalities to create/update/transition issues while the projects for both the source and target systems are Service Desk projects.
https://www.loom.com/share/1f0d6e249f2649d59cc6e29938c7c31f?sid=c7976d82-eabc-4f25-9796-e03dbe4f28bd
Sample Configuration of Service Desk Sync:
serverfrom:
...
# Add servicedesk configuration to allow service desk mapping.
servicedesk:
# Set Service desk ID
id: 34
# Request type mapping - name: request type Name (case sensitive)
requesttypes:
task: Task
ithelp: IT help
computersupport: Computer support
# Define requesttype custom field to get request type field values
customfields:
requesttype: customfield_10302
# Define issue types for issue type mapping
issuetypes:
subtask: 10003
task: 10002
epic: 10000
bug: 10004
story: 10001
improvement: 10500
ithelp: 10200
serverto:
...
# Add servicedesk configuration to allow service desk mapping.
servicedesk:
# Set Service desk ID
id: 50
# Request type mapping - name: request type Name (case sensitive)
requesttypes:
task: Task
ithelp: IT help
computersupport: Computer support
# Define requesttype custom field to get request type field values
customfields:
requesttype: customfield_10109
# Define issue types for issue type mapping
issuetypes:
subtask: 10003
task: 10002
epic: 10000
bug: 10004
story: 10001
improvement: 10500
newfeature: 99999
ithelp: 10200
Non-Service Desk to Service Desk (V2)
This section is for configuration a Jira Sync with the following project setups:
The source system project is not a service desk project.
The target system project is a service desk project.
Configuration with Issue Type to Request Type Mapping
This approach will make use of the Jira Software REST API to create tickets on a Service Desk project.
Pre-requisites:
The user configured to create tickets on the target system must be able to create using the core Jira Software features.
Either the user is set as an agent or a regular user who has create/edit permissions on the project.
The custom field: Request Type is configured to the create and edit window of the project.
This will allow the custom field to have value on create. If this is missing, the ticket creation will fail due to the Request Type custom field not being configured when attempting to set a value.
Configuration
serverfrom:
auth:
username: jirasyncuser
password: **
host: test2-jira.xalt.team
port:
projectkey: SP
issuetypes:
task: 10002
customfields:
epiclink: customfield_10102
epicname: customfield_10104
serverto:
# Set isjiraservicedeskv2 to true to sync tickets to a service desk project. With issue type mapping
isjiraservicedeskv2: true
# Add service desk configuration to allow service desk mapping.
servicedesk:
# Set service desk ID
id: 2
issueTypeToRequestTypeMapping:
# Add mapping by using the source system issue type id to the target system request type id
10002: 33
10004: 67
10001: 4
auth:
username: jirasyncuser
password: **
host: test3-jira.xalt.team
projectkey: TP
customfields:
epiclink: customfield_10102
epicname: customfield_10104
requesttype: customfield_10109
pushJQL: project = SP
Notes on non-Service Desk project to a Service Desk Project sync
Need to set
isjiraservicedeskv2to true instead ofisjiraservicedesk.The
issueTypeToRequestTypeMappingwill be used to set the Request Type field on the ticket. This will also be used to find the Issue Type for their corresponding Request Type.When setting the
issueTypeToRequestTypeMapping, use the Request Type Ids if the target system environment is Cloud and use Request Type names if the target system is Data Center.:note: Important Note: The source server project can still be a Jira Service Management project. But if the target project
isjiraservicedeskv2is set to true, then the configuration will treat it as a regular project and setting theissueTypeToRequestTypeMappingwill be required.
Service Desk to Service Desk (Deprecated)
The configuration isjiraservicedesk when set to true on target system (serverto) will now only work on Data Center environments.
If the target system (serverto) has the configuration isCloud set to true and the isjiraservicedesk is also set to true, then every time the Advanced Issue Sync runs, it will not be able to update existing tickets and will instead create duplicates because the Advanced Issue Sync will not be able to find the existing ticket.
Using this configuration will use Jira Service Desk REST API and functionalities.
This is configured when setting the target server (serverTo) setting (isjiraservicedesk) to true.
https://www.loom.com/share/6ac152cd36504f3f84e6f4149dd72fa8?sid=2e649742-dee2-420a-9bff-024001a05192
Sample Configuration
YAMLserverfrom: # Set isjiraservicedesk to true to search tickets from a service desk project. isjiraservicedesk: true # Add servicedesk configuration to allow service desk mapping. servicedesk: # Set Service desk ID id: 23 # Request type mapping - name: request type ID requesttypes: task: 559 ithelp: 552 # Define requesttype custom field to get request type field values customfields: requesttype: customfield_10013 serverto: # Set isjiraservicedesk to true to sync tickets to a service desk project. isjiraservicedesk: true # Add service desk configuration to allow service desk mapping. servicedesk: # Set service desk ID id: 2 requesttypes: # Request type mapping - name: request type ID task: 26 ithelp: 19 # Define requesttype custom field to get request type field values customfields: requesttype: customfield_10013
serverfrom.servicedesk.requesttypes uses the Request Type IDs in this case because the target system is configured to use Jira Service Desk features.
Non-Service Desk to Service Desk (Deprecated)
serverfrom:
auth:
username: jirasyncuser
password: **
host: test2-jira.xalt.team
port:
projectkey: SP
issuetypes:
task: 10002
customfields:
epiclink: customfield_10102
epicname: customfield_10104
serverto:
# Set isjiraservicedesk to true to sync tickets to a service desk project.
isjiraservicedesk: true
# Add service desk configuration to allow service desk mapping.
servicedesk:
# Set service desk ID
id: 2
requesttypes:
# Request type mapping - name: request type ID
task: 26
auth:
username: jirasyncuser
password: **
host: test3-jira.xalt.team
projectkey: TP
issuetypes:
task: 10105
pushJQL: project = SP
Notes on Non-Service Desk to Service Desk
Due to the different behavior of the Service Desk REST API between the Data Center and the Cloud environments; this configuration will only work for when the target system is on a Data Center environment.
If the target system is on a Cloud environment (by setting the isCloudto true), the Service Desk REST API will be unable to search to find the synced ticket if it exists and the sync will continuously create duplicate tickets.All issues that will be synced using this basic configuration will be by synced to a single
servicedesk.requesttypesconfigured in the target system.For the basic configuration, please assign only one
requesttype(preferablytask, the value can be any request type ID, only the key in the configuration has to be namedtask).
If more than one requesttypeis configured, a random one will be chosen among all the configuredrequesttypefor a cycle.