AFAS Profit logoDocebo logo

Training and certificates

AFAS to Docebo integration: employees in the branch of their unit, completed courses in AFAS

With an integration between AFAS Profit and Docebo, every employee from AFAS automatically becomes a Docebo user, in the branch of their organisational unit, with their manager and with job and employer as additional fields. Completed mandatory courses come back to AFAS as a course on the employee, and after the termination date the user is deactivated in Docebo.

What the integration does

Organisations that run HR in AFAS Profit and use Docebo for onboarding and mandatory courses maintain the branches in Docebo by hand. After a reorganisation in AFAS the automatic enrolments are no longer right, and who passed their mandatory course is only in a Docebo report.

  1. HR enters the new employee in AFAS, with job, unit and start date.
  2. KoppelHet first aligns the branches in Docebo with the units in AFAS, one by one and top-down.
  3. The employee becomes an inactive Docebo user in the branch of their unit and becomes active on the start date; Docebo's enrolment rules then assign the courses.
  4. When the employee completes a mandatory course, KoppelHet records it as a course with certificate on the employee in AFAS.
  5. After the termination date KoppelHet deactivates the user; the learning history stays in Docebo.
AFAS Profit → KoppelHet → DoceboSOURCEAFAS ProfitTARGETDoceboKoppelHetmapping · logging · monitoringAFAS Profit → KoppelHet → DoceboSOURCEAFAS ProfitTARGETDoceboKoppelHetmapping · logging · monitoring
Out: User with name, work email and employee number · Branch per organisational unit · Manager · Job and employer as additional fields
Back: Completed courses with date

What to watch for with AFAS Profit and Docebo

  • Organisational units in AFAS form a tree, and Docebo warns that calls that create or move branches must never run at the same time. After a reorganisation in AFAS KoppelHet therefore processes the new and moved units one by one, starting at the top, and only then moves employees.
  • In Docebo a user belongs to one branch, while AFAS also has employer and job besides the unit. The unit becomes the branch; employer and job go along as additional fields, so an enrolment rule can for example select one job within one employer.
  • Docebo does not check mandatory additional fields when a user is created or updated through the API. If AFAS has no job for a new employee, they silently miss their enrolment rule in Docebo. KoppelHet checks job and employer beforehand and reports an empty value to HR.
  • AFAS can record a certificate with a validity period on an employee's course. Docebo's notification of a completed course contains no expiry date; that is only in certificate notifications that require Docebo Connect. KoppelHet therefore fills the validity with the term HR sets per course.
  • With payload collection enabled, Docebo sends several completed courses in one message, in a different shape than a single notification. KoppelHet handles both shapes and records every completion as a separate course line in AFAS.
  • AFAS often knows the start date weeks ahead. KoppelHet then already creates the Docebo user but inactive, so the manager can see them, and activates them on the first working day.
  • When a former employee returns, they have the same employee number in AFAS. Because that number is the username in Docebo, KoppelHet reactivates the existing user, with their previously completed courses.

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 all courses go back to AFAS?

No, only courses HR has linked to an AFAS course. The rest stays in Docebo.

Do you use single sign-on?

You set up sign-in in Docebo with your identity provider. The integration makes sure the user and their branch are there in time.

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 GetConnector on employees, employments and organisational units, filtered on change date, through an app connector. Completed courses go back through the HrEmpCourse UpdateConnector (certificate earned, valid from, valid until).
  • Docebo is written through the REST API - /manage/v1/user and /manage/v1/user/batch (advice at most 100 per batch, never concurrent), /manage/v1/orgchart for branches (always sequential). On a 429 KoppelHet waits and retries.
  • Completed courses through the course.enrollment.completed webhook (user_id, course_id, completion_date); with payload collection as a payloads array.

Which fields are transferred

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

Field in AFAS ProfitField in DoceboNotes
MedewerkerusernameFixed key, also when the email changes
Roepnaam / Voorvoegsel + Achternaamfirstname, lastname
E-mail werkemail
Organisatorische eenheidBranch (code)With the parent unit as parent branch
Leidinggevendemanager
Functie, WerkgeverAdditional fields
Datum in dienst / Datum uit dienstGebruiker actief of inactief
course.enrollment.completed (course_id, completion_date)Cursussen per medewerker (HrEmpCourse)Only courses linked to an AFAS course

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.