Personio logoVisma.net ERP logo

HR to ERP

Personio to Visma.net ERP integration: employees ready for time cards and expense claims in Visma.net

With an integration between Personio and Visma.net ERP, every new employee from Personio appears as an employee in Visma.net, with department, branch and the right employee class, so time cards and expense claims work from the first working day. After the last working day in Personio the integration sets the employee in Visma.net to inactive.

What the integration does

Organisations with Personio for HR and Visma.net ERP for finance, projects and expenses create new colleagues in Visma.net by hand, sometimes a week after the start. Until then they cannot log hours, and departed colleagues stay active in the approval route.

  1. HR records a new employee in Personio, with department, legal entity and start date.
  2. KoppelHet creates the employee in Visma.net, on hold until the start date, with department, branch, employee class and calendar.
  3. On the start date the integration sets the employee to active and into the manager's work group, so approvals reach the right person.
  4. A new department or manager in Personio goes to Visma.net on its effective date.
  5. After the last working day the employee becomes inactive in Visma.net. Open expense claims can still be processed.
Personio → KoppelHet → Visma.net ERPSOURCEPersonioTARGETVisma.net ERPKoppelHetmapping · logging · monitoringPersonio → KoppelHet → Visma.net ERPSOURCEPersonioTARGETVisma.net ERPKoppelHetmapping · logging · monitoring
Out: Employee with name and work email · Department · Branch based on the legal entity · Employee class and calendar · Status: on hold, active or inactive

What to watch for with Personio and Visma.net ERP

  • An employee who has not started yet has the status onboarding in Personio. Visma.net has the status on hold for an employee who is not active yet. KoppelHet therefore creates the employee in advance and only sets them to active on the start date.
  • Visma.net requires a department, branch, employee class and calendar for a new employee. Personio has no employee class or calendar. KoppelHet derives the class from the employment type, internal or external, and the calendar from the office in Personio.
  • In Personio an employment can be split over several cost centres, each with a percentage. An employee in Visma.net belongs to one department with its own expense account. KoppelHet picks the department from Personio and leaves the split over cost centres in Personio and payroll.
  • Personio divides an organisation into departments and teams. Visma.net only has departments, and a department must exist before an employee can be placed in it. We leave teams out; KoppelHet reports a new Personio department to finance, who creates it in Visma.net with the right expense account.
  • Every legal entity in Personio becomes a fixed branch in Visma.net. When an employee changes entity, the employee moves to the other branch in Visma.net and earlier expense claims stay with the old one.
  • Visma.net routes approvals for time cards and expense claims through work groups in the company tree. The manager from Personio owns a work group, and KoppelHet places the employee in that group, so approval follows a change of manager.
  • Personio reports a termination immediately with its own event, including the last working day. Visma.net has no end date for an employee in its API. KoppelHet keeps the date and sets the employee to inactive the next 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, 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 the employee also get a login in Visma.net?

Not through the integration. An administrator links a user to the employee in Visma.net; that needs the email address the integration already fills in.

Do salary or hourly rate go to Visma.net?

No. Visma.net can hold cost rates per employee, but finance manages those. Only the data needed for time, expenses and approval leaves Personio.

What if an employee returns?

Then the integration sets the same employee in Visma.net back to active, with the new department and branch. The old time cards stay with that employee.

Technical details for IT

For those who want to know how it works under the hood: APIs, fields and sources used.

  • Personio through the v2 API for persons and employments (status, type, org_units, cost_centers with weight, legal_entity, office, supervisor, termination with last_working_day), filtered on updated_at. Webhooks for employment.created, employment.updated and employment.terminated, signed with HMAC-SHA256.
  • Visma.net ERP through POST /v1/employee (required employeeCd, department, employeeClass, branch, calendar and contact with lastName and email) and PUT /v1/employee/{employeeCd} with ETag and If-Match. Status Active, Hold or Inactive; work groups through companyTreeInfo (workGroupID, owner). Departments through GET /v1/department.
  • Access to Visma.net through Visma Connect with OAuth 2.0 client credentials and a tenant_id, with consent from an administrator of the environment.

Which fields are transferred

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

Field in PersonioField in Visma.net ERPNotes
person id of eigen personeelsnummeremployeeCdFixed key; follows the employee ID structure in Visma.net
first_name, last_namecontact.firstName, contact.lastName
emailcontact.emailRequired in Visma.net
org_units (type department)departmentThrough a table to the department code in Visma.net
legal_entitybranch
type (INTERNAL of EXTERNAL)employeeClass
officecalendarWorking hours and time zone of the office
status, employment_start_date en termination.last_working_daystatus (Hold, Active, Inactive)
supervisorcompanyTreeInfo (workGroupID)The manager's work group

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.