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.
- At the start we link each job address to an entity and location in Factorial, and each department to a team.
- The recruiter sets the onboarding status of the hired candidate to ready to onboard.
- KoppelHet creates employee and contract in one call and then puts the salary on the contract.
- KoppelHet sets the onboarding status in SmartRecruiters to successful, or to failed with the reason.
- HR checks and sends the invitation from Factorial.
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 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.
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 SmartRecruiters | Field in Factorial | Notes |
|---|---|---|
firstName en lastName | first_name en last_name | |
Werkadres (offer property) | email | Login address in Factorial |
phoneNumber | phone_number | |
location (vacature) | legal_entity_id en location_id | Through 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-ID | company_identifier | Prevents a duplicate employee |
Related
SmartRecruiters → ADP Workforce Now
SmartRecruiters to ADP Workforce Now integration: ready to onboard becomes a hire in ADP
SmartRecruiters → AFAS Profit
SmartRecruiters to AFAS integration: hired candidate starts onboarding, status back to SmartRecruiters
SmartRecruiters → BambooHR
SmartRecruiters to BambooHR integration: hire with Dutch fields and feedback
SmartRecruiters → Dayforce
SmartRecruiters to Dayforce integration: validate first, then create the employee