AFAS Profit logoGoodHabitz logo

Training and certificates

AFAS to GoodHabitz integration: access follows AFAS Profit, completed training back in AFAS as a course

With an integration between AFAS Profit and GoodHabitz, AFAS decides who has access to GoodHabitz, and completed training and passed tests appear as a course on the employee in AFAS, with a certificate and validity date where needed. HR therefore sees in AFAS who has done a mandatory training, without exports from GoodHabitz.

What the integration does

Organisations that offer GoodHabitz alongside HR in AFAS Profit arrange access per employee by hand. Completed training, including mandatory courses such as information security, is only in GoodHabitz, so for an audit HR exports an overview and looks up the employees in AFAS.

  1. HR records a new employee in AFAS with job and organisational unit.
  2. From the start date, KoppelHet adds the employee to the group that grants access to GoodHabitz, following the rules per job or unit.
  3. The employee signs in to GoodHabitz with single sign-on and follows training.
  4. KoppelHet fetches daily who completed a training or passed a test, and records it as a course on the employee in AFAS.
  5. After the end date KoppelHet removes the employee from the group, so the licence is freed.
AFAS Profit → KoppelHet → GoodHabitzSOURCEAFAS ProfitTARGETGoodHabitzKoppelHetmapping · logging · monitoringAFAS Profit → KoppelHet → GoodHabitzSOURCEAFAS ProfitTARGETGoodHabitzKoppelHetmapping · logging · monitoring
Out: Employee with work email, job and organisational unit · Access to GoodHabitz through the sign-in group · Training from the GoodHabitz catalogue, linked to courses in AFAS
Back: Completed training with date · Passed tests, with certificate and validity for mandatory training

What to watch for with AFAS Profit and GoodHabitz

  • AFAS records training as a course on the employee, with a tick for an earned certificate and a period in which it is valid. For a mandatory GoodHabitz training KoppelHet fills that period with the term HR chooses per training, for example a year, so AFAS shows when the training must be repeated.
  • GoodHabitz has courses, single lessons, assessments and activities. Only a completed course or a passed test becomes a course line in AFAS; single lessons stay in GoodHabitz, so the file does not fill up.
  • A training in GoodHabitz has its own ID, a course in AFAS its own code. HR records per training which AFAS course it belongs to. KoppelHet puts new trainings in the catalogue on a list, so HR can map them before anyone completes them.
  • GoodHabitz cannot create users through its public interface. Access runs through the group in your sign-in environment, and AFAS decides with job and unit who is in that group, for example only employees on a permanent contract.
  • GoodHabitz identifies someone by the user ID from sign-in, usually the work email. KoppelHet looks up the employee in AFAS by that address, also in another employer within the same AFAS environment, and remembers old addresses after a name change.
  • GoodHabitz allows ten requests per minute per key and returns progress for at most seven days at a time. KoppelHet fetches per day and remembers how far it got, so a training completed during an outage still reaches AFAS.
  • Nothing from AFAS goes to GoodHabitz itself; only the group in the sign-in environment changes. BSN, salary and home address therefore stay outside the learning platform.

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 integration create accounts in GoodHabitz?

Not directly, as GoodHabitz has no public interface for it. The group in your sign-in environment decides who gets in, and we let that group follow AFAS.

Must every GoodHabitz training exist as a course in AFAS?

No. Only the trainings HR wants to see in AFAS, such as mandatory ones. The rest stays in GoodHabitz and does not enter the file.

What if GoodHabitz runs through our learning platform?

We then usually fetch progress from that learning platform and connect AFAS to it, instead of directly to GoodHabitz.

Technical details for IT

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

  • AFAS is read with a dedicated app connector with a GetConnector for employees (EmId, work email, job, organisational unit, start and end date), filtered on modification date. Courses go back through the HrEmpCourse UpdateConnector; with Certificaat behaald, Geldig van and Geldig tot may be filled.
  • GoodHabitz is read through the GoodHabitz API v2 with an API key in X-API-Key. GET /v2/contents (with modified_since) and /v2/deleted-contents for the catalogue; GET /v2/milestones with timestamp_since and timestamp_until (at most 7 days) for Started, Finished, TestPassed and TestFailed per organization_id, with user_id, content_id, content_type and timestamp. Rate limit 10 requests per API key and 20 per IP per 60 seconds. No endpoint for users; access through SAML 2.0 SSO.

Which fields are transferred

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

Field in AFAS ProfitField in GoodHabitzNotes
Medewerker (EmId)Sleutel in de koppeling
E-mail werkuser_idThe user ID GoodHabitz receives when a training is launched
Functie of organisatorische eenheidLid van de GoodHabitz-groep in de identity provider
Datum uit dienstUit de groep
content_id (terug)Cursus in AFASThrough a table HR maintains
event Finished of TestPassed (terug)Cursus medewerker (HrEmpCourse)
timestamp (terug)Datum afgerond en Geldig van
Vaste termijn per verplichte trainingCertificaat behaald en Geldig tot

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.