Linking Personio as a source
The Personio connector is currently in alpha. If you encounter any issues, please report them on GitHub.
The Personio connector syncs your HR data from Personio to PostHog. The following tables are supported:
| Table | Description | Sync mode |
|---|---|---|
| persons | Employee profiles and HR data | Full refresh and incremental |
| absence_periods | Employee absences and time-off records | Full refresh and incremental |
| attendance_periods | Employee attendance records | Full refresh and incremental |
Prerequisites
Before linking Personio, create API credentials in your Personio account:
- In Personio, go to Settings > Integrations > API credentials (requires admin access)
- Create new API credentials with the following read scopes:
personio:persons:readpersonio:absences:readpersonio:attendances:read
- Note down your Client ID and Client secret
You must whitelist the employee attributes you want to sync in your Personio API credential configuration. Attributes that aren't explicitly whitelisted are silently omitted from API responses.
Linking Personio
- Go to the Data pipeline page and the sources tab in PostHog
- Click New source and select Personio
- Enter your Client ID and Client secret
- Optional: Add a prefix to your table names
- Select the tables you want to import
- Click Import
The data warehouse then starts syncing your Personio data. You can see details, progress, and rows synced in the data pipeline sources tab.
Sync modes
Personio tables support both full refresh and incremental syncing:
- Full refresh – Re-imports all records from Personio on every sync
- Incremental – Only imports records modified since the last sync using
updated_atfiltering
When you enable incremental sync for a table:
- The first sync performs a full import to establish a baseline.
- Subsequent syncs only fetch records modified since the last sync.
Incremental syncing is more efficient for large Personio accounts, reducing sync time and API usage. If a sync is interrupted, it resumes from where it left off.
Configuration
| Option | Type | Required |
|---|---|---|
Client ID | text | Yes |
Client secret | password | Yes |