
HR to ERP
Personio to NetSuite integration: employees on the right subsidiary, with department and supervisor
With an integration between Personio and Oracle NetSuite, every employee from Personio becomes an employee in NetSuite automatically, on the subsidiary of their company in Personio, with department, location and supervisor, so expenses and purchases reach the right approver straight away. On departure KoppelHet sets the release date and makes the employee inactive, because NetSuite cannot delete an employee with transactions.
What the integration does
Groups that book their entities in Oracle NetSuite and manage employees in Personio often run expense claims through NetSuite. New colleagues cannot claim anything until finance has created them, and claims of departed managers get stuck with an approver who is no longer there.
- HR records the new employee in Personio, with company, office, department, cost centres and supervisor.
- Personio reports the change; KoppelHet fetches the released attributes.
- KoppelHet looks up the subsidiary for the company, the department for the main cost centre and the supervisor for the manager, and checks that the department applies to that subsidiary.
- The employee is in NetSuite, with login access only from the start date if the employee submits expenses themselves.
- On departure the employee gets the release date and reason, loses access and becomes inactive.
What to watch for with Personio and Oracle NetSuite
- In NetSuite OneWorld every employee must have a subsidiary. KoppelHet derives it from the company in Personio. If an employee is on the parent subsidiary, NetSuite cannot change it any more; a move to another country then becomes a new employee, with the old one set to inactive.
- Personio can split an employee over several cost centres with percentages. An employee in NetSuite has one department. KoppelHet picks the cost centre with the highest percentage and reports an even split to finance instead of choosing itself.
- In NetSuite a department can only be used with a subsidiary it is linked to. If the cost centre from Personio is not on the right subsidiary, KoppelHet creates the employee without that department and puts it on a list for finance.
- Without a separate expense approver, the supervisor approves expenses in NetSuite. KoppelHet fills the supervisor from Personio and leaves the expense approver and limits to finance. A new manager is created first, so the reference is right.
- Personio has a last working day and a termination date with type and reason. If finance uses Termination Reason Tracking in NetSuite, category and reason are mandatory; KoppelHet translates the Personio reasons with a table.
- Only the Administrator role may reactivate a former employee in NetSuite. If a former employee returns in Personio, KoppelHet does not create a second employee, but puts the rehire on a list for the NetSuite administrator.
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
Does KoppelHet also create departments in NetSuite?
No. Departments belong to the ledger and finance manages them. If one is missing, it goes on a list for finance.
Does every employee get a NetSuite login?
Only those who submit or approve expenses themselves. Which role goes with that is agreed up front; by default KoppelHet assigns no admin roles.
Is pay data sent to NetSuite?
No. This integration only transfers the employee with organisation and approver. The payroll journal is a separate payroll to finance integration.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Personio is read through webhooks and the Personio API, with attributes such as subcompany, office, cost_centers (with percentage), supervisor, position, hire_date, last_working_day, termination_date, termination_type and termination_reason, as far as released under Readable employee attributes.
- NetSuite is written through SuiteTalk REST web services (employee record) with OAuth 2.0 and a dedicated integration role without Administrator rights. Departments and subsidiaries are read; inactivating uses Inactive and clearing Give Access, because inactivating alone does not revoke the login.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Personio | Field in Oracle NetSuite | Notes |
|---|---|---|
Personio-id of personeelsnummer | External ID | Fixed key between both systems |
first_name, last_name | First Name, Last Name | |
email | Email | |
position | Job Title | |
subcompany | Subsidiary | Through a table from company to subsidiary |
cost_centers (hoogste percentage) | Department | Only departments linked to that subsidiary |
office | Location | |
supervisor | Supervisor | Looked up through the supervisor's employee record |
hire_date | Hire Date | |
last_working_day of termination_date | Termination/Release Date en Inactive | |
termination_type en termination_reason | Termination category en reason | If finance uses Termination Reason Tracking |
- Personio – Webhooks
- Personio Personnel Data API (OpenAPI)
- NetSuite – Adding an Employee
- NetSuite – Assigning a Subsidiary to an Employee
- NetSuite – Creating Departments
- NetSuite – Supervisors, Approvers, and Approval Limits
- NetSuite – Employee Termination
- NetSuite – Inactivating Employee Records
- NetSuite – Rehiring a Terminated Employee
- NetSuite REST web services
Related
Ashby → Personio
Ashby to Personio integration: hires with hours and entity as new employees in Personio
Bullhorn → Personio
Bullhorn to Personio integration: placements as a person with employment in Personio
Carerix → Personio
Carerix to Personio integration: successful placement as a new employee in Personio
Greenhouse → Personio
Greenhouse to Personio integration: hired candidates as employees in Personio