Personio
Bring new starters, changes and leavers from Personio into every system that needs them, with HR approving each change.
30 ways to read, 9 ways to write, each write switched on by you.
Quality checks
Built and tested with example responses.
- Ready to connect: doneEvery listed action is built in.
- Built and tested with example responses: doneEach action is built from the provider’s published API and tested against example responses, errors, rate limits and paging.
Connected, approved, proven.
The things teams do most with Personio, an example flow with a person in the loop, and what Nexra keeps as proof.
Top actions
- Create absence period
absence_periods.createApproval by rule - Create attendance period
attendance_periods.createApproval by rule - List absence period breakdown
absence_period_breakdowns.listRead
Example flow
- Personio · List absence period breakdown
absence_period_breakdowns.listDone - Personio · Create absence period
absence_periods.createMaker-checker - Nexra · Record the decision and result in the evidence chainProven
Example workflow. Routine runs go through on their own. Only a change your rules flag, such as one over a limit you set, waits for the right person, who sees the exact change and the rule before it reaches Personio.
What gets logged
- Whether it ran on its own or who approved it, and under which rule
- A fingerprint of the exact request sent to Personio
- Personio's reply: what it created or changed
- One entry in the evidence chain, linked to the one before
Try this in the sandbox
Run the whole flow with test data in your sandbox, then connect your own account when you are ready to go live.
For developers
Technical detail
Personio v2: persons, employments, absences, attendances and projects (read and write); org units, cost centres, legal entities, workplaces, attributes, documents and recruiting.
Personio API docs- Source actions
- 30
- Destination actions
- 9
- Data types
- 19
What you can map
Reads are always available. Writes are off until you switch them on for a connection, and governed writes follow your policies.
absence period breakdowns1
- List absence period breakdownSource
Daily effective duration of an absence period (days or minutes).
absence periods4
- Create absence periodDestinationNot retried automaticallyApproval before production
Records an absence (for example vacation) for a person.
- Get absence periodSource
One absence period.
- List absence periodsSourceIncremental
Absence periods, optionally for one person or type, or updated in a window.
- Update absence periodDestinationProvider duplicate protectionApproval before production
Changes the start, end or comment of an absence period.
absence types2
- Get absence typeSource
One absence type.
- List absence typesSource
Absence types with category and unit (day or hour).
application stage transitions1
- List application stage historySource
Stages an application has moved through, latest first.
attendance periods4
- Create attendance periodDestinationNot retried automaticallyApproval before production
Records a work or break period for a person, optionally against a project.
- Get attendance periodSource
One worked or break period.
- List attendance periodsSourceIncremental
Worked and break periods, optionally for one person, status or date window.
- Update attendance periodDestinationProvider duplicate protectionApproval before production
Changes the start, end, comment or project of an attendance period.
attributes1
- List company attributesSource
Standard and custom person attributes available in the company, with data types. Pay, tax, bank, ID and health attributes are omitted.
cost centers1
- List cost centresSource
Cost centres configured in Personio.
documents1
- List document metadataSourceIncremental
Metadata of a person's documents (name, category, date, e-signature status); files are not downloaded.
employments3
- Get employmentSource
One employment of a person.
- List employmentsSourceIncremental
Employments of one person with position, status, org units, cost centres and termination.
- Update employmentDestinationProvider duplicate protectionApproval before production
Updates position, status, dates, working hours, supervisor, office, org units or cost centres.
legal entities2
- Get legal entitySource
One legal entity. Bank details are omitted.
- List legal entitiesSource
Legal entities (employing companies) with country, status and address. Bank details are omitted.
org units2
- Get org unitSource
One department or team with its leads and parent chain.
- List org unitsSource
Departments or teams with their parent hierarchy.
persons4
- Create personDestinationNot retried automaticallyApproval before production
Creates a person with an initial employment (position, dates, org units, supervisor).
- Get personSource
One person with custom attributes and employment IDs.
- List personsSourceIncremental
Persons (employees) with custom attributes, optionally changed after a timestamp.
- Update personDestinationProvider duplicate protectionApproval before production
Updates name, email, language or custom attributes. Omitted fields are unchanged.
project members1
- List project membersSource
Persons assigned to a project.
projects4
- Create projectDestinationNot retried automaticallyApproval before production
Creates an attendance project (optionally a sub-project).
- Get projectSource
One attendance project.
- List projectsSource
Attendance projects with status, codes, cost centre and dates.
- Update projectDestinationProvider duplicate protectionApproval before production
Updates a project's name, status, code, cost centre, dates or billing.
recruiting applications2
- Get recruiting applicationSource
One application.
- List recruiting applicationsSourceIncremental
Applications with candidate, job, current stage and hiring team, newest first.
recruiting candidates2
- Get recruiting candidateSource
One candidate.
- List recruiting candidatesSourceIncremental
Candidates with contact details and application IDs, newest first.
recruiting categories1
- List job categoriesSource
Job categories with their recruiting pipeline stages.
recruiting jobs2
- Get recruiting jobSource
One job opening.
- List recruiting jobsSourceIncremental
Job openings with department, category and hiring team.
workplaces1
- List workplacesSource
Workplaces (offices) configured in Personio.
Access and limits
- Authentication
- Personio API client ID and secret (OAuth 2.0 client credentials)
- Plans and access
- API credentials are available on Personio plans with API access; attendance and absence APIs require the respective Personio modules. Each credential is limited to the scopes and attributes selected when it was generated (for example personio:persons:read, personio:absences:write).
- Test environment
- Personio provides demo or sandbox accounts to customers and partners on request.
- Rate limits
- The token endpoint allows 150 requests per minute; data endpoints are rate limited per credential and return HTTP 429 when exceeded.
- Pagination
- Cursor pagination through _meta.links.next (persons up to 50, other lists up to 100 per page).
- Provider events
- v2 webhooks for person, employment, absence and attendance events. Flows run on demand, on a schedule, or when a scheduled check finds new or changed records.
Before you build a flow
- Uses Personio API v2 only. The v1 custom-attribute metadata endpoint uses a different token flow and is not implemented; custom attribute IDs, labels and types are returned on each person instead.
- Compensations, salary bands, gender, bank details and legal entity bank accounts are never requested or returned.
- Absence periods can reveal sick leave through their absence type; restrict the credential's absence scopes if flows should not see them.
- Intentionally excluded: deleting persons, absences, attendances, projects or documents; removing project members; downloading document files; submitting recruiting applications; and webhook management.
- Compensations (GET /v2/compensations and compensation types) are intentionally not implemented: this connector never returns pay data. Use a dedicated, separately approved payroll integration if pay data must flow.
- Recruiting candidates and applications never return gender or birthday, and Nexra does not filter recruiting or person lookups by email; look records up by ID.
- Departments and offices are read through org units (type department) and workplaces. Custom person attributes are listed as company attributes (reports API); their values are returned on each person.
- The Personio scopes for projects, documents and company attributes were not shown in the reference pages Nexra used; grant the matching read and write scopes on the API credential.
- Creates have no idempotency key; uncertain writes are not repeated automatically.
Developer reference
- Create the Personio credentials described above with the narrowest permissions your flows need.
- In Nexra, open Connect, then Connections, then New connection, choose Personio, enter its settings and credentials, and tick only the write actions you need. Connection guide
- Test the connection, then use its actions as flow sources and destinations. Flow guide
Machine-readable detail: GET /api/public/connect/connectors/personio and the Connections API.