Workable logoUnit4 HR logo

Recruitment to HR

Workable to Unit4 HR integration: hired candidate with an accepted offer as an employee in Unit4

With an integration between Workable and Unit4 HR, a candidate who moves to the hired stage in Workable and has an accepted offer automatically becomes an employee in Unit4, with an employment on the job's position. The start date comes from the offer in Workable, and Unit4 checks everything first without saving.

What the integration does

Organisations that recruit in Workable and manage employees, projects and finance in Unit4 copy every hire into Unit4 by hand. The offer with the start date is only in Workable, and a candidate accidentally moved to hired can end up as an employee in Unit4 that way.

  1. The recruiter puts the candidate in the hired stage in Workable.
  2. KoppelHet checks the notification's signature and requests the offer. Only an accepted offer goes on.
  3. The Unit4 company and position follow from the job's department and location.
  4. Unit4 checks the employee without saving; on an error HR gets an alert.
  5. After a successful check the employee is in Unit4, with the employment on the start date from the offer.
Workable → KoppelHet → Unit4 HRSOURCEWorkableTARGETUnit4 HRKoppelHetmapping · logging · monitoringWorkable → KoppelHet → Unit4 HRSOURCEWorkableTARGETUnit4 HRKoppelHetmapping · logging · monitoring
Out: Candidate with first name, last name, email and address · Job with department and location · Offer with status and start date · Employee (resource) in Unit4 · Employment on a position

What to watch for with Workable and Unit4 HR

  • On a stage change Workable sends the candidate as they are at the time of sending, not as they were when the change happened. If the candidate has been moved back in the meantime, KoppelHet sees that and does not create an employee in Unit4.
  • Workable reports every move to hired, including one made by mistake. Unit4 can only terminate a saved employee, not delete one. KoppelHet therefore requests the offer first and only continues if its status is accepted.
  • In a Workable offer the start date is a variable from the offer template, stored as text. KoppelHet converts that text to a date and stops with an alert if that fails, because Unit4 does not let the start date of an employment be moved later afterwards.
  • A subscription in Workable can be limited to a stage and to jobs. KoppelHet only subscribes to the hired stage, so the integration does not receive candidate data at every step of the hiring process.
  • Workable has departments and locations, Unit4 has companies and positions. Per combination of department and location we record the Unit4 company, and per job the position. For a missing company Unit4 returns a refusal; KoppelHet catches that with an alert to HR.
  • A Workable token only gets the rights chosen when it is created. Read rights on candidates and jobs are enough for this integration, and Workable signs the notifications with that token or the app secret. Nothing goes back to Workable.
  • With an approval workflow in Unit4 a new employee waits for an approver. KoppelHet passes such a hire to HR as pending, with the fields that still need approval, so the recruiter in Workable does not have to redo anything.

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 go to Unit4?

Not in the first version. Workable has amount, frequency and currency, but HR records grading and salary in Unit4. Taking it along can come later as an extension.

What if the offer has not been accepted yet?

Then KoppelHet creates nothing in Unit4 and alerts the recruiter. After acceptance the recruiter moves the candidate to hired again.

Technical details for IT

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

  • Workable through a subscription to candidate_moved filtered on the hired stage (HMAC-SHA256 in X-Workable-Signature, key is the account token or the OAuth app secret; respond 200, otherwise Workable replays). The offer through GET /spi/v3/candidates/{id}/offer (state, document_variables with start_date in value.body). Token with the scopes r_candidates and r_jobs.
  • Unit4 ERPx through the Employees API with client ID and client secret. POST /v1/employees/validate, then POST /v1/employees with companyId, nameInformation, contactPoints, personnelType and employments (positionId, startDate). 202 listing the fields awaiting approval, 403 for an unknown companyId, 409 for a duplicate personId.

Which fields are transferred

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

Field in WorkableField in Unit4 HRNotes
Kandidaat-idVrij veld of relatie in Unit4Recognises a second notification for the same candidate
firstname en lastnamenameInformation (firstName, surname)
email, phone en addresscontactPoints
Afdeling en locatie van de vacaturecompanyIdThrough a table per combination
Vacature (shortcode)employments (positionId)Position recorded per job
Aanbodvariabele start_dateemployments (startDate) en dateFromText from the offer template, converted to a date

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.