Bullhorn logoSAP SuccessFactors logo

Recruitment to HR

Bullhorn to SAP SuccessFactors integration: placements as employees or contingent workers in Employee Central

With an integration between Bullhorn and SAP SuccessFactors, the first approved placement of a candidate who joins your payroll becomes an employee in Employee Central, with the start date of paid employment, position code and hours. A contractor from Bullhorn becomes a contingent worker with a work order, or stays out of Employee Central if you set it up that way.

What the integration does

Organisations that place people through Bullhorn and manage their own workforce in Employee Central enter every new employee and every contractor in SAP SuccessFactors by hand. Employees and contractors need a different kind of record there, and HR has to copy the position code from Bullhorn itself.

  1. The recruiter creates a Placement in Bullhorn and sets it to approved.
  2. KoppelHet reads the placement from the event queue and looks at status and employee type.
  3. For an employee KoppelHet creates person, employment and job; for a contractor person, employment and work order.
  4. If the person already exists in Employee Central, a notice goes to HR.
  5. A rejection by Employee Central is shown with the reason in the KoppelHet platform.
Bullhorn → KoppelHet → SAP SuccessFactorsSOURCEBullhornTARGETSAP SuccessFactorsKoppelHetmapping · logging · monitoringBullhorn → KoppelHet → SAP SuccessFactorsSOURCEBullhornTARGETSAP SuccessFactorsKoppelHetmapping · logging · monitoring
Out: Placement with status, employee type and position code · Candidate with name, date of birth and contact details · Person, employment and job in Employee Central · Work order for a contingent worker · Notice to HR on a second placement

What to watch for with Bullhorn and SAP SuccessFactors

  • Bullhorn has a positionCode field on the Placement that, according to its own documentation, is meant for payroll integrations. Recruiters fill in the position from Employee Central there, so the job lands on the right position without HR looking up a number.
  • SAP creates a contingent worker with a work order instead of a regular job, in its own order of upserts. Per value of the employee type in Bullhorn, such as Employee or Contractor, we record which of the two routes KoppelHet takes, or whether the placement stays out of Employee Central.
  • If a contractor later becomes an employee, SAP wants a new employment for the same person with a new user ID. KoppelHet recognises the person by the Bullhorn candidate number and passes that change to HR instead of creating a second person.
  • A Placement in Bullhorn cannot be changed directly; a change goes through a change request that is approved first. KoppelHet therefore only reacts to the approved state of the placement and overwrites nothing in Employee Central afterwards, but reports a changed start date to HR.
  • Bullhorn records working time as hours per day. Employee Central works with hours per week in the job, so KoppelHet multiplies by the number of working days agreed per job and stops with a notice when the field is empty.
  • A placement in Bullhorn can be linked to an umbrella company. Such a person is not on your payroll and therefore does not become an employee in Employee Central; KoppelHet skips those placements.

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 its own SuccessFactors integration?

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

Do contingent workers have to be in Employee Central?

No, you choose that per employee type. Contingent workers must first be set up in Employee Central, though.

Does the end of a placement also go to Employee Central?

Not in the first version. HR gets a notice when a placement is set to terminated; automatic termination can be added later.

Technical details for IT

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

  • Bullhorn through the REST API after OAuth 2.0 and a REST login with BhRestToken. Event subscription on Placement (INSERTED and UPDATED), read with GET event/subscription. Placement fields status (default Placed; also Approved, Completed, Terminated), employeeType, employmentStartDate, dateBegin, positionCode, hoursPerDay and vendorClientCorporation; Candidate firstName, lastName, dateOfBirth, email and mobile. Changes through PlacementChangeRequest.
  • SAP SuccessFactors Employee Central through OData v2. Employee - PerPerson, EmpEmployment, EmpJob (jobCode, startDate, eventReason, company, businessUnit, managerId) and PerPersonal. Contingent worker - User, PerPersonal, EmpEmployment, PerPerson, WorkOrder, EmpJob and PerEmail. Move from contingent worker to employee with EmpEmployment on the same person ID and a different user ID.

Which fields are transferred

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

Field in BullhornField in SAP SuccessFactorsNotes
Candidate.idpersonIdExternalWith a prefix; recognises a later placement
Candidate.firstName en lastNamePerPersonal firstName en lastName
Candidate.dateOfBirthPerPerson.dateOfBirth
Candidate.email en mobilePerEmail en PerPhone (privé)
Placement.employmentStartDate (anders dateBegin)EmpEmployment.startDate en EmpJob.startDate
Placement.positionCodeEmpJob position of jobCodeThrough a table if the codes differ
Placement.employeeTypeMedewerker, contingent worker of nietsThrough a table per type
Placement.hoursPerDayUren in de jobConverted to hours per week

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.