BambooHR logoOracle NetSuite logo

HR to ERP

BambooHR to NetSuite integration: BambooHR employees as employees per subsidiary, with termination reason

With an integration between BambooHR and Oracle NetSuite, every employee from BambooHR becomes an employee in NetSuite, under the subsidiary of their division, with department, location, supervisor and job title. KoppelHet translates division and department into subsidiary and department with a table, and fills in the mandatory termination reasons on departure.

What the integration does

Organisations that use BambooHR as their HR system and NetSuite OneWorld for several entities want employees in NetSuite for expenses, approvals and projects. Transfers between entities and termination reasons often remain manual work.

  1. BambooHR reports a change; KoppelHet reads job info and employment status with their dates.
  2. KoppelHet finds the employee in NetSuite by the stored internal ID, or during the initial load by work email and employee number.
  3. Division, department and location are translated into the subsidiary, department and location of that subsidiary.
  4. The employee is created or updated; a supervisor who does not exist yet goes first.
  5. On a termination KoppelHet fills date, category, reason and regretted, and revokes access.
BambooHR → KoppelHet → Oracle NetSuiteSOURCEBambooHRTARGETOracle NetSuiteKoppelHetmapping · logging · monitoringBambooHR → KoppelHet → Oracle NetSuiteSOURCEBambooHRTARGETOracle NetSuiteKoppelHetmapping · logging · monitoring
Out: Employee with name, work email and employee number · Subsidiary from the division · Department and location · Supervisor · Termination with category and reason

What to watch for with BambooHR and Oracle NetSuite

  • A division in BambooHR often has a different name from the legal name of the subsidiary in NetSuite. KoppelHet works with a lookup table, so you do not have to give both systems the same names.
  • A division in BambooHR can take effect in the future. KoppelHet reads job info with its date and sets the new subsidiary on the effective date, so a transfer entered ahead of time takes effect on the right day.
  • If NetSuite uses termination reason tracking, category, reason, details and regretted are mandatory. BambooHR records the type, the reason and regrettable on a termination. KoppelHet converts those three with a table into the NetSuite fields, so a termination does not get stuck on a mandatory field.
  • An employee assigned to the parent subsidiary can no longer be moved to another subsidiary in NetSuite. If such a person moves to another division in BambooHR, KoppelHet does not send a change NetSuite rejects, but reports it to finance with the proposal for a new employee.
  • In NetSuite the supervisor approves expenses when there is no separate approver. KoppelHet therefore creates the supervisor first and holds back an employee with an unknown supervisor until that person exists.
  • BambooHR has one list of departments for all divisions, while a department in NetSuite can only be used with the subsidiaries it is linked to. KoppelHet translates the combination of division and department into the department of that subsidiary, so an employee of the British division does not land on a Dutch department.

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

Does salary or the payroll journal go to NetSuite?

No. This integration keeps employees current. A journal from payroll 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.

  • BambooHR through event-based webhooks (employee.created, employee.updated with monitor fields, employee.deleted) and changed table data for jobInfo (date, division, department, location, jobTitle) and employmentStatus (date, Terminated). Fields terminationTypeId (Death, Resignation (Voluntary), Termination (Involuntary)), terminationStatusId (reason) and terminationRegrettable (Regrettable, Non-Regrettable). supervisorEmail and terminationDate are read-only.
  • NetSuite through SuiteTalk REST web services (employee record) with OAuth 2.0 and an integration role. Subsidiary on the parent cannot be changed; department per subsidiary; with Termination Reason Tracking category, reason, details and regretted are mandatory; inactivating does not revoke roles and access by itself.

Which fields are transferred

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

Field in BambooHRField in Oracle NetSuiteNotes
workEmailEmail
employeeNumberEmployee ID
jobInfo.divisionSubsidiaryLookup table instead of name match
jobInfo.departmentDepartmentPer subsidiary
jobInfo.locationLocation
supervisorEmailSupervisor
jobInfo.jobTitleJob Title
terminationTypeId, terminationStatusId, terminationRegrettableTermination Category, Reason, Details, Regretted

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.