HaHR to ITSM
Deel to HaloITSM integration: users per country from Deel and tickets for start and departure
With an integration between Deel and HaloITSM, everyone who works for the organisation in Deel becomes a user in Halo, at the site of their country and with their worker type in a custom field, and KoppelHet creates a ticket of the right ticket type at every start or last working day. Whoever leaves becomes inactive in Halo, so their tickets are kept.
What the integration does
Organisations that use Deel for workers in many countries and HaloITSM for the service desk often only create users in Halo with the first ticket. Halo then does not know which country or time zone someone works in, and a contractor who stops stays in as an active user.
- Deel sends a signed webhook; KoppelHet acknowledges it and fetches the worker with the People API.
- KoppelHet looks up the user in Halo by their stored Halo ID, also among inactive users.
- The user is created or updated at the site of their country.
- At the onboarding status a ticket of the onboarding type follows.
- A last working day produces an offboarding ticket; after that the user becomes inactive.
What to watch for with Deel and HaloITSM
- Halo schedules tickets in a site's time zone, and Deel works with workers in countries where the organisation often has no office. KoppelHet creates a site per country in Halo and attaches the worker to it, so a target date for an EOR worker in Brazil falls in their own time zone.
- Deel returns the hiring type per worker. Own employees follow the current Deel guide as direct employees under the own entity; KoppelHet puts the type in a custom field in Halo, so the service desk can treat a contractor differently from an own employee.
- Deel has an onboarding status before a worker is active. KoppelHet creates the user and the onboarding ticket at that status, so IT can ship the laptop to a country where delivery takes longer.
- A department in Deel can sit under another department, while Halo has one department field per user. KoppelHet writes the department with the parent name in front, so two teams with the same name in different parts of the business stay apart.
- Deel disables a webhook after ten failed deliveries, and Halo responds with a 429 above seven hundred calls per five minutes. KoppelHet acknowledges every Deel notification at once and queues the processing, so a busy period in Halo does not cause the Deel webhook to drop out.
- A contractor who later continues through EOR or as an own employee gets a new contract in Deel. KoppelHet recognises the worker by their worker ID and updates the same Halo user, so no offboarding and second user are created.
This integration is also part of joiner, mover, leaver.
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
Does Deel have a HaloITSM app?
We found none in the Deel App Store and no Deel integration at Halo either. KoppelHet uses the APIs of both sides.
Do we need a site in Halo for every country?
Not necessarily. Countries with the same time zone and IT team can share one site; we set this at the start.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Deel through GET /people with fields (worker_id, preferred_first_name, last_name, country, job_title, department with parent, employments with work_email and termination_last_day, hiring_type, hiring_status) and the filters hiring_types and hiring_statuses. Webhooks with x-deel-signature (HMAC-SHA256), 200 within 30 seconds, ten attempts up to sixteen hours and then disabled; recognise duplicate delivery by event_id.
- Halo through the REST API with an API application (client credentials). GET /Users with search and includeinactive; POST /Users with id to update and without id to create, with site_id, department, title, customfields and inactive. Sites through POST /Site. POST /Tickets with tickettype_id, user_id, site_id, summary and details. We do not use DELETE /Users/{id}. Rate limit 700 calls per 300 seconds per tenant.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Deel | Field in HaloITSM | Notes |
|---|---|---|
worker_id | Eigen veld (customfields) | |
preferred_first_name en last_name | Naam van de gebruiker | |
employments[].work_email | E-mailadres | |
country | site_id | One site per country |
department (met parent) | department | |
job_title | title | |
hiring_type | Eigen veld soort werker | |
termination_last_day | Offboardingticket en daarna inactive |
Related
Ashby → Deel
Ashby to Deel integration: hires at the own entity as direct employee in Deel
Bullhorn → Deel
Bullhorn to Deel integration: first placement as a direct employee with a contract in Deel
Carerix → Deel
Carerix to Deel integration: successful placement as a person or contract in Deel
Deel → 4PS Construct
Deel to 4PS Construct integration: own employees of the construction entity in 4PS, with department and cost centre as dimensions