Leave, absence and time
Sympa to Protime integration: employees and working hours in Protime, approved absence back as a row in Sympa
With an integration between Sympa and Protime, every employee of the Dutch or Belgian units in Sympa appears in Protime automatically, with a contract based on the approved working-hours rows. KoppelHet writes absence approved in Protime back to Sympa as an absence row, so HR sees the leave in Sympa without retyping it.
What the integration does
Organisations that run HR in Sympa and clock with Protime in the Netherlands or Belgium enter new employees and changed working hours into Protime by hand. Leave and sickness are handled at the clock, but HR then retypes them in Sympa.
- The Sympa administrator sets up an API interface that allows reading employees and working hours and adding absence rows.
- KoppelHet puts new and changed employees in Protime, with a contract per approved working-hours row.
- A manager approves absence in Protime.
- KoppelHet collects the approved absence and adds it hourly in one request as rows in Sympa.
- If absence changes or disappears in Protime, KoppelHet adjusts the row in Sympa.
Back: Approved absence as a new row in the absence table · Changes as an update of that row
What to watch for with Sympa and Protime
- Sympa sets rows added through the API to approved straight away, and the approval status itself cannot be set through the API. That fits absence from Protime, which is already approved there. KoppelHet therefore does not pass on leave still awaiting approval in Protime.
- Nothing can be deleted through Sympa's Integration API. If an absence disappears in Protime, KoppelHet cannot remove the row in Sympa. KoppelHet updates the row with a marker in a field the administrator adds to the interface for that purpose, and alerts HR to delete the row in Sympa.
- Sympa allows a hundred requests per hour per interface, reading and writing combined. Protime reports each absence separately. Sympa can add rows for several employees in one request, so KoppelHet bundles an hour's absence into one request, keeping within the limit even in busy weeks.
- What is written to Sympa can sometimes only be read back through the API after half an hour. KoppelHet therefore does not check a written row straight away, but in the daily comparison, and keeps its own record of which Protime absence belongs to which Sympa row, from the address Sympa returns.
- In the classic version of Sympa a row changed through the API always gets the status approved; in the new version it keeps its status. KoppelHet therefore only changes rows in Sympa that it added itself, so a row HR is still handling does not get approved unnoticed.
- Working-hours rows in Sympa have a validity period and an approval status. Protime wants a start date and contract hours in minutes on a contract. KoppelHet turns each approved working-hours row into a Protime contract with the same period, so a change in hours recorded in advance in Sympa takes effect on the right day.
- A Sympa interface has no fixed fields: the administrator chooses what is in it and whether the interface may read, add or change. For this integration KoppelHet asks for reading on employees and working hours, and adding and changing only on the absence table.
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
Why leave in Protime and not in Sympa?
Because Protime does not accept absence through the API. Whoever arranges leave at the clock does so in Protime; Sympa receives the result.
Do clocked hours go to Sympa?
Not in this integration. Clocked hours for payroll 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 through the Integration API (OData v4, JSON) with X-ApiKey or basic authentication. Reading with $filter on modified and unit, $expand on the working-hours table with Approval eq 5 and since/until. Writing back with PATCH api/{interface} carrying rows for several cards in one request, or POST api/{interface}({id})/{table}; response 204 without body with a Location header; @odata.type required in the body. No DELETE, no approval fields; a hundred requests per hour shared over GET, POST and PATCH.
- Protime through the Protime API (v1) with OAuth 2.0 client credentials. POST people with externalReferenceIdentifier, POST contracts (from, until, contractHoursInMinutes, fullTimeEquivalentInMinutes, numberOfWorkingDaysPerWeek, numberOfDaysInContractPeriod) and the history for department. Absence through webhooks on absences (changeType InsertOrUpdate or Delete, dayPart, durationInMinutes, approvalLevel Approved), signed with HMAC-SHA256.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Sympa | Field in Protime | Notes |
|---|---|---|
Personeelsnummer (veld in de interface) | @employee-number (externe referentie) | Fixed key |
Voornaam, achternaam | firstName, lastName | |
Dienstverbandregel (geldig van en tot) | inServiceDate en outOfServiceDate | |
Werktijdregel (Approval 5, geldig van en tot) | contract (from, until, contractHoursInMinutes, numberOfWorkingDaysPerWeek) | |
unit | department-history | |
Afwezigheidsdefinitie en duur (Protime, terug) | Afwezigheidsregel in Sympa (soort, van, tot, uren) | Fields as set up in the interface |
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