In this article, we showcase importing Personio employee data to Assets in less than 30 mins. Here’s how.
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 |
|
Client ID / Secret | From your Personio admin |
Scope |
|
OnLink handles the token exchange from here on.

This example uses Personio’s List persons API. Configure the request:
GEThttps://api.personio.de/v2/persons_data
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.

Create the Assets import (see JSM Assets Data Synchronization), then map Personio JSON fields to your Assets object type attributes:
Mapping | What it does |
|---|---|
| Unique identifier. Future syncs update existing objects instead of creating duplicates. |
| Personio |
| Personio |
| Personio |
| Personio |
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.
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.
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.
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.
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.
Yes. Personio returns persons in pages using cursor-based pagination, and OnLink supports it, so every record comes through, not just the first page.
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.
RELATED
