Recruitee logoLucca logo

Recruitment to HR

Recruitee to Lucca integration: hired candidates with employment and job position in Lucca

With an integration between Recruitee and Lucca, a candidate who reaches the Hired stage in Recruitee automatically becomes an employee in Lucca, with legal entity, establishment, department, job title, manager and start date. Nobody has to click Send to Lucca per candidate in Recruitee and fill in that data again.

What the integration does

Organisations that recruit in Recruitee and use Lucca as HR file now pass a hired candidate on with the Send to Lucca button. The recruiter enters work email, start date, department and entity again for every candidate, and HR then still completes establishment, job title and manager in Lucca.

  1. KoppelHet fetches the legal entities, establishments, departments and employment templates from Lucca daily.
  2. The recruiter moves the candidate to the Hired stage in Recruitee and fills in the profile fields for start date, establishment and manager.
  3. KoppelHet creates the employee in Lucca, together with the first employment and the first job position.
  4. If the profile holds an end of probation, a probationary period follows on the new employment.
  5. If Lucca rejects the hire, HR sees the reason in the KoppelHet platform and gets an alert.
Recruitee → KoppelHet → LuccaSOURCERecruiteeTARGETLuccaKoppelHetmapping · logging · monitoringRecruitee → KoppelHet → LuccaSOURCERecruiteeTARGETLuccaKoppelHetmapping · logging · monitoring
Out: Hired candidate with name, email and phone · Employee in Lucca with first employment · First job position with establishment, department and manager · Probationary period with end date · Reference to the candidate in Recruitee

What to watch for with Recruitee and Lucca

  • Lucca refuses a new employee without a first employment and a first job position. KoppelHet therefore sends those three in one call, so no employee without an entity or department is created in Lucca.
  • For the employment Lucca wants an employment template, and for the job position an establishment and a department. Recruitee does not know those concepts, so KoppelHet derives them per job from a lookup table that HR maintains.
  • The remoteId field is the employee's login in Lucca and must be unique. KoppelHet fills it with the work email address and checks in advance whether that address already exists, so a returning employee does not come in twice.
  • The manager in Lucca refers to an existing employee. The recruiter picks an email address in Recruitee, and KoppelHet looks up the matching employee in Lucca.
  • Lucca records the probationary period as a separate part of the employment, with an initial end date. KoppelHet only creates it if the offer names one.
  • The endpoint for creating employees is in beta at Lucca and can change without notice. KoppelHet therefore tests in Lucca's test environment first and monitors every hire for errors.
  • An API key only sees employees in establishments it has access to. If the organisation recruits for several establishments, the integration gets access to exactly those establishments.

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

Why not the Send to Lucca button in Recruitee?

It works, but needs a click and manual input per candidate, and leaves the job position empty. With more than a handful of hires a month, automating pays off.

Does the salary from the offer come along?

Not in this integration. Pay sits in a separate module in Lucca; HR fills it, or a later extension does.

When can the new colleague log in to Lucca?

Lucca only gives access to employees with an active employment. With a future start date, the login therefore waits until the first working day.

Technical details for IT

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

  • Recruitee reports the hire through the candidate_moved webhook with to_stage.category hire, signed with HMAC-SHA256 in the X-Recruitee-Signature header. Recruitee expects a 200 within ten seconds and otherwise retries up to nine times. Offer and profile fields come from the Recruitee ATS API.
  • To Lucca through the Lucca API with header Api-Version 2024-11-01 and OAuth 2.0 (scopes employees.readwrite, employments.readwrite and job-positions.readwrite). POST /lucca-api/employees with givenName, familyName, remoteId and firstEmployment (start, legalEntity, template and firstJobPosition with businessEstablishment and department). Probation through POST /lucca-api/probationary-periods with initialEndsOn.

Which fields are transferred

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

Field in RecruiteeField in LuccaNotes
namegivenName en familyNameRecruitee has one name field; we split it
Zakelijk e-mailadres (profielveld)email en remoteIdremoteId is the unique login in Lucca
phones[0]phoneNumber
Startdatum (profielveld)firstEmployment.start.date
Vacature of plaatsingslocatiefirstEmployment.legalEntity en templateThrough a lookup per job
placement_locations[0]firstJobPosition.businessEstablishment
offer.departmentfirstJobPosition.departmentThrough the department list from Lucca
Functietitel (profielveld) of vacaturetitelfirstJobPosition.jobTitle
E-mail leidinggevende (profielveld)firstJobPosition.managerLooked up as employee id in Lucca
Einde proeftijd (profielveld)Probationary period initialEndsOn

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.