This article addresses the most frequently asked questions about integrations and APIs in Personio.
Why is the Create custom integration button not visible in my account?
Creating custom API credentials requires the Core Pro plan. This is a plan restriction, not an access rights issue. Having an Administrator role gives you the correct access rights, but it doesn't include Core Pro features. If the Create custom integration button isn't visible in Marketplace > Connected Integrations, check your plan in Settings > Account & support > Subscription & billing. If you're on Core, you need to upgrade to Core Pro to access this feature.
Can I retrieve historical salary data using the Personio API?
The Personio API endpoints return current attribute values only. To retrieve historical salary data, you need to create a report and retrieve it via the API.
- Go to Analytics
- Click Create report and select Employee change blank report.
- Add the salary attributes you want to track. The report shows old and new values along with the effective date of each change.
- Save the report.
- In the reports list, select it, click Manage API access, and select Enabled.
- Go to Marketplace > Connected Integrations.
- Select the relevant custom integration and enable Read access for Reports
- Click Update.
- Retrieve the data using the Report API v2. Endpoint: https://api.personio.de/v2/reports/attributes.
Learn more about how to use the Report API v2 and the Developer Hub API reference.
Why is a connected integration still showing an old value after I renamed an attribute option?
Renaming an option in a list of options attribute only updates the display label in Personio. The database value — which is what Personio sends to connected integrations — stays the same and you cannot change it. To update the value your integration receives, create a new option with the correct name. The name you enter first becomes the new database value. Learn more about how to fix database values and display labels.
Can I retrieve employee work schedules using the Personio API?
Yes. Work schedules are part of the employee data available through the v1 Employee API. To access them, enable Read access for Employees on your integration in Marketplace > Connected Integrations.
You can retrieve work schedules using these endpoints:
The API returns each employee's current work schedule. It doesn't return historical schedule data. Work schedule data with daily granularity isn't available in v2. Use the v1 endpoint for this data.
How do I retrieve time off data for all employees using the Personio API?
Use the GET /v2/absence-periods endpoint to retrieve time off periods, including all time off types and their dates, for your employees.
To set this up:
- Go to Marketplace > Connected integrations.
- Select your custom integration and enable Read access for Time off.
- Call the GET /v2/absence-periods endpoint. You can filter by employee, absence type, or date range.
Visit the Developer Hub for full endpoint documentation and available filters.
Can I retrieve substitute data for time offs using the Personio API?
No. Substitute data isn't available with the Personio API. You can include a substitute when creating a time off using the API, but the GET /v2/absence-periods endpoint doesn't return the substitute field. There is no endpoint available to retrieve substitute data.
Why don't department, team, and position appear in my API response?
Department, team, and position are employment-related attributes. The standard employee data endpoint doesn't return them, even if you have Read access for Employees enabled in your API credentials. To retrieve them, use these endpoints instead:
- Department, team, and position: GET /v2/persons/{person-id}/employments
- Top-level departments: GET /v2/org-units
The org-units endpoint returns top-level (parent) departments only. This endpoint doesn't return sub-departments within a department hierarchy.
You don't need to change anything for attributes like date of birth that do appear in the standard employee response.
How do I retrieve job catalog data (job name, job family, and job level) using the Personio API?
Job catalog attributes are available with the Personio API. Use these endpoints:
- List all jobs: GET /v2/jobs
- Retrieve a single job: GET /v2/jobs/{id}
To set up access, open your custom integration and enable access for Job catalog. To include salary band data, also enable Salary Bands access.
Learn about endpoint documentation in the Developer Hub.
Can I retrieve the sub-attributes of the child attribute using the Personio API?
No. Sub-attributes of the child attribute, such as expected due date and child's date of birth, are not available with the Personio API (v1 or v2). This applies to both direct API access and reports exported with the API.
Can I import data into Personio without using the API?
Yes. You can import data using Personio's built-in import templates — no API or development work required. Supported types include employees, attendance, time off, and salary.
Do Marketplace integrations require the Core Pro plan?
No. Marketplace partner integrations are available on all Core plans. You need Core Pro only if you want to build your own custom integration using the Personio public API.
Why does my integration show without a logo in Connected integrations?
If a Marketplace integration appears without a logo in Marketplace > Connected integrations, it means you set up the integration by creating API credentials manually rather than by clicking Connect in the Marketplace. This creates a custom credential entry rather than a Marketplace integration entry, which is why it appears without a logo. Personio still receives data from the partner tool using your custom credentials, but Personio doesn't officially link the integration to the Marketplace entry.
This means the partner might not automatically manage credential updates or authentication changes on your behalf. To use the official Marketplace version, where the partner manages the integration, disconnect the custom entry and reconnect using the Marketplace by clicking Connect on the integration's page. If the integration is working and you don't want to reconfigure it, contact the partner's support team directly to confirm they handle any required updates on their side.
Why isn't my Marketplace integration syncing all data types?
The partner decides which data types their integration syncs, not Personio. The data is available in Personio, but the partner's integration controls what it queries and sends. If an integration isn't syncing a data type you expect, this is usually a partner implementation choice. It's not an error to troubleshoot. To request additional data types or ask about partial syncing, contact the partner directly.
Can I enable bi-directional sync so data flows back into Personio from a third-party integration?
Personio's public API can receive employee, time off, attendance, and recruiting data from external systems. However, Marketplace partner integrations often only sync data in one direction — usually from Personio to the partner. This depends on how the partner built the integration, not on your permissions.
Personio doesn't own or control the partner's integration code. This means it cannot add two-way sync to an integration that the partner didn't build to support it.
If the integration has a listing in the Marketplace, check it for details on what data it syncs. Don't assume an integration's capabilities based on its Marketplace listing alone — listings may not describe the full sync behavior. Check with the partner directly to confirm what the integration actually supports. Data can flow back into Personio too. To do this, the partner or your IT team needs to build it using the Personio API. If you're unsure what a specific integration supports, contact the partner directly.
Why can't I find the "Office" attribute when connecting an integration?
Some third-party integrations refer to Personio's Workplace attribute as "Office." These are the same concept — the employee's physical work location. If an integration requires an "Office" attribute and you cannot find it, check whether you've set up workplaces in Personio:
- Go to Settings.
- In the Organization section, click Workplaces.
- Add a workplace if none exist, or check that you've set up existing workplaces.
- Once you set up a workplace, the Workplace attribute becomes available on employee profiles. The integration can then map to it.
Why isn't my time off data syncing even though a third-party integration shows as connected?
Personio provides a REST API which means it doesn't proactively send data to connected tools. A third-party integration needs to actively request (pull) the data it needs. For example, it needs to query time off periods after someone approves them. Personio has no visibility into whether a third-party tool made that request or why it might not have.
- Confirm that the API credentials set up for the integration include read access for the relevant data (for example, time off).
- Contact the integration's support team and ask them to check their logs for the affected records.
- They can confirm whether their system requested the data from Personio and what data Personio returned.
Is there a sandbox or test environment for developing a Personio API integration?
Personio doesn't offer a free sandbox environment for API development. A dedicated sandbox environment is available as part of our Premium Support plan.
To test API calls without using real employee data, create a set of dummy employee profiles with fictitious names and data in your live account. Use these profiles to test your API calls and review the responses. Delete or anonymize the dummy profiles when you're done.
How do I sync projects from an external tool into Personio with the API for project-based time tracking?
You can sync projects using a two-step process:
- In Personio, create the projects first. Use the Projects API endpoint to create each project. Include a project ID that matches the identifier in your external tool.
- Submit time entries linked to those projects. Once the projects exist in Personio, use the Attendance API endpoint to submit attendance records. Include the project ID in each entry. This is what links the tracked time to the correct project for project-based time tracking.
To access the Projects endpoint, enable Attendances access (read, write, or both) in your API credentials. There's no separate Projects permission. Learn more about the endpoint documentation.
Can I set up automated reporting for employee lifecycle events like new hires, departures, and attendance changes?
You cannot schedule automated report delivery directly in Personio. There's no built-in feature that sends reports at a set frequency or triggers a report export on a lifecycle event. To track this data, go to Analytics > Metrics or Analytics > Reports and run reports manually. You can find many predefined report templates there. If you need programmatic access to report data, you can retrieve reports using the Report API v2. You can then build your own scheduled pipeline externally.
Can I connect an AI tool like Claude or ChatGPT to Personio?
Check if the tool you want to connect is listed in the Marketplace. If it's not, you can still connect it to Personio using the public API and webhooks. This allows you to exchange data including employee profiles, time off, attendance records, and recruiting data. Your IT department or an external IT service provider is responsible for building the connection. Personio Support can answer questions about the API but can't help write or review custom code.
Can I stop Slack or Microsoft Teams from announcing an employee's birthday or work anniversary?
No. Channel updates apply to everyone in the department, team, or workplace mapped to that channel — you cannot exclude a single employee. You have two options: turn off that event type for the whole channel or assign the update to a narrower department, team, or workplace so the employee isn't included.
Channel updates depend on whether an employee's status in Personio is active or inactive, not on their leave status. An employee on leave or any other time off type still counts as active and continues to appear in updates. You cannot filter updates by time off type. The only way to exclude one specific employee is to mark them as inactive in Personio.
Can I exclude specific time off types, like maternity or parental leave, from the daily Slack time off update?
No. If an update includes time off, it includes every time off type. You cannot filter by type. You can narrow who the update applies to by assigning it to a specific department, team, or workplace, but this changes the audience, not which time off types appear.
Can I connect more than one Slack workspace to my Personio account?
No, you can only connect one Slack workspace per Personio account. If you have a second legal entity using a separate Slack workspace, you can use the Personio API as a workaround to send time off notifications to that workspace. To do this:
- Use the List Employees endpoint to retrieve employees and filter by legal entity.
- Use the List Absence Periods endpoint to retrieve absences for those employees.
- Use the Slack API to post the results to a channel in the additional workspace.
- Learn more about how to set up API access.
- Find endpoint documentation in the Developer Hub.
Can I get Slack to show half-day or hourly time off accurately?
No. The automated Slack status feature only supports daily time off. Half-day and hourly time off show as full-day time off in Slack. There's no setting to change this. Your time off records in Personio stay accurate. This limitation only affects the Slack status display.
If you need Slack to reflect half-day time off accurately, you can build a custom solution. This solution uses Personio webhooks and API endpoints to trigger Slack status updates based on specific time off data. Your IT department or an external IT service provider is responsible for building the connection. Personio Support can answer questions about the API but can't help write or review custom code.
Why is my integration stuck on Pending status?
A Pending status means Personio is ready and waiting for the integration to make its first API request. The status changes to Connected once the integration sends data. If your integration has shown Pending for an extended period, the issue is on the partner's side. Personio has no visibility into how third-party partners build integrations or why they aren't sending data. Go to Marketplace > Connected integrations to confirm the status, then contact the partner's support team, not Personio, to investigate.
Can I run multiple integrations at the same time?
Yes. Personio's API responds to requests from connected tools rather than initiating them. This means running several integrations at once doesn't cause a conflict by default. The exception is when two integrations both have write access to the same data type, for example, attendance data. If both are adding or updating the same records, this can cause conflicting or overwritten data. If you're running multiple integrations against the same data, check whether more than one has write access to it. Coordinate with each partner if needed.
Can I connect a second account to a Marketplace integration I already use?
You can reuse the existing credentials to connect a second account with that same integration. However, you cannot create a second set of API credentials for the same Marketplace integration. Using a Marketplace integration, or connecting an integration through the public API, doesn't add extra cost on the Personio side, as long as your account has the Core Pro plan, which includes API usage. Some partner tools may have their own separate pricing. Check with the partner directly if you're unsure.
Can I exclude specific employees from a Marketplace integration sync?
For most Marketplace integrations, there's no option to exclude individual employees or a specific group. All employees sync by default. Some payroll integrations, like Xero, ADDISON, and Loket, are an exception. They include an attribute that you can use to exclude individual employees from that specific payroll sync. This isn't available for non-payroll integrations.
Some integrations offer filtering within their own settings. However, this typically only changes how the partner tool displays employees — the data transfer to that tool still happens. For integration-specific filtering options, check the partner's documentation.