
Training and certificates
Deel to StudyTube integration: own employees, EOR and contractors in the academy, with the right licence and language
With an integration between Deel and StudyTube, everyone who starts in Deel automatically gets a StudyTube account in their department's team, with a licence that fits their type of contract and the language of their country. The date of the most recent StudyTube certificate goes back to a custom field in Deel, and after the last working day of the last contract the account is removed.
What the integration does
International employers that hire people through Deel, as their own employee, through employer of record or as contractor, and use StudyTube as academy, add everyone to StudyTube by hand. Who gets which licence and in which language is arranged per person, and leavers remain until someone cleans up.
- Deel reports a new or changed contract through a signed webhook.
- KoppelHet sets up the departments from Deel as teams in StudyTube, with the parent department as parent.
- The person gets an account in their department team, with licence and language based on contract type and country; the invitation only goes out on the start date.
- After a new certificate KoppelHet puts the date in the agreed custom field in Deel.
- After the last working day of the last running contract KoppelHet removes the account after the agreed period.
Back: Date and name of the latest certificate in a custom field in Deel
What to watch for with Deel and StudyTube
- Deel gives a hiring type per contract, such as own employee, employer of record or contractor. Per hiring type we agree whether StudyTube assigns a content licence; a contractor can then still follow the mandatory code of conduct without costing a full licence.
- For a department in Deel the parent department is given as a name, not an ID. KoppelHet builds the team tree in StudyTube on those names and keeps its own fixed key per department, so a renamed department stays the same team in StudyTube.
- Someone can have several contracts in Deel, for example an old contractor contract and a new EOR contract. KoppelHet uses the worker ID as key and only removes the StudyTube account once the last running contract has ended, so a switch of contract type does not cost training history.
- Every contract in Deel has a country. KoppelHet passes the user's language to StudyTube based on it, so a colleague in Spain opens the academy in Spanish and a colleague in the Netherlands in Dutch.
- Deel has the person status NOT_STARTED for people who have signed but not started yet. KoppelHet then prepares the account in StudyTube already, but only sends the invitation on the start date.
- Deel has no public API for learning, but it does have custom fields per person that can be filled through the API. KoppelHet puts the name and date of the latest certificate in such a field, so HR sees it in Deel without opening StudyTube.
- Deel switches a webhook off after ten failed attempts. KoppelHet therefore compares the people in Deel with the users in StudyTube every day, so a missed notification is repaired within a day.
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
Do contractors also get a StudyTube account?
If you want that. Per hiring type you choose: no account, an account without a licence, or a full licence.
Why is not every certificate in Deel?
Deel has no training file that can be filled through the API. A custom field with the latest certificate is the smallest working solution; the full overview stays in StudyTube.
Which permissions does the integration need in Deel?
Read access to people and write access to custom fields. The integration does not request pay or bank details.
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 and the filters hiring_types and hiring_statuses; per person worker_id, preferred_first_name, department (name, parent), person_status (ACTIVE, NOT_STARTED, INACTIVE) and employments with work_email, job_title, country, hiring_type and termination_last_day. Webhooks with x-deel-signature (HMAC-SHA256). Back through PUT /rest/people/{worker_id}/custom_fields with the people:write scope; an existing value is overwritten.
- StudyTube Academy API v2 with OAuth 2.0 client credentials and the write scope. POST /api/v2/users on uid with language, assign_licence and send_invite, POST /api/v2/users/{id}/reinvite, academy-teams/bulk/upsert up to 500 teams, and GET /api/v2/certificates with name and completion_date.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Deel | Field in StudyTube | Notes |
|---|---|---|
worker_id | uid en employee_number | Stays the same across contracts |
preferred_first_name of first_name, last_name | first_name, last_name | |
employments[].work_email | email | |
employments[].job_title | company_role | |
department (name, parent) | Team (external_id, name, parent) | |
employments[].hiring_type | assign_licence | Table per contract type |
employments[].country | language | |
employments[].termination_last_day | Verwijderen na de laatste werkdag | |
Certificaat (name, completion_date) terug | Eigen veld via PUT /people/{worker_id}/custom_fields |
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