Deel logoHubSpot logo

Accounts in applications

Deel to HubSpot integration: HubSpot users for commercial teams in every country, with the contract's time zone

With an integration between Deel and HubSpot, everyone who starts through Deel in a sales, marketing or service department automatically gets a HubSpot user, with permission set, team and the time zone of their contract, whether they are an own employee, EOR or contractor. After the last working day of their last contract in Deel the HubSpot user is removed, and time off from Deel shows as out-of-office in HubSpot.

What the integration does

Employers that hire commercial teams in several countries through Deel and work with HubSpot set up every HubSpot user by hand. Time zones are often wrong, so meeting pages show the wrong times, and a contractor whose contract ends keeps their seat.

  1. Deel reports a new or changed contract through a signed webhook.
  2. If the person is in a commercial department, KoppelHet creates a HubSpot user on the start date with permission set and team.
  3. The time zone from the contract goes into the HubSpot profile.
  4. Approved time off from Deel becomes out-of-office in HubSpot.
  5. After the last working day of the last contract, and after a handover list for the manager, KoppelHet removes the user.
Deel → KoppelHet → HubSpotSOURCEDeelTARGETHubSpotKoppelHetmapping · logging · monitoringDeel → KoppelHet → HubSpotSOURCEDeelTARGETHubSpotKoppelHetmapping · logging · monitoring
Out: HubSpot user with name and work email · Permission set per job title and contract type · Teams from the departments in Deel · Time zone from the contract · Out-of-office from approved time off

What to watch for with Deel and HubSpot

  • Deel provides a time zone per contract. HubSpot uses the user's time zone for meeting pages and needs it before working hours can be set. KoppelHet takes the time zone from the contract, so a salesperson in Singapore offers the right times from day one.
  • In Deel own employees, people through employer of record and contractors work side by side, each with their own hiring type. Per hiring type you choose which permission set someone gets; an external agency can then get marketing rights without access to all deals.
  • A person can have several contracts in Deel, for example an ended contractor contract and a new EOR contract. KoppelHet uses the worker ID as key and only removes the HubSpot user after the last working day of the last running contract, so a switch does not make customers and deals disappear.
  • For a department in Deel the parent department is given as a name. KoppelHet rebuilds the team tree in HubSpot with it and keeps a fixed key per department, so a renamed department stays the same HubSpot team.
  • Deel reports time off with start, end, half days and status. KoppelHet only puts approved time off into HubSpot as out-of-office; a withdrawn request removes the out-of-office again.
  • Deel has the status NOT_STARTED for someone who has signed but not started yet. KoppelHet waits with the HubSpot user until the start date, so no seat is paid for a contract that may still be withdrawn.

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

Do contractors get a HubSpot user?

If you want that. Per hiring type and department you choose whether someone gets a user and with which permission set.

Does HubSpot see the type of time off?

No. Only the period goes to HubSpot. Reason and balance stay in Deel.

Technical details for IT

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

  • Deel REST API (version 2026-01-01) with an API token or OAuth2. GET /rest/people with fields; per person worker_id, preferred_first_name, department (name, parent), person_status and employments with work_email, job_title, timezone, hiring_type and termination_last_day. Time off through the time-off webhooks (created, reviewed, updated, deleted). Webhooks signed with x-deel-signature (HMAC-SHA256).
  • To HubSpot through the user provisioning API (settings/v3/users, lookup with idProperty=EMAIL; create, update with permission set and team, remove), the Teams API and the Users objects (hs_standard_time_zone, hs_out_of_office_hours, hs_job_title). Create permission sets in HubSpot first; paid seats require the billing-write scope.

Which fields are transferred

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

Field in DeelField in HubSpotNotes
worker_idKoppeltabel naar de HubSpot-gebruikerStays the same across contracts
preferred_first_name of first_name, last_namefirstName, lastName
employments[].work_emailemail
employments[].job_title en hiring_typeroleIdThrough a table; contractors possibly with a narrower permission set
department (name, parent)primaryTeamId en parentTeamId
employments[].timezonehs_standard_time_zone
time off (start_date, end_date, status)hs_out_of_office_hours
employments[].termination_last_dayVerwijderen na de laatste werkdag

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.