
Training and certificates
BambooHR to StudyTube integration: divisions and departments as teams, certificates and external training back in BambooHR
With an integration between BambooHR and StudyTube, every employee from BambooHR automatically gets a StudyTube account in the team of their division and department, with a licence if their employment status calls for it. Earned certificates and attended external training from StudyTube come back as training records in BambooHR, with the cost for external training.
What the integration does
Employers with BambooHR as HR system and StudyTube as academy load new colleagues into StudyTube with an export and adjust teams by hand. Certificates and the cost of external courses are only in StudyTube, while HR keeps the training overview per employee in BambooHR.
- BambooHR reports a new employee or a change in one of the monitored fields.
- KoppelHet sets up divisions and departments as teams in StudyTube, with the division on top.
- The employee gets an account in their department team, with a licence if their employment status is designated for it; the supervisor becomes team manager.
- A transfer with a future date only goes to StudyTube on that date.
- Every day new certificates and attended external training arrive as training records in BambooHR.
Back: Certificates as training records with date · Attended external training with cost excluding VAT
What to watch for with BambooHR and StudyTube
- Besides the department, BambooHR has a division, both with history in the Job Information table. KoppelHet builds two layers of teams in StudyTube from that, division above department, and sends the divisions first, because StudyTube only accepts a child team under an existing team.
- A row in Job Information has its own date, which can also lie in the future. KoppelHet only moves the employee to their new team in StudyTube on that date, so until then they keep seeing the training of their current department.
- In BambooHR every employee has an employment status, such as Full-Time, Part-Time or Contractor. Per status we agree whether StudyTube assigns a content licence; that way a contractor still gets the mandatory safety training, but does not cost a licence for the whole library.
- For each request for external training, StudyTube keeps the price, the total excluding VAT and whether the person attended. KoppelHet puts an attended training with that amount into BambooHR as a training record with cost, and then marks the request as synced in StudyTube, so it does not come in twice.
- A training record in BambooHR always belongs to a training type. KoppelHet creates a type once for each StudyTube course with a certificate; HR can then make that type mandatory in BambooHR or let it expire after a number of months.
- An end date in the past makes StudyTube remove a user immediately. KoppelHet therefore does not pass the terminationDate from BambooHR as contract end, but removes the account itself after the period you choose, with StudyTube's backup switched on.
- BambooHR only sends webhooks for the fields you choose to monitor. KoppelHet only monitors name, work email, job title, division, department, supervisor and status, so a pay change does not trigger an unnecessary update in StudyTube.
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 not the certifications table in BambooHR?
That is possible too. A training record has the advantage that BambooHR tracks mandatory and recurring training per type. We choose it with HR at the start.
Does pay data go to StudyTube?
No. StudyTube receives name, work email, job title, employee number and team. The integration's BambooHR user cannot see pay.
Can training costs also go to the accounts later?
That can be added later as an extension. In this integration the cost is only on the training record in BambooHR.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- BambooHR through event-based webhooks with monitor fields, signed with HMAC SHA-256, and the changed-employees endpoint as a safety net. Job Information (date, division, department, jobTitle, reportsTo) and employmentStatus as dated tables. Back through the Training API - POST /api/v1/training/type and POST /api/v1/training/record/employee/{employeeId} with type and completed required and cost as currency and amount.
- StudyTube Academy API v2 with OAuth 2.0 client credentials and the write scope. POST /api/v2/users on uid with employee_number, company_role and assign_licence; academy-teams/bulk/upsert up to 500 teams; DELETE /api/v2/users/{id} with skip_backup off. Back through GET /api/v2/certificates (completion_date, synced, created_at) and GET /api/v2/user-training-requests (price, booking_price_total_without_vat, attended, is_synced) with POST /user-training-requests/set-synced.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in BambooHR | Field in StudyTube | Notes |
|---|---|---|
id (BambooHR) | uid | Fixed key, even if the employee number changes |
employeeNumber | employee_number | |
preferredName of firstName, lastName | first_name, last_name | |
workEmail | email | |
jobTitle | company_role | |
division | Bovenliggend team (external_id) | |
department | Team onder de divisie | |
employmentStatus | assign_licence ja of nee | Table per status, for example no licence for Contractor |
Certificaat (name, completion_date) terug | Training record (type, completed) | |
Trainingsaanvraag (booking_price_total_without_vat, attended) terug | Training record cost (currency, amount) |
Related
Ashby → BambooHR
Ashby to BambooHR integration: hire, changed start date and employment status in BambooHR
BambooHR → 4PS Construct
BambooHR to 4PS Construct integration: employees from BambooHR in the 4PS company of their location
BambooHR → Active Directory
BambooHR to Active Directory integration: accounts in your own domain from HR
BambooHR → ADP iHCM
BambooHR to ADP iHCM integration: salary, bonuses and commissions to Dutch payroll