Leave, absence and time
Personio to UKG Dimensions integration: employees, managers and approved absence from Personio in UKG
With an integration between Personio and UKG Dimensions, every internal employee from Personio appears automatically in UKG, with their job in the business structure, their manager and the time zone of their office. Absence approved in Personio arrives in UKG as a paycode edit, with half days from the schedule, so the timecard is right without double entry.
What the integration does
Organisations that do HR in Personio and scheduling and timekeeping in UKG Dimensions record new colleagues twice. Approved absence from Personio is not in UKG, so managers closing timecards see missing hours that are actually leave.
- HR creates a person with an employment in Personio, with office, department, position and supervisor.
- KoppelHet receives the notification and creates internal employees in UKG, with new managers first.
- Per employee UKG receives a job in the business structure, a time zone, a pay rule and the licences that fit their role.
- Every few minutes KoppelHet fetches the changed absences from Personio and enters approved ones as paycode edits in UKG.
- A deleted absence also deletes the paycode edit in UKG.
What to watch for with Personio and UKG Dimensions
- Personio has internal and external employments. UKG works with licences per person for scheduling, timekeeping and absence. By default KoppelHet only puts internal employees in UKG; externals only if you schedule them there, and then without an absence licence.
- Personio notifies creating, moving and deleting an absence, but not its approval. KoppelHet therefore fetches the absences changed since the previous round on an interval of minutes and checks the approval status, so approved leave is on the UKG timecard the same day.
- An absence in Personio can start or end in the first or second half of the day. UKG can derive the hours for a first or second half day from the schedule itself. KoppelHet passes on the half day from Personio, so UKG deducts exactly the afternoon hours of that shift for an afternoon off.
- Long-term absence, such as sickness, often has no end date yet in Personio. UKG books a paycode edit per date. KoppelHet enters such an absence in UKG up to an agreed horizon ahead and extends it as long as Personio reports no end.
- Personio has a status in which the deletion of an absence is still awaiting approval. Until it is approved, the leave still applies. KoppelHet therefore keeps the paycode edit in UKG until the absence is really deleted in Personio.
- UKG only records an employee under a manager who already exists or appears earlier in the same request. In Personio the supervisor is an ordinary person with their own employment. KoppelHet determines the order on every round, so a new team lead and their people land correctly in UKG in one go.
- Personio recommends remaining the source of truth for absence itself. KoppelHet therefore writes nothing from UKG back to Personio. A paycode edit a manager adds by hand in UKG stays in UKG and shows up as a difference in the daily check.
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
Do balances from Personio go to UKG?
That can be added later as an extension, through balance updates per accrual code in UKG.
Do hours from UKG go to Personio?
Not in this integration. Hours go from UKG to payroll.
What if an absence type has no paycode in UKG?
Then the absence is not entered and an alert appears in the platform. HR links a paycode or confirms the type does not need to be on the timecard.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Personio through API v2 with client credentials. Persons and employments (type INTERNAL or EXTERNAL, status, office, legal_entity, org_units, position, supervisor, employment_start_date, termination.last_working_day) through webhooks and queries. Absence through GET /v2/absence-periods with updated_at.gte (limit up to 100, cursor), approval.status PENDING, APPROVED, DELETION_PENDING or SUBSTITUTE_REQUESTED, starts_from and ends_at with type FIRST_HALF or SECOND_HALF; ends_at can be empty.
- To UKG through the UKG Pro Workforce Management API. POST /v1/commons/persons or /multi_create (personNumber, employmentStatusList, primaryLaborAccounts.organizationPath, payRuleName, timeZoneName, supervisorPersonNumber, personLicenseTypes). Absence through POST /v1/timekeeping/pay_code_edits/import (paycode, applyDate, scheduleAmountType FULL_DAY_, FIRST_HALF_DAY_ or SECOND_HALF_DAY_AMOUNT_FROM_SCHEDULE).
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Personio | Field in UKG Dimensions | Notes |
|---|---|---|
Personeelsnummer (eigen attribuut) | personNumber | |
first_name, last_name | firstName, lastName, fullName | |
office en position | primaryLaborAccounts.organizationPath | Through a table to an existing job in the UKG business structure |
supervisor | supervisorPersonNumber | |
Tijdzone van de office | timeZoneName | |
legal_entity | payRuleName | Through a table per country |
employment_start_date en termination.last_working_day | employmentStatusList met effectiveDate | |
Absence period (approval.status APPROVED) | Paycode edit met paycode en applyDate | Through a table of absence types to paycodes |
starts_from.type en ends_at.type | scheduleAmountType (eerste of tweede helft uit het rooster) |
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