Skip to main content

Capabilities

Gather Personio credentials

The Personio connector is identity and attribute sync only. Personio does not expose a roles or permissions API for this connector to model as grants. API access is controlled on the Personio integration credential, not by employee role permissions.
1
In Personio, open Marketplace > Connected integrations and create or select a custom integration for C1.
2
Grant the integration Employee read access. For the v2 API, the credential must include personio:persons:read.
3
Also grant read access to workplaces, org units (departments/teams), and legal entities. These back the resolved display names described below; if the credential lacks access to one of them (or the legal entities feature isn’t enabled on the Personio plan), the connector still syncs — it just keeps the raw Personio ID for that field without a resolved name.
4
Select the readable employee attributes that C1 should sync. Personio only returns attributes allowed on the API credential.
5
Copy the OAuth 2.0 client ID.
6
Copy the OAuth 2.0 client secret.
7
Confirm the Personio API base URL. For most tenants this is https://api.personio.de.

Configuration fields

Synced resource types

  • Persons: Personio persons mapped as C1 users. Primary employment details are joined from the person’s employments endpoint and added to the user profile.

Special notes

  • The connector authenticates with OAuth 2.0 client credentials at ${personio-base-url}/v2/auth/token. The token request uses grant_type=client_credentials, client_id, and client_secret, then sends the returned access token as a bearer token.
  • Each person is enriched with the active employment when present, otherwise the newest employment by start date.
  • If employment enrichment fails for one person, the person is still emitted with person-level fields.
  • The following employment fields sync as a human-readable display name resolved via a secondary lookup against Personio, instead of the raw Personio ID:
    • manager_name and manager_email (via the manager’s own person record)
    • office_name (via workplaces)
    • department_name and team_name (via org units)
    • org_units (a name list covering every org unit Personio classifies as a department or team; org_unit_ids keeps every org unit’s raw ID regardless of type, including types the connector doesn’t resolve)
    • legal_entity_name (via legal entities)
    If a lookup fails or the credential lacks access to that object type, the *_name field (and org_units) is simply omitted for that person for that sync.
  • sub_company is not synced. Personio’s own API marks this field deprecated in favor of legal entity; use legal_entity_name instead.
  • Standard PII fields such as address, phone, national identifiers, date of birth, gender, salary, bank details, and tax information are not mapped.
  • Custom attributes are filtered before they are emitted.

Configure the Personio connector

Follow these instructions to use a built-in, no-code connector hosted by C1.
1
In C1, navigate to Integrations > Connectors and click Add connector.
2
Search for Personio and click Add.
3
Choose how to set up the new Personio connector.
4
Set the owner for this connector.
5
Click Next.
6
Find the Settings area of the page and click Edit.
7
Paste the Personio credentials into the relevant fields:
  • Client ID: The Personio OAuth 2.0 client ID.
  • Client secret: The Personio OAuth 2.0 client secret.
  • API base URL: The Personio API base URL.
8
Click Save.
9
The connector’s label changes to Syncing, followed by Connected. You can view the logs to ensure that information is syncing.
Done. Your Personio connector is now pulling identity data into C1.