Lever logoPersonio logo

Recruitment to HR

Lever to Personio integration: a signed offer becomes an employee in onboarding

With an integration between Lever and Personio, a candidate hired in Lever appears in Personio as an employee with the onboarding status, with start date, department, office, legal entity and salary from the offer. KoppelHet connects Lever's webhook to Personio's API for this.

What the integration does

Organisations that recruit with Lever and use Personio as their HR system retype every hire in Personio. Lever holds the offer with start date and salary, Personio also wants office, entity and hours, and those have to be looked up per candidate.

  1. The opportunity is marked as hired in Lever.
  2. KoppelHet fetches opportunity, offer and posting and checks that everyone has signed.
  3. From the posting's tags KoppelHet determines department, office and legal entity in Personio.
  4. KoppelHet creates the person with employment in Personio, with the onboarding status.
  5. The salary then follows as a separate compensation from the start date.
Lever → KoppelHet → PersonioSOURCELeverTARGETPersonioKoppelHetmapping · logging · monitoringLever → KoppelHet → PersonioSOURCELeverTARGETPersonioKoppelHetmapping · logging · monitoring
Out: Opportunity and contact from Lever · Offer with start date, job title and salary · Person with employment in Personio · Department, office and legal entity · Fixed salary or hourly wage in Personio

What to watch for with Lever and Personio

  • Personio refuses a second employee with the same email address. If a former employee returns through Lever, KoppelHet does not create a new person but reports it to HR, which handles the rehire in Personio.
  • Department, office and legal entity are references to existing IDs in Personio. In Lever they are tags on the posting. KoppelHet translates each tag through a table and stops with a notice on a tag that is not in it yet.
  • Lever has no contract hours; the type of work is a tag, such as full-time or part-time. Personio works with weekly hours against the full-time week. Per tag we record fixed hours, or we add an hours field to the offer template in Lever.
  • For recurring compensation Personio only knows the intervals month, quarter, half-year and year. An hourly wage from Lever therefore goes in as a compensation of the hourly type, not as a fixed salary with an hourly interval.
  • A bonus from the Lever offer cannot go through Personio's compensation API. KoppelHet only carries the base salary and states in the notice to HR that the offer contains a bonus.
  • A Lever offer already shows as signed as soon as one party signs. KoppelHet only puts the employee into Personio once candidate and company have both signed, so onboarding does not start on an offer that can still change.
  • You decide which fields come along. KoppelHet monitors every hire and reports an error in the platform.

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, architecture and compliance

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.

Price indication · Basic

Leave your work email and you see the price indication right away.

We only use your address to follow up on your question about this integration.

Frequently asked questions

Do CV and offer letter come along?

Not in the first version. The signed offer as a document in Personio can be added later as an extension.

What if the start date moves after the hire?

Then HR changes the date in Personio. The integration only sends the hire itself.

Technical details for IT

For those who want to know how it works under the hood: APIs, fields and sources used.

  • Lever through the candidateHired webhook (data.opportunityId, data.contactId; HMAC-SHA256 over token and triggeredAt) and the Lever API with an API key through basic authentication. GET /opportunities/:opportunity, /opportunities/:opportunity/offers (fields by identifier, signatures per signer) and /postings/:posting (categories, country). Lever retries a failed webhook five times.
  • Personio through POST /v2/persons (scope personio:persons:write) with first_name, last_name, email and an employment with employment_start_date, status ONBOARDING, position.title, org_units, office, legal_entity and weekly_working_hours. Salary through POST /v2/compensations (scopes personio:compensations:read and write; value, currency, interval MONTHLY to YEARLY, effective_from; no bonuses).

Which fields are transferred

The key fields. The full mapping is agreed per customer.

Field in LeverField in PersonioNotes
namefirst_name en last_nameLever has one name field; KoppelHet splits it
emails[0]emailMust be unique in Personio
Offer field anticipated_start_dateemployment_start_date
Offer field job_titleposition.title
categories.department en teamorg_units (id en type)Through a lookup table
categories.location en countryoffice.id en legal_entity.idThrough a lookup table
categories.commitmentweekly_working_hoursFixed hours per tag, or a custom offer field
salary_amount, compensation_currency, salary_intervalCompensation met value, currency, interval en effective_from

Related

Which systems do you want to connect?

Tell us which systems you use and what should happen automatically. Together we define the smallest working solution, with a clear design and a quote before building.