Bullhorn logoAFAS Profit logo

Recruitment to HR

Bullhorn to AFAS integration: a consultant's first placement starts onboarding

With an integration between Bullhorn and AFAS, a new Placement in Bullhorn starts onboarding in AFAS Profit, with candidate, employment start date and salary already filled in. Only placements of people who join the agency's payroll go to AFAS; freelancers and later assignments of an existing employee do not create a new employee.

What the integration does

Organisations that place consultants in Bullhorn and keep their own staff in AFAS retype the consultant into AFAS at every first placement. At a second or third assignment HR has to work out whether the person is already an employee, and freelancers do not belong there at all.

  1. The recruiter creates a Placement in Bullhorn for the candidate and the assignment.
  2. KoppelHet reads the placement from the event queue and looks at the employee type.
  3. If the candidate is not yet an employee in AFAS, onboarding starts with the data from Bullhorn.
  4. If the candidate is already known in AFAS, HR gets a notification instead of a second employee.
  5. HR completes onboarding with BSN, payroll tax credit and grading.
Bullhorn → KoppelHet → AFAS ProfitSOURCEBullhornTARGETAFAS ProfitKoppelHetmapping · logging · monitoringBullhorn → KoppelHet → AFAS ProfitSOURCEBullhornTARGETAFAS ProfitKoppelHetmapping · logging · monitoring
Out: Placement with start and end date · Candidate with name and contact details · Employee type and salary with unit · Onboarding in AFAS Profit (new or rehire) · Cost centre of the assignment

What to watch for with Bullhorn and AFAS Profit

  • In Bullhorn someone is not hired once. Every assignment is a new Placement. KoppelHet only creates an employee in AFAS at a candidate's first placement; later placements of the same person do not start a new onboarding.
  • Bullhorn records the employee type per placement, for example Employee or Contractor. Only the types that join the agency's payroll go to AFAS; freelancer placements stay outside the integration.
  • Besides the assignment start date, a Placement has a separate field for the start of paid employment, intended for payroll integrations. KoppelHet uses that field as the hire date, so a consultant who first follows a training starts in AFAS on the right day.
  • The salary on a Placement is either an annual or an hourly amount, and a separate field says which. KoppelHet converts it to the way AFAS records salary, and stops with a notification if the unit is missing.
  • AFAS starts onboarding with an onboarding profile that is mandatory and fills in default values for fields the integration does not send. KoppelHet picks the profile based on the Bullhorn employee type, so a salaried consultant gets a different profile than internal staff.
  • Candidate and job order of a Placement cannot be changed after creation. If a placement was attached to the wrong candidate, the recruiter has to create a new one; KoppelHet reports this to HR so the onboarding in AFAS is rejected.
  • If a former employee returns through Bullhorn, the existing AFAS employee number is passed along and it becomes a rehire. The history then stays with one person in AFAS.

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 AFAS?

Bullhorn does not provide one itself. KoppelHet builds and manages the integration on the APIs of both systems.

Do our temporary workers go to AFAS too?

Only if you run their payroll in AFAS. We agree together at the start which employee types are included.

What happens when a placement ends?

In the first version nothing; the employment continues in AFAS until HR ends it. Passing on the end date can be added later as an extension.

What rights does KoppelHet need in Bullhorn?

An API user that may read placements and candidates, with OAuth credentials your Bullhorn administrator arranges. Writing in Bullhorn is not needed.

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 after OAuth 2.0 and a REST login that returns a BhRestToken and its own base URL. A subscription (PUT /event/subscription, type entity, names Placement, eventTypes INSERTED and UPDATED) fills a queue that KoppelHet empties with GET /event/subscription and maxEvents; requestId allows events to be fetched again. Then GET entity/Placement and entity/Candidate with the fields needed.
  • AFAS is written through the HrOnboarding UpdateConnector, which starts the Onboarding workflow and also supports rehire. The onboarding profile is mandatory; missing fields get the profile's default value.

Which fields are transferred

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

Field in BullhornField in AFAS ProfitNotes
Candidate.firstNameVoornaam
Candidate.lastName en middleNameVoorvoegsel en achternaamnamePrefix in Bullhorn is a title such as Dr., not a Dutch name prefix
Candidate.dateOfBirthGeboortedatum
Candidate.email en phonePrivé e-mail en telefoon
Placement.employmentStartDateDatum in dienstFalls back to dateBegin when the field is empty
Placement.salary en salaryUnitSalarisAnnual or hourly amount converted to the AFAS setup
Placement.employeeTypeOnboardingprofielAlso decides whether the placement is passed on
Placement.costCenterKostenplaatsThrough a lookup table

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.