Personio to Jira Service Management Assets in 30 mins

In this article, we showcase importing Personio employee data to Assets in less than 30 mins. Here’s how.

Step 1: Connect to the Personio API

Personio’s v2 API uses OAuth client credentials. Ask your Personio admin for a Client ID and Client Secret, then add an Assets Data Source in OnLink with these settings:

Setting

Value

Authentication Type

OAUTH Client Credentials

Token URL

https://api.personio.de/v2/auth/token

Client ID / Secret

From your Personio admin

Scope

personio:persons:read

OnLink handles the token exchange from here on.

Step 2: Get person details

This example uses Personio’s List persons API. Configure the request:

  1. Method: GET
  2. URL: https://api.personio.de/v2/persons
  3. Response data path: _data
  4. Leave everything else at the defaults.

Save and run the connection. OnLink returns sample JSON so you can confirm the endpoint and see the field names you’ll map:

{
  "_data": [
    {
      "id": "3003",
      "email": "john.smith@example.com",
      "first_name": "John",
      "last_name": "Smith",
      "status": "ACTIVE"
    }
  ]
}

Persons is just one example. The same pattern works for any Personio API method: swap the URL and scope to pull departments, companies, teams or other resources.

Step 3: Map fields to Assets

Create the Assets import (see JSM Assets Data Synchronization), then map Personio JSON fields to your Assets object type attributes:

Mapping

What it does

key:id=id

Unique identifier. Future syncs update existing objects instead of creating duplicates.

map:email=Email

Personio email → Assets Email

map:first_name=First Name

Personio first_name → Assets First Name

map:last_name=Last Name

Personio last_name → Assets Last Name

map:status=Status

Personio status → Assets Status

Start with one key: mapping, then add a map: line for every field you want in Assets. Check attribute names for spelling and case.

Run Get Data to preview the records. When the values look right, run the import.

FAQ

What Personio data can I bring into Assets?

Any resource the Personio API exposes. This post uses persons, but the same steps work for departments, job functions, companies and teams. Change the URL and scope, then map the new fields.

What do I need from Personio to connect?

A Client ID and Client Secret from your Personio admin, with the personio:persons:read scope. OnLink uses them to request tokens from https://api.personio.de/v2/auth/token.

Will repeat syncs create duplicate objects?

No. The key:id=id mapping matches each Personio person to an existing Assets object by ID. Matching objects are updated; only new people are created.

Can I filter which people get imported?

Yes. Add query parameters to the request to narrow the results. Personio supports filtering on fields such as id, first_name, last_name, created_at and updated_at.

Does it work with large Personio accounts?

Yes. Personio returns persons in pages using cursor-based pagination, and OnLink supports it, so every record comes through, not just the first page.

Done

Connect, fetch, map. Your Personio people data now lives in JSM Assets, and every sync keeps it current. Agents see who an employee is, their status and their contact details right next to the ticket.

The full setup guide, including pagination and filtering, is in our Personio to JSM Assets documentation.

Ready to bring Personio into Assets? Try OnLink free on the Atlassian Marketplace. One Cloud Fortified app, 100+ connectors, trusted by 200+ HR teams.