Bullhorn logoVisma Raet YouForce logo

Recruitment to HR

Bullhorn to YouForce integration: a placement becomes a hire request

With an integration between Bullhorn and Visma Raet YouForce, a new placement in Bullhorn starts a hire request in YouForce, with start date, contract hours, job and organisational unit. If the consultant has been employed before, it becomes a new contract for the existing person in YouForce.

What the integration does

Organisations that place consultants through Bullhorn and employ them in YouForce fill in the hire again after every placement. Consultants who return after a break then sometimes appear twice in YouForce.

  1. The recruiter creates the placement in Bullhorn with start date, hours and employee type.
  2. KoppelHet reads the placement and searches YouForce for whether the person is already known.
  3. For a new person a hire request starts; for a known person a new contract.
  4. KoppelHet follows the workflow in YouForce until it is completed or rejected.
  5. HR picks scale and step in YouForce and completes the request.
Bullhorn → KoppelHet → Visma Raet YouForceSOURCEBullhornTARGETVisma Raet YouForceKoppelHetmapping · logging · monitoringBullhorn → KoppelHet → Visma Raet YouForceSOURCEBullhornTARGETVisma Raet YouForceKoppelHetmapping · logging · monitoring
Out: Placement and candidate · Hire request · New contract for a known person (rehire) · Job and organisational unit from YouForce · Status of the workflow in YouForce

What to watch for with Bullhorn and Visma Raet YouForce

  • YouForce does not let a recruitment system create an employee directly, but it does let it start a hire request in the self-service workflow. The placement from Bullhorn becomes such a request and HR keeps grading in its own hands.
  • At an agency the same consultant often gets several placements. KoppelHet therefore first searches YouForce on last name at birth and date of birth, and on a match creates a new contract for that person instead of a second person.
  • A request in YouForce requires contract type, job, organisational unit and contract hours. Bullhorn supplies these as end date, position code, cost centre and hours per day on the placement; KoppelHet translates them and stops with a notification if a translation is missing.
  • Bullhorn records hours on a placement per day, YouForce wants contract hours. KoppelHet converts using the number of working days that belongs to the employee type.
  • YouForce processes a request later. According to YouForce a completed request only means it was submitted; KoppelHet follows the workflow until the final status is known and reports a rejected request to the recruiter.
  • Bullhorn has a field on the placement for the start of paid employment, separate from the assignment start. KoppelHet uses it as the hire date, so an induction week before the assignment also counts in YouForce.

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 Bullhorn have an integration with YouForce?

We found none from Bullhorn or Visma. KoppelHet uses the entry point Visma provides for recruitment systems.

Is the consultant in YouForce straight away?

As a request yes. As an employee only after HR has completed the request.

What happens when an assignment is extended?

In the first version nothing. YouForce can change a running contract through the integration; that can be added later as an extension.

What do we need to allow in YouForce?

That the integration may start requests and read jobs and organisational units. Your administrator arranges this in the Visma developer portal.

Technical details for IT

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

  • Bullhorn is read through the REST API (OAuth 2.0, REST login with BhRestToken). A subscription on entity Placement with eventTypes INSERTED; GET /event/subscription with maxEvents, and GET entity/Placement (employmentStartDate, dateBegin, dateEnd, hoursPerDay, positionCode, costCenter, employeeType) and entity/Candidate (lastName, dateOfBirth).
  • To YouForce through the Youforce Recruitment API (OAuth 2.0). GET persons/search (lastNameAtBirth, birthDate); POST hires (mandatory candidateID and in employmentDetails payrollClientCode, payrollInstitutionCode, hireDate, employeeType, contractType, organizationUnit, jobProfile, amountOfHours) or POST persons/{personId}/contracts for a rehire. Status through GET hires/{id}/status until hrssWorkflowStatus.data.isActive is false; endStatus OK or NOK. Scopes Get_Basic and HSS_startWorkflow.

Which fields are transferred

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

Field in BullhornField in Visma Raet YouForceNotes
Placement.idcandidateIDMandatory in the request; every request can be traced back to one placement
Candidate.lastName en dateOfBirthZoeken naar een bestaande persoonWith last name at birth and date of birth
Placement.employmentStartDate of dateBeginhireDate
Placement.hoursPerDayamountOfHoursConverted to hours per week
Placement.dateEndcontractTypeEmpty means open-ended
Placement.positionCodejobProfileThrough a lookup to the jobs in YouForce
Placement.costCenterorganizationUnitThrough a lookup table
Placement.employeeTypeemployeeType

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.