SmartRecruiters logoFa

Recruitment to HR

SmartRecruiters to Factorial integration: ready to onboard becomes an employee with contract in Factorial

With an integration between SmartRecruiters and Factorial, a candidate who is ready to onboard in SmartRecruiters becomes an employee in Factorial with the first contract, including entity, location, team, start date, part-time percentage and salary. The recruiter sees in the onboarding status in SmartRecruiters whether that worked, and HR then invites the new colleague in Factorial itself.

What the integration does

Organisations that have Factorial as HR system and recruit in SmartRecruiters for many vacancies create every new colleague with contract again in Factorial. The recruiter does not know when HR is done.

  1. At the start we link each job address to an entity and location in Factorial, and each department to a team.
  2. The recruiter sets the onboarding status of the hired candidate to ready to onboard.
  3. KoppelHet creates employee and contract in one call and then puts the salary on the contract.
  4. KoppelHet sets the onboarding status in SmartRecruiters to successful, or to failed with the reason.
  5. HR checks and sends the invitation from Factorial.
SmartRecruiters → KoppelHet → FactorialSOURCESmartRecruitersTARGETFactorialFactorialKoppelHetmapping · logging · monitoringSmartRecruiters → KoppelHet → FactorialSOURCESmartRecruitersTARGETFactorialFactorialKoppelHetmapping · logging · monitoring
Out: Candidate with status per job · Offer with properties for start date, hours and salary · Employee with first contract in Factorial · Entity, location and team · Onboarding status back in SmartRecruiters

What to watch for with SmartRecruiters and Factorial

  • Factorial creates employee and first contract in one call. If Factorial rejects a field, there is therefore no employee without a contract. KoppelHet then sets the onboarding status in SmartRecruiters to failed with the reason, and after correction the same hire goes again.
  • The email address in Factorial is the login address, while SmartRecruiters has the personal address for a candidate. HR fills in the work address as an offer property; if it is missing at ready to onboard, the hire waits instead of the new colleague entering Factorial with a personal address.
  • Factorial wants part-time as a percentage in hundredths, so 80 percent is 8000. A SmartRecruiters offer has no standard field for hours. KoppelHet converts the hours from an offer property using the full-time week of the Factorial entity.
  • The location of a SmartRecruiters job is an address with city and country. Factorial expects an existing entity and location. KoppelHet records both per address, so a job in Antwerp does not fall under the Dutch entity.
  • An employee from the API only has access in Factorial after a separate invitation. KoppelHet sets the status in SmartRecruiters to successful as soon as employee and contract exist, and leaves the invitation to HR.
  • Factorial has the company_identifier field to identify an employee within the company. KoppelHet puts the SmartRecruiters candidate ID there and searches on it first, so a repeated webhook or a new attempt after an error does not create a second employee in Factorial.

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

Why does the integration not send an invitation?

That way HR looks at contract and salary first. Sending the invitation automatically can be added later as an extension.

Technical details for IT

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

  • SmartRecruiters through a webhook subscription (ID only; HMAC-SHA256 in smartrecruiters-signature; 202 within 5 seconds; up to ten retries) and the Customer API with OAuth 2.0 client credentials. Status back through PUT /candidates/{id}/jobs/{jobId}/onboardingStatus.
  • To Factorial through API version 2026-10-01 - POST /resources/employees/employees/create_with_contract (company_id, first_name, last_name, email, legal_entity_id, location_id, team_id, contract_starts_on, contract_effective_on, contracts_working_time_percentage_in_cents), then contracts/compensations. Invitation through employees/invite by HR.

Which fields are transferred

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

Field in SmartRecruitersField in FactorialNotes
firstName en lastNamefirst_name en last_name
Werkadres (offer property)emailLogin address in Factorial
phoneNumberphone_number
location (vacature)legal_entity_id en location_idThrough a table per address
department (vacature)team_id
Startdatum (offer property)contract_starts_on en contract_effective_on
Uren per week (offer property)contracts_working_time_percentage_in_cents
Salaris en valuta (offer properties)Compensation op het contract
Kandidaat-IDcompany_identifierPrevents a duplicate employee

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.