Recruitment to HR
SmartRecruiters to Personio integration: hire as a person with employment in Personio
With an integration between SmartRecruiters and Personio, a candidate hired in SmartRecruiters becomes a person with employment in Personio in one step, in onboarding status, with legal entity, department, job title, start date and hours. KoppelHet then sets the onboarding status in SmartRecruiters to successful or failed, so the recruiter knows whether the new colleague is in Personio.
What the integration does
Organisations that recruit in SmartRecruiters and use Personio as their HR system retype every hired candidate in Personio. Legal entity, hours and probation come from the offer or an email, and if the email address already belongs to a former employee, creation fails without the recruiter noticing.
- The recruiter sets the candidate to hired for the job in SmartRecruiters.
- KoppelHet retrieves candidate, job and offer.
- KoppelHet checks in Personio whether the email address already belongs to someone; if so, the case goes to HR.
- KoppelHet creates person and employment in Personio, in onboarding status, and the salary where needed.
- The onboarding status in SmartRecruiters is set to successful, or to failed with the reason.
What to watch for with SmartRecruiters and Personio
- Personio creates person and employment in one call, and KoppelHet sets the employment to onboarding. The new colleague is then in Personio for preparations, but only counts as active after the start.
- SmartRecruiters keeps an onboarding status per hired candidate and job. If Personio rejects the hire, for example because of a duplicate email address, KoppelHet sets that status to failed with the reason, so the recruiter sees it in SmartRecruiters rather than HR on the start day.
- Start date, hours and probation are offer properties in SmartRecruiters that each organisation configures itself. At the start we record per property which Personio field belongs to it, and for probation we choose the end date, because Personio accepts an end date or a length but not both.
- SmartRecruiters is often used for several countries, while Personio works per legal entity. The job's location decides through a table the legal entity and office in Personio; a country without an entity does not go to Personio.
- Personio asks for the full-time hours next to the hours per week, for the part-time factor. KoppelHet fills the full-time hours per entity, so a Dutch entity with a shorter working week gets a different factor than a German one.
- A fixed salary or hourly wage can go into Personio through the API, with an effective date and an interval. A bonus cannot. If the offer contains a signing bonus, it becomes a task for HR.
- SmartRecruiters only sends a number in a notification and expects a response within five seconds. KoppelHet confirms right away and does the work afterwards, so a slow response from Personio does not cause a repeated notification from SmartRecruiters.
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
What if a former employee is hired again?
Then the email address already exists in Personio. KoppelHet creates no second person, sets the status in SmartRecruiters to failed and passes the case to HR.
Does Personio run Dutch payroll?
No. Personio supplies data to a Dutch payroll; that is a separate integration.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- SmartRecruiters through a webhook subscription (notification with only the ID; HMAC-SHA256 in smartrecruiters-signature; 202 within 5 seconds; up to ten retries; callbacks log of 30 days) and the Customer API with OAuth 2.0 client credentials. Onboarding status through PUT /candidates/{id}/jobs/{jobId}/onboardingStatus (ONBOARDING_SUCCESSFUL or ONBOARDING_FAILED).
- Personio through POST /v2/persons (scope personio:persons:write; first_name and last_name required; email unique; employment with status ONBOARDING, employment_start_date, weekly_working_hours, full_time_weekly_working_hours, probation_end_date or probation_period_length, legal_entity, office, org_units and position.title). Salary through POST /v2/compensations (person, type, value, effective_from, interval; fixed, hourly, one-time or recurring, no bonus; scopes compensations:read and write).
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in SmartRecruiters | Field in Personio | Notes |
|---|---|---|
firstName en lastName | first_name en last_name | |
email | email | May only belong to one person in Personio |
Locatie van de vacature | legal_entity en office | Through a table per country and branch |
Afdeling van de vacature | org_units (department) | |
Functie van de vacature | position.title | |
Startdatum (offer property) | employment_start_date | |
Uren per week (offer property) | weekly_working_hours | With full_time_weekly_working_hours per entity |
Einde proeftijd (offer property) | probation_end_date | |
Salaris en eenheid (offer property) | Compensation (vast of uurloon) |
Related
SmartRecruiters → ADP Workforce Now
SmartRecruiters to ADP Workforce Now integration: ready to onboard becomes a hire in ADP
SmartRecruiters → AFAS Profit
SmartRecruiters to AFAS integration: hired candidate starts onboarding, status back to SmartRecruiters
SmartRecruiters → BambooHR
SmartRecruiters to BambooHR integration: hire with Dutch fields and feedback
SmartRecruiters → Dayforce
SmartRecruiters to Dayforce integration: validate first, then create the employee