SAP SuccessFactors logoVisma.net ERP logo

HR to ERP

SAP SuccessFactors to Visma.net ERP integration: employees from Employee Central in Visma.net for hours and expenses

With an integration between SAP SuccessFactors and Visma.net ERP, every employee of an Employee Central entity that books in Visma.net automatically becomes an employee in Visma.net, with department, branch, employee class and calendar. Changes with a later effective date go through on that day, and a leaver becomes inactive after their last working day instead of being deleted.

What the integration does

Organisations that manage the group in SAP SuccessFactors and run finance, project hours and expenses in Visma.net ERP create every employee there by hand. Anyone changing department keeps claiming expenses on the old department for weeks, and a leaver stays active until finance notices.

  1. HR saves a hire or change in Employee Central for an entity that books in Visma.net.
  2. KoppelHet fetches the changed job and person data, including records with a later effective date.
  3. A new hire becomes an employee in Visma.net, on status on hold until their start date.
  4. A change goes through on the effective date; KoppelHet reads the employee just before and only sends what differs.
  5. After the last working day KoppelHet sets the employee to inactive.
SAP SuccessFactors → KoppelHet → Visma.net ERPSOURCESAP SuccessFactorsTARGETVisma.net ERPKoppelHetmapping · logging · monitoringSAP SuccessFactors → KoppelHet → Visma.net ERPSOURCESAP SuccessFactorsTARGETVisma.net ERPKoppelHetmapping · logging · monitoring
Out: Employee with number, name and work email · Department, branch, employee class and calendar · Status active, on hold or inactive

What to watch for with SAP SuccessFactors and Visma.net ERP

  • Visma.net refuses a new employee without department, employee class, branch, calendar and contact details with last name and email. Employee Central has its own employee class and work schedule in the job information. KoppelHet translates them to the class and calendar in Visma.net with a table finance sets up.
  • A new hire in Employee Central often has no business email address until IT creates the account. Visma.net requires the email address. KoppelHet waits to create the employee until the business address is in SuccessFactors, and reports a hire that still has no address just before the start date.
  • In Visma.net an employee has no effective date or history. Employee Central keeps every job change with a start date. KoppelHet also requests the records with a later effective date and applies them in Visma.net on the day they take effect, so expenses up to that day stay on the old department.
  • Branches are read-only in the Visma.net API, while departments can be created, with an expense account and subaccount. KoppelHet maps every Employee Central company to an existing branch, and only creates a missing department if finance has set up the accounts for it.
  • Visma.net protects an employee with a version tag and refuses a change on an old version. KoppelHet reads the employee again just before the change and sends the tag along, so an adjustment finance made in Visma.net itself is not overwritten with old Employee Central data.
  • On a rehire an employee gets a new employment under the same person in Employee Central. KoppelHet uses the person ID as the employee number in Visma.net, so the former employee becomes active again with their earlier expenses, instead of a second employee.
  • On the initial load all existing employees go to Visma.net in one go. Visma.net can queue a request and handle it later. KoppelHet uses that for the initial load and follows the status per request, so the daily round does not wait for a large batch.

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

Do salaries go to Visma.net?

No. Visma.net only gets what is needed for hours, projects and expenses. Finance manages cost rates itself.

Who approves expenses?

Visma.net handles that with work groups. The Service API has no manager in the employee model, so it stays in Visma.net. That 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.

  • SAP SuccessFactors Employee Central through the OData API (v2) with OAuth 2.0 and a SAML bearer assertion. EmpEmployment (personIdExternal, startDate), EmpJob (company, department, employeeClass, workscheduleCode, startDate) with fromDate and toDate for future records, PerPersonal, PerEmail (emailType, isPrimary) and EmpEmploymentTermination (endDate). Filter on lastModifiedDateTime, compared with the previous state.
  • Visma.net ERP through the Service API with Visma Connect (OAuth 2.0 client credentials, per tenant). POST /v1/employee (mandatory employeeCd, department, employeeClass, branch, calendar and contact with lastName and email), PUT /v1/employee/{employeeCd} with If-Match, status Active, Hold, HoldPayments, Inactive or OneTime. Branches through GET /v1/branch (read-only); departments through POST /v1/department (departmentId, description, expenseAccount, expenseSubaccount). Header erp-api-background for queued processing (202 Accepted). GET /v1/employee with forced paging.

Which fields are transferred

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

Field in SAP SuccessFactorsField in Visma.net ERPNotes
EmpEmployment.personIdExternalemployeeCdFixed key, also on rehire
PerPersonal.firstName en lastNamecontact.firstName en lastName
PerEmail (zakelijk)contact.emailMandatory in Visma.net
EmpJob.companybranchThrough a table; branches already exist in Visma.net
EmpJob.departmentdepartment
EmpJob.employeeClassemployeeClassThrough a table set by finance
EmpJob.workscheduleCodecalendarThrough a table
EmpEmployment.startDate en EmpEmploymentTermination.endDatestatus (On hold, Active, Inactive)

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.