
HR to ERP
Sympa to Unit4 integration: approved organisation rows from Sympa as dated relations in Unit4 ERPx
With an integration between Sympa and Unit4 ERPx, every employee of an employer that posts in Unit4 lands in the right Unit4 company automatically, with department and cost centre as relations that carry the same validity as the approved row in Sympa. Unit4 then posts hours and costs to the unit that applied on that day, and a departure in Sympa also terminates the employee in Unit4.
What the integration does
Organisations that run HR in Sympa and finance and projects in Unit4 ERPx record new colleagues and transfers twice. In Unit4 an employee then often sits on the old department for weeks, so hours and costs land on the wrong cost centre.
- Your Sympa administrator sets up an API interface with employer, employment, department, cost centre and manager; we supply the field list.
- Every hour KoppelHet reads the employees changed since the previous run, only for employers with a Unit4 company.
- KoppelHet first has Unit4 validate a new employee without saving, and then creates them.
- Every approved row for department or cost centre becomes a relation with the same start and end date.
- After the end date of the employment KoppelHet terminates the employee in Unit4.
What to watch for with Sympa and Unit4 ERP
- In Sympa the administrator chooses which unique field identifies an employee, or the automatic DataCardCode. KoppelHet uses that value as personId in Unit4 and turns automatic numbering off there. Unit4 rejects an existing personId within the same company, so a repeated run after an outage does not create a second employee.
- A transfer in Sympa is only final once the table row has approval status five. KoppelHet only takes such rows along, so Unit4 does not let project postings land on a department where the move is still awaiting approval.
- Sympa rows with effectivity settings have a validity, and Unit4 records an employee's relations with dateFrom and dateTo. KoppelHet requests the rows with since and until and puts each period into Unit4 with the same dates, even when HR enters a transfer retroactively.
- Each Sympa employer belongs to exactly one Unit4 company, and employers in other countries often have no Unit4 company. Because a filter in $expand only narrows table rows, KoppelHet puts the employer in the main filter, so employees without a Unit4 company do not reach the integration.
- By default Sympa allows one hundred requests per hour per interface, while Unit4 handles five hundred per minute and creates up to two hundred employees per batch. The Sympa side therefore sets the pace. KoppelHet reads Sympa with large pages and spreads the first load over several hours.
- Sympa's Integration API has no DELETE, and a leaver stays in Sympa with an end date. KoppelHet uses that end date to terminate the employee in Unit4 through the DELETE call, which in Unit4 is a terminated status and not a removal, so historical postings stay correct.
- In Sympa the manager is a reference to another data card. Through a target field in the interface Sympa supplies that card's key directly. If Unit4 records the manager as a relation, KoppelHet translates that key into the manager's personId in Unit4.
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
Do salary and personal data go to Unit4?
No. The Sympa interface only holds what Unit4 needs for hours, projects and approval. Salary is not in it and therefore cannot reach the integration.
What if a department from Sympa does not exist in Unit4?
Then the validation in Unit4 rejects the employee and finance gets an alert with the code. Once it exists in Unit4, the next run adds the relation after all.
Can the Unit4 number go back to Sympa?
That is not needed, because Unit4 takes over the key from Sympa. Writing another value back 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.
- Sympa Integration API (OData v4 subset, JSON) on a dedicated interface under https://api.sympahr.net/api, with X-ApiKey or basic authentication. Reading with $filter on modified and the employer, $top and $skip, $expand on the tables with Approval eq 5, and since and until for validity. Supervisor field with a target field for the manager's key. No DELETE. By default 100 requests per hour per interface, shared across GET, POST and PATCH.
- Unit4 ERPx through the Employees API with Client ID and Client Secret - POST /v1/employees/validate, POST /v1/employees or /v1/employees/batch (at most 200 per call, 409 for an existing personId), PATCH /v1/employees/batch on relatedValues (relationId, relatedValue, dateFrom, dateTo) and employments, DELETE /v1/employees/{personId} as termination. Tenant limit 500 requests per minute for all integrations together.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Sympa | Field in Unit4 ERP | Notes |
|---|---|---|
Uniek veld of DataCardCode | personId | Automatic numbering in Unit4 off |
Werkgever op de datakaart | companyId | Fixed table; employers without a Unit4 company are skipped |
Voornaam en achternaam | nameInformation.firstName en surname | |
Zakelijk e-mailadres | contactPoints | |
Begin- en einddatum dienstverband | employments (startDate, endDate) | |
Afdeling (tabelregel, Approval 5) | relatedValues (dateFrom, dateTo) | |
Kostenplaats (tabelregel, Approval 5) | relatedValues (dateFrom, dateTo) | Which relationId depends on the Unit4 setup |
Leidinggevende via doelveld van de supervisorkaart | relatedValues (leidinggevende) | Only if Unit4 records the manager as a relation |
Related
Greenhouse → Sympa
Greenhouse to Sympa integration: hired candidate as a data card with contract row in Sympa
Recruitee → Sympa
Recruitee to Sympa integration: hired candidates as a data card in Sympa
SmartRecruiters → Sympa
SmartRecruiters to Sympa integration: ready to onboard becomes a data card in Sympa
Sympa → 4PS Construct
Sympa to 4PS Construct integration: fitters of the Dutch employer from Sympa in 4PS, with cost centre as a dimension