Integrating JazzHR with Jira Service Management

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:

  1. HR Action: A candidate accepts an offer in JazzHR and the recruiter moves them to the “Hired” status.

  2. Automated Trigger: JazzHR sends the candidate’s details (Name, Role, Start Date, Department) directly to JSM via webhook.

  3. JSM Action: A “New Hire Onboarding” ticket is automatically created in JSM.

  4. 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:auth_scheme=request_signing_jazzhr
config:signature_token=<a random secret string that's used as secret in JazzHR> Use this string when Secret Key in Webhook configuration.

Here is a sample mapping for the list of fields we can get from JazzHR.

key:candidate.person.id.value=customfield_10062
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

This will generate a unique URL that you will provide to JazzHR. Map the incoming JazzHR fields (like First NameLast NameStart 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.