Greenhouse logoUnit4 HR logo

Recruitment to HR

Greenhouse to Unit4 HR integration: accepted offer as an employee in the right Unit4 company

With an integration between Greenhouse and Unit4 HR, a candidate whose offer is accepted in Greenhouse automatically becomes an employee in Unit4, in the company that belongs to the job's office and with an employment on the right position. The start date comes from the offer, and Unit4 first checks the data without saving anything.

What the integration does

Organisations that recruit internationally in Greenhouse and manage staff, finance and projects in Unit4 re-enter every hire in Unit4. HR works out per hire which Unit4 company and which position belong to a job, and a moved start date only reaches Unit4 late.

  1. The recruiter or hiring manager clicks Accept Offer in Greenhouse.
  2. KoppelHet receives the webhook, checks the signature and looks up the Unit4 company for the job's office.
  3. Unit4 checks the new employee without saving. If anything is missing, HR gets an alert and Unit4 stays empty.
  4. After a successful check Unit4 creates the employee, with an employment on the position that belongs to the job.
  5. If the offer changes afterwards, for example the start date, HR gets an alert to review it in Unit4.
Greenhouse → KoppelHet → Unit4 HRSOURCEGreenhouseTARGETUnit4 HRKoppelHetmapping · logging · monitoringGreenhouse → KoppelHet → Unit4 HRSOURCEGreenhouseTARGETUnit4 HRKoppelHetmapping · logging · monitoring
Out: Candidate with name, email and address · Job with office, department and requisition ID · Offer with start date and custom fields · Employee (resource) in the Unit4 company · Employment on a position

What to watch for with Greenhouse and Unit4 HR

  • Greenhouse only sends the hire notification when someone clicks Accept Offer on the candidate. An offer that is still open or gets declined therefore never becomes an employee in Unit4, where a saved employee can only be terminated.
  • A changed offer becomes a new version in Greenhouse, and the old version gets the status Deprecated. Unit4 does not allow the start date of an existing employment to be set later. KoppelHet recognises a new offer version with a later start date and puts it to HR instead of changing the employment itself.
  • In Greenhouse offices belong to the job, not the candidate. Unit4 works with companies, and an unknown company returns a refusal. Per Greenhouse office we record the Unit4 company; a job with an office without a company stops with an alert.
  • Every job in Greenhouse can have a requisition ID from headcount planning. KoppelHet uses that ID to find the Unit4 position, so the new employee lands on the position budget was released for, with the cost centre finance expects.
  • Greenhouse retries a failed notification up to seven times, spread over about fifteen hours. Unit4 returns a conflict if the same employee number already exists. KoppelHet stores the Greenhouse candidate number on the employee, so a repeated delivery after an outage does not create a second employee.
  • Greenhouse disables a webhook if the test notification fails when it is created, and a disabled webhook sends nothing. KoppelHet confirms that test straight away and alerts HR if a working day passes without a hire arriving while Greenhouse shows one.
  • If the organisation has an approval workflow on new employees in Unit4, Unit4 saves the hire but the data waits for an approver. KoppelHet passes such a hire to HR as pending, so nobody enters it from Greenhouse again.

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

Does the salary from the offer come along?

Not in the first version. HR records grading and salary in Unit4. Taking the salary from the offer can come later as an extension.

What if a candidate does not start after Accept Offer?

Then HR terminates the employee in Unit4; deleting is not possible there. An automatic alert for a withdrawn offer can come later as an extension.

Technical details for IT

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

  • Greenhouse through the hire_candidate webhook (on Accept Offer; application with jobs[] including offices, departments and requisition_id; offer with starts_at and custom_fields), signed with HMAC-SHA256 over the raw body in the Signature header, with Greenhouse-Event-ID and up to 7 attempts. Changes through the Offer created and Offer updated webhooks (status Deprecated on a new version).
  • Unit4 ERPx through the Employees API with client ID and client secret. First POST /v1/employees/validate (201 without errors), then POST /v1/employees with companyId, nameInformation, contactPoints, personnelType and employments (positionId, startDate). 202 with an active workflow, 409 for a duplicate personId within the company, 403 for an unknown companyId, 422 for a missing mandatory field.

Which fields are transferred

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

Field in GreenhouseField in Unit4 HRNotes
candidate.idVrij veld of relatie in Unit4Recognises a second delivery of the same hire
first_name en last_namenameInformation (firstName, surname)Name prefix kept separate according to the name setup in Unit4
addresses en email_addressescontactPoints
jobs[].officescompanyIdThrough a table per office
jobs[].requisition_idemployments (positionId)Position recorded per requisition
offer.starts_atemployments (startDate) en dateFrom
Eigen veld op het aanbod (soort dienstverband)personnelType

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.