Identity and access management
Personio to Omada integration: employees from Personio as identities in Omada Identity
With an integration between Personio and Omada Identity, Omada reads every employee from Personio as an identity, with legal entity, department, team, job title, manager and a status that follows from the employment. KoppelHet prepares the Personio data as one row per employee that Omada's REST collector reads, so Omada assigns roles and revokes access.
What the integration does
Organisations that use Omada for access governance and Personio for HR often lack a source Omada can read directly. An export from Personio that someone loads into Omada by hand lags behind, and roles that depend on department or team then change too late.
- Personio gets an API client with read-only rights on persons, employments and org units.
- KoppelHet processes notifications from Personio and keeps one current row per employee, with the status according to your agreements.
- In Omada the administrator creates a system with the REST collector for identity data, with OAuth2 Client Credentials to KoppelHet.
- Omada reads identities and contexts, and links each identity to its entity, department and team.
- At go-live we set a threshold on deleted identities, so an error in the source does not make everyone disappear at once.
What to watch for with Personio and Omada
- KoppelHet provides an endpoint that Omada's REST collector reads directly, without an intermediate file.
- In Personio a person has one or more employments, newest first. Omada's REST collector only uses the first element of a list in nested data. KoppelHet therefore selects the applicable employment in advance and delivers one flat row per person.
- Besides identities Omada also has contexts, with their own business key and type, and links identities to them. KoppelHet supplies the legal entities, departments and teams from Personio as contexts, so policy in Omada can differ per entity or team.
- Personio sets employees on leave to LEAVE and new colleagues to ONBOARDING. Omada has the states active, inactive and terminated for an identity. KoppelHet translates LEAVE to active by default, ONBOARDING to inactive until the start date, and INACTIVE to terminated.
- Omada warns that a status from the HR source can overwrite status changes made in Omada itself. Together with you we decide which side leads, so a block that security sets in Omada is not lifted by the next Personio import.
- The manager is stored in Personio as a reference to another person. Omada needs the business key of that manager's identity for approvals and reviews. Because KoppelHet uses the Personio ID as the business key, the reference points straight to the right identity.
- Personio has a last working day and a contract end date, which can be weeks apart. KoppelHet supplies both to Omada, so you can choose in Omada whether access ends on the last working day or on the end date.
This integration is also part of joiner, mover, leaver.
How we build and run it
- The integration runs on the KoppelHet platform, hosted in a data centre in the EU.
- Every sync and every error is visible in the functional log; on an error your administrator is notified.
- A change that cannot go through is not half-applied but queued for another attempt.
- KoppelHet is ISO 27001 certified. Data travels encrypted and stays on the platform no longer than needed.
- After go-live we manage the integration and adjust it when your process changes.
- The integration fits next to your existing integration layer. Only the fields in the design are transferred; the platform keeps no register of its own.
Implementation and price
This is not an app you switch on. We build the integration for your organisation on our platform, with building blocks we reuse on every project. So it is custom work that does not start from scratch.
A consultant prepares the intake and analyses both systems. We then record the mapping and exceptions field by field, test in the test or acceptance environment and go live at a moment you choose. Costs are a one-off amount for the setup and a monthly amount for platform, monitoring and support.
Frequently asked questions
Why not a CSV export from Personio?
Someone has to create and drop it, and it is out of date as soon as it is made. The REST collector reads the current state at every import.
Can Omada then create accounts in Entra ID or Active Directory itself?
Yes, with Omada's connectors. KoppelHet only supplies the HR source.
Does salary data go to Omada?
No. The API client in Personio cannot read compensations.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Personio through webhooks and the Personio API v2 (/v2/persons, /v2/persons/{id}/employments with status, type, org_units with type department or team, legal_entity, supervisor, position.title, employment_start_date and termination; filter updated_at.gt, limit at most 50, cursor). Read scopes only; no compensations.
- Omada reads through the REST collector (Content: Identity data) with OAuth2 Client Credentials: identities with Business key, Unique ID, Name and Status, contexts with business key, Name and Type, and context assignments per identity. Paging through the Link header (rel=next); Thresholds for new, modified and deleted objects in percent (default 0, off); Error message JSON path for error messages from KoppelHet.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Personio | Field in Omada | Notes |
|---|---|---|
person.id | Business key en Unique ID | |
preferred_name of first_name + last_name | Name | |
status en last_working_day | Status | |
legal_entity | Context (juridische entiteit) | |
org_units (type department) | Context (afdeling) | |
org_units (type team) | Context (team) | |
position.title | Functie | |
supervisor.id | Manager (business key) | |
type (INTERNAL of EXTERNAL) | Soort identiteit | |
employment_start_date en termination_date | Begin- en einddatum |
Related
Ashby → Personio
Ashby to Personio integration: hires with hours and entity as new employees in Personio
Bullhorn → Personio
Bullhorn to Personio integration: placements as a person with employment in Personio
Carerix → Personio
Carerix to Personio integration: successful placement as a new employee in Personio
Greenhouse → Personio
Greenhouse to Personio integration: hired candidates as employees in Personio