Carerix logoBambooHR logo

Recruitment to HR

Carerix to BambooHR integration: successful placement as an employee with employment status in BambooHR

With an integration between Carerix and BambooHR, a candidate with a successful match in Carerix becomes an employee in BambooHR, with hire date, department, job title and a first employment status entry that follows the contract type from Carerix. KoppelHet checks changed matches in Carerix every quarter of an hour, because Carerix does not pass on a placement itself.

What the integration does

Organisations that recruit in Carerix and use BambooHR as their HR system copy every successful placement by hand. Department, job title and contract type are stored in Carerix as pick lists with their own names, and BambooHR only accepts the options from its own lists.

  1. The recruiter sets the match in Carerix to a status for a successful placement.
  2. Every quarter of an hour KoppelHet retrieves the changed matches and reads candidate and vacancy.
  3. KoppelHet translates the Carerix choices to valid options in BambooHR.
  4. KoppelHet creates the employee in BambooHR and stores the ID that BambooHR returns.
  5. Then KoppelHet sets the contract type as an entry in the employment status table.
Carerix → KoppelHet → BambooHRSOURCECarerixTARGETBambooHRKoppelHetmapping · logging · monitoringCarerix → KoppelHet → BambooHRSOURCECarerixTARGETBambooHRKoppelHetmapping · logging · monitoring
Out: Match with status and start date · Candidate with name and contact details · Vacancy with contract type, function and department · Employee in BambooHR with ID · First entry in the employment status table

What to watch for with Carerix and BambooHR

  • BambooHR accepts the employment type field when creating an employee, but silently does not store it. KoppelHet therefore sets the contract type from the Carerix vacancy as a separate entry in the employment status table after creation, with the start date as effective date.
  • List fields in BambooHR, such as department and job title, only accept existing options; an unknown value gives an error. In Carerix department and function are data nodes with their own names. KoppelHet retrieves BambooHR's options and keeps a table from Carerix node to BambooHR option.
  • BambooHR returns an ID for a new employee, and advises using it instead of the employee number. KoppelHet stores that ID with the Carerix match number, so a second status change on the same match does not produce a second employee.
  • Carerix stores the Dutch name prefix separately, BambooHR has first name and last name. KoppelHet puts the prefix at the front of the last name, so the name in BambooHR matches the ID document.
  • Sending a photo when creating the employee is pointless; BambooHR ignores photo fields there without an error. Photos and the CV from Carerix stay in Carerix in the first version, and sending them as files can be added later.
  • Carerix has a field for hours per week per vacancy and a salary with unit per match. BambooHR records both in its own tables with an effective date; in the first version they go to HR as a task, so compensation in BambooHR does not end up with a wrong unit.

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 Carerix have its own BambooHR integration?

We did not find one in the public documentation of Carerix or BambooHR. KoppelHet builds on the APIs of both.

What if a new department is added in BambooHR?

Then HR adds it to the lookup table. Until then a placement with that department stops with a notice.

Do BSN and bank account come from Carerix?

No, not by default. The employee or HR enters them in BambooHR or payroll.

Technical details for IT

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

  • Carerix through the GraphQL API (https://api.carerix.io/graphql/v1/graphql), confidential client with client credentials. crMatchPage with a qualifier on statusInfoModificationDate and statusInfo.isSuccessfullyFilled; CRMatch jobStartDate, salary and salaryUnitTag; CREmployee firstName, lastNamePrefix, lastName, emailAddress and mobileNumber; CRVacancy toWorkUnitNode, toFunctionLevel1, toContractTypeNode and hoursPerWeek.
  • BambooHR through POST /api/v1/employees (at least firstName and lastName; hireDate as YYYY-MM-DD; 201 with Location header and id; 409 on invalid list values; employmentType and photo fields are ignored). Options through list-fields. Then an entry in the employmentStatus table. OAuth scope employee.write.

Which fields are transferred

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

Field in CarerixField in BambooHRNotes
CRMatch _idOpgeslagen bij het BambooHR-IDTo process a placement only once
CREmployee firstNamefirstName
CREmployee lastNamePrefix en lastNamelastNamePrefix at the front
CREmployee emailAddress en mobileNumberhomeEmail en mobilePhone
CRMatch jobStartDatehireDate
CRVacancy toWorkUnitNodedepartmentThrough a table to a valid option
CRVacancy toFunctionLevel1jobTitleThrough a table to a valid option
CRVacancy toContractTypeNodeemploymentStatus (tabelregel)Effective date equal to the start 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.