
HR to ITSM
BuddeeHR to ServiceNow integration: users with cost centre and manager, and requests per employment
With an integration between BuddeeHR and ServiceNow, every employee from Buddee is a user in ServiceNow, with company, department, cost centre and manager from their position, and KoppelHet orders a request from the service catalog for every new or ended employment. Per type of employment you choose which catalog item applies.
What the integration does
Organisations that use BuddeeHR for HR and ServiceNow for IT, facilities or HR services maintain employees twice. Approvals in ServiceNow go to a manager who has already left, and the cost of a new laptop lands on an old cost centre.
- KoppelHet reads employees, employments and positions from Buddee, including future ones, and compares them with the previous state.
- Companies, departments and cost centres go to ServiceNow first, then the users.
- For a new employment KoppelHet orders the catalog item that matches its type, with the employee as requested for.
- A new position with a later start date updates department, cost centre and manager on that date.
- An end date produces an offboarding request; after that date the user becomes inactive.
What to watch for with BuddeeHR and ServiceNow
- Besides the manager, a position in Buddee also has an indirect manager, and the employee has an HR manager. ServiceNow has one manager per user. KoppelHet puts the direct manager in the manager field and passes the indirect one as a variable in the request, so a flow with a second approval can use it.
- Buddee has six types of employment, including intern, freelancer, agency worker, director-major shareholder and volunteer. In ServiceNow you usually want a different catalog item for a director-shareholder or volunteer than for a salaried employee. KoppelHet chooses the item per type, or skips a type that gets no IT equipment.
- Cost centre and cost unit are attached to the position in Buddee, not to the employee. ServiceNow often uses the user's cost centre for approval and charging. KoppelHet takes the cost centre of the position valid today, so a request lands on the right budget.
- One Buddee environment can contain several companies, and the API filters employees by company_id. KoppelHet turns each company into a company in ServiceNow, so the assignment group or approval rule can differ per employer.
- With an include, Buddee can return the active or future employment with an employee. The filter active=1, on the other hand, leaves out archived employees. KoppelHet requests both separately, so a colleague who has yet to start already gets an onboarding request and an archived colleague becomes inactive.
- Buddee distinguishes a fixed ID per record from the employee number HR can change, and also holds a separate Exact employee number. KoppelHet uses the fixed Buddee ID as the coalesce key, so renumbering after a payroll system switch does not produce duplicate users in ServiceNow.
- The Buddee API works with the permissions of an ordinary user, and every record states which actions that user may perform. KoppelHet uses its own Buddee account with read rights on employees, positions and employments only, so pay and bank details stay outside the integration.
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
What happens on a transfer?
HR creates a new position in Buddee with a start date. On that date the user in ServiceNow gets the new department, cost centre and manager.
Can the same flow also create accounts?
That can be added later as an extension, for example to Entra ID or Google Workspace. We start with users and requests in ServiceNow.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- BuddeeHR through the REST API (api.buddee.nl) with JWT tokens that a dedicated Buddee user obtains through Basic Auth on /auth/token. GET /employees (id, number, exact_employee_number, company_id, first_name, composed_last_name, composed_last_name_prefix, work_email, work_phone, work_mobile, manager_id, indirect_manager_id, hr_manager_id, archived_at; filters active and company_id; include=active_or_future_employment), /positions (department_id, location_id, cost_center_id, cost_unit_id, manager_id, start_date, end_date) and /employments (type employee, intern, self-employed, agency_worker, dga or volunteer; start_date, end_date). 200 records per page; _permissions per record. No webhooks found.
- ServiceNow is written through the Import Set API (insertMultiple) with transform maps and coalesce on the Buddee ID; with run_after first core_company, cmn_department and cmn_cost_center, then sys_user.
- Requests through POST /api/sn_sc/servicecatalog/items/{sys_id}/order_now with variables (including indirect manager and first working day) and sysparm_requested_for. KoppelHet stores the REQ number per employment per event.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in BuddeeHR | Field in ServiceNow | Notes |
|---|---|---|
id (Buddee) | u_buddee_id (coalesce) | Fixed, even if the employee number changes |
number | employee_number | |
first_name, composed_last_name_prefix + composed_last_name | first_name, last_name | |
work_email | email | |
work_phone en work_mobile | phone en mobile_phone | |
company_id | company (core_company) | |
positions.department_id | department (cmn_department) | |
positions.cost_center_id | cost_center (cmn_cost_center) | |
positions.manager_id | manager (sys_user) | |
employments.type en start_date | Catalogusitem onboarding per soort | |
employments.end_date | Catalogusitem offboarding, daarna active = false |
Related
BuddeeHR → Active Directory
BuddeeHR to Active Directory integration: domain account from employment and position in Buddee
BuddeeHR → AllSolutions
Buddee to AllSolutions integration: employees, positions and schedules from BuddeeHR in AllSolutions
BuddeeHR → Arbodienst (SIVI)
BuddeeHR to occupational health service via SIVI: verified sickness registrations from Buddee to the health service
BuddeeHR → Microsoft Entra ID
BuddeeHR to Entra ID integration: Microsoft 365 account from the employment in Buddee