🔓 Access level in Planday: Administrator or HR Manager with access to all departments in Planday.
🌐Subscription plan: Plus, Pro.
⏱️ Reading time: 3 min.
⏱️ Setup time: 10 min
ℹ️ Important read: Personio integration – FAQs and Troubleshooting
✅ Required steps: Employee management in Planday explained
Key functionalities of the Personio integration:
Syncs new employees
Updates employee profiles
Creates employee Groups
Creates or maps departments
Deactivates terminated employees
Imports approved leave
Setting up the integration in Personio
Navigate:
In Personio, navigate to Marketplace.
Click on the Connected integrations tab.
Click on the Create custom integration button.
Set-up:
Enter Planday or another appropriate integration name.
Click next.
Configure access - ensure that the following access is given:
Check Access Rights
Attribute | Read | Write |
Employees | Enabled |
|
Attendance | Enabled |
|
Time Off | Enabled |
|
Documents |
|
|
Custom Reports |
|
|
Recruiting |
|
|
Webhooks | Enabled | Enabled |
Org Units | Enabled |
|
Legal Entities |
|
|
Cost Centres |
|
|
Workplaces |
|
|
Note: Employee Attributes and Legal Entities are set to Select All.
3. Done: Copy ClientID and API secret.
You’re now ready to go and set-up the integration in Planday.
Head over to your Planday workspace and log in as an Administrator with access to all departments.
Complete the setup in Planday
Complete the setup in Planday
Set-up:
You can connect an HR integration from any of these pages in Planday:
Planday-Web > Settings > Integrations > Overview > Personio > Set up
Planday-Web > People Employees > Create employees > Connect with HR system
Authenticate: Enter your Personio API credentials. Paste the Client ID and API Secret you generated from your Personio account into the respective fields.
Configure Filter: Choose which filters to apply.
Review and Confirm: Review the data to be synced and click connect.
Required Fields: If your Planday workspace contains mandatory fields, the import cannot proceed. The system will display a message prompting you to mark these fields as "Optional/Non required" in Planday.
Note that the Gender field is an exception and will be archived instead. If you do not update the required fields, the import will fail.
See the following articles for more information:
5. Done: You can now close the integration modal and wait for the data to be synced into your portal.
Data mapping between Personio and Planday
Everything is mapped automatically, that means there’s no manual mapping flow for you to set-up.
Personio fields that Planday map
Personio fields that Planday map
Personio Field | Personio Attribute ID | Planday |
First name (legal) | first_name | First Name |
Last name (legal) | last_name | Surname |
Email (username) | ||
Date of birth | date_of_birth | Birthday |
Hire date | hire_date | Hire date |
Termination Date | contract_end_date |
|
Profile Picture | avatar | Profile Picture |
Department | department_id | Department |
Team | team_id | Employee Group |
Position | position | Employee Group |
Address |
| Address |
City |
| City |
Postcode |
| Postcode |
Employee ID (internal) | company_employee_ID | Salary ID |
Note: The mapping of any other fields, including custom fields is currently not supported in this integration.
1) Mapping Logic - Department mapping
Planday maps Departments from the Personio directly to Planday. Teams are now mapped to employee groups as a default.
Note: Planday Departments are only created for groups that contain employees currently being imported.
Standard Matching
Standard Matching
If a Department in Planday has the exact same name as the group in Personio, they are mapped together in Planday. If there is no match, a new Department is created in Planday.
Resolving Duplicate Names
Resolving Duplicate Names
If Personio contains multiple groups with the same name (e.g. a "Service" team in two different locations), the following strategy is used to ensure unique names in Planday:
Add Parent Context: The group name is prefixed with its parent folder or department name to distinguish them (e.g., "Location X - Service" vs. "Location Y - Service").
Clean Redundancy: When combining names, repetitive words are removed to keep the name readable. For example, "Location X Operations - Operations Manager" is automatically shortened to "Location X Operations - Manager".
2) Mapping Logic - Employment data mapping
When the integration syncs 'Employment' data from Personio, it maps this data to create Employee Groups in Planday.
Please note these two key behaviours during the sync process:
New Employee Groups are always created
New Employee Groups are always created
The integration is designed to never modify or update existing Employee Groups. It will always create a new, separate entry for each 'Employment' record it syncs.
Duplicate names are handled with a suffix
Duplicate names are handled with a suffix
If the integration needs to create a group named "Bartenders" but a group with that name already exists, it will create a new group and add a suffix (e.g., "Bartenders-Personio") to distinguish it.
Important: This suffix rule is applied only once to prevent creating endless duplicates. If a group named "Bartenders-Personio" also already exists, the integration will not create a new group (e.g., "Bartenders-Personio-Personio").
This approach is crucial because records are effectively-dated. Creating a new Employee Group preserves the complete employment history and ensures data integrity.
Key Functionality & Data Sync
How to import employees from Personio to Planday
The Personio integration is designed to be a "single source of truth" system, where Personio manages all employee data, which is then synced to Planday.
Prevents Data Duplication
Prevents Data Duplication
The integration uses persistent external IDs to link profiles between the Personio and Planday, which prevents the creation of duplicate employees if data is changed in Planday - but not in Personio. An employee is mapped on the email when the sync happens - but even if the email is changed following the original link being created - the ID will persist and the email will be overwritten in Planday to match that of Personio.
One-Way Data Sync
One-Way Data Sync
Data flows one-way from Personio to Planday. Any manual changes made to synced employee fields within Planday will be overwritten during the next sync to maintain data integrity.
Note: There’s one exception to this which is the email (username) in Planday.
Sync Frequency
Sync Frequency
The integration automatically syncs data every three hours. A manual "Sync now" button is also available in the integration settings.
Note: The manual sync is a partial sync (only syncs changes), whereas the “sync now” option is a full sync.
Filtering
Filtering
You can select specific departments, locations, employment types etc. from Personio to sync. The filtering is done when the integration is set-up.
To change filters, you need to disable the integration and re-enable it. You can also reach out to Support, who can share a link with you that will re-open the filter page. In this way, this will avoid potentially creating duplicates (data link loss).
Reconnecting the Integration (Data Link Loss)
Reconnecting the Integration (Data Link Loss)
If you deactivate and then reactivate the integration, all prior user links between Personio and Planday are permanently removed. The system treats the reconnection as a new integration setup.
Why does this cause duplicates?
This loss of links becomes critical when the primary identifier (e.g. Email/Username) has been changed in Personio but has not yet been updated in Planday.
Since the Email in Planday is an exception to the One-Way Data Sync rule, the email change in Personio will not automatically update the corresponding Planday profile. If the integration is deactivated and reactivated in this state, the system will not recognize the profiles as the same user and will re-create the user as a duplicate in Planday.
How to import leave data from Personio to Planday
When Absence Sync is enabled for your Personio integration, approved leave recorded in Personio is automatically imported into Planday. Personio remains the single source of truth for all absence data; Planday simply reflects what has been approved in Personio.
How leave is displayed in the schedule
How leave is displayed in the schedule
Visual leave indicators: Approved absences from Personio are shown on the schedule as a leave bar (blue bar) so managers can quickly see when an employee is unavailable.
Existing shifts are left as is: If an employee already has a shift in Planday on a day where Personio reports approved leave, that shift is not automatically converted to an Open Shift but left as is by default. In the future this may be added as a setting but until that time the least intrusive option is to not make any automatic updates to a shift.
Approved leave only: Only approved absences from Personio are synced into Planday; pending absenses are ignored.
Handling of partial leave days
Handling of partial leave days
A note will be added to the leave in Planday clarifying that the employee is off for only part of the day.
Personio leave configuration
Personio leave configuration
Direction of sync: Leave sync is one-way (Personio to Planday). All accruals, approvals and policy checks happen in Personio.
Enable/disable: Leave Sync is controlled via a toggle in the integration settings, and each imported absence event is logged in the Integration Sync Log for traceability. Leave sync is on by default.
ℹ️ Need more help?
🔍 Search the Help Center | See videos at Tutorials.Planday.com | Watch a webinar
💬 For personalised support
Login and contact our support team via the blue icon at the bottom if you have more questions or book a one-to-one professional training session with an expert.
