In this article, we cover why, how and benefits of integrating JazzHR, Applicant Tracking System (ATS) with Jira Service Management.

Why Integrate? The Power of HR Service Management + ITSM Automation
HR Service Management is often the first touchpoint for a new employee. HR team owns the onboarding process but rest of the organization needs to engage to provide a seamless new hire experience.
Integrating JazzHR with JSM bridges this gap, allowing you to:
-
Centralize Requests: Make JSM the "single pane of glass" for all employee lifecycle events.
-
Automate Handoffs: Instantly trigger IT workflows (laptop provisioning, account creation) the moment HR marks a candidate as "Hired."
-
Improve Compliance: Ensure every new hire gets the exact right access and equipment based on their role, without manual data entry errors.
-
Enhance Experience: New hires get what they need on Day 1, not Day 10.
Use Case: Employee Onboarding
Imagine a workflow where the recruitment team never has to send an email to IT to announce a new hire.
Automation Steps:
-
HR Action: A candidate accepts an offer in JazzHR and the recruiter moves them to the "Hired" status.
-
Automated Trigger: JazzHR sends the candidate’s details (Name, Role, Start Date, Department) directly to JSM via webhook.
-
JSM Action: A "New Hire Onboarding" ticket is automatically created in JSM.
-
Orchestration: JSM Automation kicks in to:
-
Create sub-tasks for IT to provision a laptop.
-
Trigger an automation to create an Entra ID (Azure AD) account.
-
Assign software licenses (e.g., Slack, Zoom, Adobe) based on the "Department" field passed from JazzHR.
-
Send a welcome email to the user with their new credentials.
How-to: Configuration & Setup
This integration relies on the OnLink, which can capture JazzHR events and create a ticket in JSM.
Webhook Configuration:
Create a Webhook in OnLink. Set the System as JazzHR. Refer to the screenshot below for the configuration.
Webhook Name: Provide a name for the webhook.
System: Select JazzHR.
Issue Type or Request Type: Depending on your implementation select the right type.
Mapping:
Add below config parameters to the webhook mapping in OnLink:
config:signature_token=<a random secret string that's used as secret in JazzHR> Use this string when Secret Key in Webhook configuration.
config:auth_scheme=request_signing_jazzhr
Here is a sample mapping for the list of fields we can get from JazzHR.
map:candidate.person.name.formattedName=customfield_10063
map:candidate.person.gender=customfield_10064
map:candidate.profiles.associatedPositionOpenings.positionOpeningId.value=customfield_10065
map:person.email.address=customfield_10066<br><br><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jazzhrw.png" style="width: 786px;"><img src="https://us.v-cdn.net/6038660/uploads/images/419844iF7A8C90C92650DB7/jazzhrw.png" role="button" title="jazzhrw.png" alt="jazzhrw.png"></span>key:candidate.person.id.value=customfield_10062
This will generate a unique URL that you will provide to JazzHR. Map the incoming JazzHR fields (like First Name, Last Name, Start Date) to your JSM Request fields.
In JazzHR: Navigate to Settings > Integrations > Candidate Export Integrations. Add a new integration.
Follow instructions here to configure webhook in JazzHR: JazzHR Candidate Export Webhook Reference
You need the following to complete the JazzHR Webhook Configuration:
-
Integration Name - Unique name for this integration.
-
Integration [Webhook] URL - URL to which JazzHR will POST. This is the URL from the webhook configuration in OnLink. Refer to the Webhook URL in the OnLink configuration.
-
Secret Key - Signature token you set up in OnLink.
Sample Payload from JazzHR Webhook
{
'candidate.person.id.value': '',
'candidate.person.id.schemeId': '',
'candidate.person.id.schemeAgencyId': '',
'candidate.person.name.given': '',
'candidate.person.name.family': '',
'candidate.person.name.formattedName': '',
'candidate.person.gender': '',
'candidate.person.applyDate': '',
'candidate.person.communication.address.0.city': '',
'candidate.person.communication.address.0.countrySubdivisions.0.type': '',
'candidate.person.communication.address.0.countrySubdivisions.0.value': '',
'candidate.person.communication.address.0.formattedAddress': '',
'candidate.person.communication.address.0.line': '',
'candidate.person.communication.address.0.postalCode': '',
'candidate.person.communication.phone.0.formattedNumber': '',
'candidate.person.communication.email.0.address': '',
'candidate.profiles.0.languageCode': '',
'candidate.profiles.0.profileId.value': '',
'candidate.profiles.0.profileId.schemeId': '',
'candidate.profiles.0.profileId.schemeAgencyId': '',
'candidate.profiles.0.associatedPositionOpenings.0.positionOpeningId.value': '',
'candidate.profiles.0.associatedPositionOpenings.0.positionOpeningId.schemeId': '',
'candidate.profiles.0.associatedPositionOpenings.0.positionOpeningId.schemeAgencyId': '',
'candidate.profiles.0.associatedPositionOpenings.0.positionTitle': '',
'candidate.profiles.0.associatedPositionOpenings.0.positionUri': '',
'candidate.profiles.0.associatedPositionOpenings.0.candidateStatus.name': '',
'candidate.profiles.0.associatedPositionOpenings.0.candidateStatus.category': '',
'candidate.profiles.0.associatedPositionOpenings.0.candidateStatus.transitionDateTime': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.0.id.value': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.0.id.schemeId': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.0.id.schemeAgencyId': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.0.name': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.0.type': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.0.value': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.1.id.value': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.1.id.schemeId': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.1.id.schemeAgencyId': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.1.name': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.1.type': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.1.value': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.2.id.value': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.2.id.schemeId': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.2.id.schemeAgencyId': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.2.name': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.2.type': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.2.value': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.3.id.value': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.3.id.schemeId': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.3.id.schemeAgencyId': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.3.name': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.3.type': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.3.value': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.4.id.value': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.4.id.schemeId': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.4.id.schemeAgencyId': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.4.name': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.4.type': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.4.value': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.5.id.value': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.5.id.schemeId': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.5.id.schemeAgencyId': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.5.name': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.5.type': '',
'candidate.profiles.0.associatedPositionOpenings.0.customFields.5.value': '',
'candidate.profiles.0.associatedPositionOpenings.0.alternateIds.0.value': '',
'candidate.profiles.0.associatedPositionOpenings.0.alternateIds.0.schemeId': '',
'candidate.profiles.0.associatedPositionOpenings.0.alternateIds.0.schemeAgencyId': '',
'candidate.profiles.0.education.0.educationLevelCodes.0.name': '',
'candidate.profiles.0.alternateIds.0.value': '',
'candidate.profiles.0.alternateIds.0.schemeId': '',
'candidate.profiles.0.alternateIds.0.schemeAgencyId': '',
'candidate.alternateIds.0.value': '',
'candidate.alternateIds.0.schemeId': '',
'candidate.alternateIds.0.schemeAgencyId': ''
}
Try OnLink Today
If you are using JazzHR and want to automate these type of use cases, visit the Atlassian Marketplace to learn more about OnLink.