Training and certificates
Sympa to GoodHabitz integration: completed GoodHabitz trainings as a row in the Sympa training table
With an integration between Sympa and GoodHabitz, every GoodHabitz training completed or passed automatically appears as a row in the employee's training table in Sympa, with date, result and duration. Who may use GoodHabitz follows Sympa through your sign-in environment.
What the integration does
Organisations that use Sympa as HR system and GoodHabitz as online training offering record training in Sympa by hand or not at all. What employees complete at GoodHabitz is then missing from the file and from Sympa's training reporting.
- The Sympa administrator creates an API interface on employees, with the work email as unique key and the training table as field.
- KoppelHet fetches completed trainings and tests from GoodHabitz, period by period, with the title and duration from the catalogue.
- All completions of a day go to Sympa in one request, as new rows on the right employees.
- KoppelHet checks the error per field and queues rejected rows again or reports them to HR.
- Access to GoodHabitz runs through single sign-on and follows hire and departure in Sympa.
Back: Completed trainings with date and duration · Tests with result and score
What to watch for with Sympa and GoodHabitz
- Sympa has no fixed field list for the API: an administrator configures per interface which fields and tables it contains. KoppelHet asks for an interface with only the work email and the training table, with write access, so the integration cannot read any other HR data.
- By default Sympa allows a hundred requests per hour per interface, for reading and writing together. One request can, however, add rows for many employees at once. KoppelHet therefore bundles all GoodHabitz completions of a day into one request, instead of one request per training.
- Rows added to Sympa through the API immediately get the status approved. A GoodHabitz completion therefore reaches the file without an approval step; KoppelHet only sends completed and passed trainings, not started ones.
- The Sympa API cannot delete anything. When GoodHabitz removes a training from its offering, earlier rows in Sympa simply stay, which is also the intention for the file.
- A drop-down in Sympa only accepts values through the API that are in the interface's mapping table. KoppelHet therefore adds the GoodHabitz categories to that table at the start; a new category is reported to the administrator instead of letting the row fail.
- Sympa reads through the API from a reporting database, where new rows usually appear within a minute and sometimes only after thirty minutes. KoppelHet keeps its own record of which GoodHabitz completions have been sent, and does not check with a read request right after writing.
- A date field in Sympa only takes a date without time, and a number only with a full stop as decimal separator. GoodHabitz provides timestamps in UTC and duration as ISO text; KoppelHet converts a late-evening completion to the Dutch date and the duration to hours, such as 0.75.
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 the integration create accounts in GoodHabitz?
No, the GoodHabitz API cannot do that. Access runs through single sign-on, and who may sign in there follows Sympa.
Do we already need a training table in Sympa?
Yes, a table on the employee card that holds training. What it is called and which columns it has differs per setup; we align that at the start.
What if an employee cannot be found in Sympa?
Sympa then rejects the row for that employee. KoppelHet reports the completion to HR, with the work email from GoodHabitz, instead of discarding it.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Sympa Integration API at https://api.sympahr.net/api with an API key (X-ApiKey or basic): PATCH on the interface with @context #$delta and per employee the table with suffix @delta to add rows for several employees in one request. Rows are inserted as approved; no Delete. Response 204 on success, otherwise code, message and fieldErrors. 100 requests per hour per interface; the API log shows the last ten requests.
- GoodHabitz API v2 with an API key from GoodHabitz support: /v2/contents (title, duration, category), /v2/milestones (Finished, TestPassed, TestFailed) and /v2/progress (test_score). Time window 0 to 7 days; 10 requests per minute per key. No endpoint to create users; access through SSO with SAML 2.0.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Sympa | Field in GoodHabitz | Notes |
|---|---|---|
user_id (werkadres) | Unieke sleutel van de interface (e-mailadres) | |
content title | Naam van de opleiding | |
category.name | Soort opleiding (keuzelijst) | Value must be in the interface mapping table |
timestamp van Finished of TestPassed | Datum (yyyy-MM-dd) | |
duration (ISO-8601) | Duur in uren (getal met punt) | |
TestPassed of TestFailed | Geslaagd ja of nee | |
test_score (0 tot 100) | Score | |
GoodHabitz | Aanbieder |
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