Visma Raet YouForce logoMoodle logo

Training and certificates

YouForce to Moodle integration: one Moodle account per person, cohorts per unit and job

With an integration between Visma Raet YouForce and Moodle, every employee from YouForce automatically gets one Moodle account, even with several employments, and sits in the cohorts of their organisation units and job. After the last employment ends the integration suspends the account, so former employees can no longer log in but their course history is kept.

What the integration does

Organisations that process HR and payroll in YouForce and have their own Moodle for training and e-learning often manage Moodle accounts with exports and an upload file. Employees with two employments then get two accounts, and people working temporarily in another department miss that department's courses.

  1. HR processes the new employee or the change in YouForce, as today.
  2. KoppelHet retrieves persons, employments, units, jobs and temporary assignments that YouForce has processed since the previous round.
  3. There is one Moodle user per person, with the person number as idnumber.
  4. The user is in the cohort of every unit where they have an employment, in the cohort of their job and, while it lasts, in that of a temporary assignment. Moodle enrols them through cohort sync.
  5. When the last employment ends, KoppelHet suspends the user.
Visma Raet YouForce → KoppelHet → MoodleSOURCEVisma Raet YouForceTARGETMoodleKoppelHetmapping · logging · monitoringVisma Raet YouForce → KoppelHet → MoodleSOURCEVisma Raet YouForceTARGETMoodleKoppelHetmapping · logging · monitoring
Out: User with name, business email and person number · Cohort per organisation unit · Cohort per job · Temporary membership for a temporary assignment · Status active or suspended

What to watch for with Visma Raet YouForce and Moodle

  • YouForce distinguishes a person from their employments; one person can have several at the same time. Moodle lets a user sit in several cohorts. KoppelHet therefore creates one account on the person number and puts the user in the cohort of every unit where they work, instead of picking one employment.
  • A temporary assignment to another department is a separate assignment in YouForce with a start and end date. KoppelHet adds the user to that department's cohort for the period and removes them after the end date, so they temporarily see that department's courses.
  • According to Visma Raet the Learning API only shows what HR Core has already processed. A new employee therefore only appears in Moodle after that processing. KoppelHet runs at least daily, so there is at most one day between processing and account.
  • The Learning API only returns deleted records for about seven days. An employment removed in YouForce has to be seen by KoppelHet within that week. Besides the daily round KoppelHet therefore compares all active persons with the Moodle users every week.
  • Moodle wants a unique email address for every user. In the Learning API, email addresses only come with the contact details scope, which also opens the citizen service number and private address. KoppelHet only takes the business address from that data and does not store the rest.
  • For Moodle cohorts per job KoppelHet uses the short name of the YouForce job profile as idnumber. A new job in YouForce automatically becomes a new, empty cohort that the administrator can attach to courses before anyone joins it.
  • YouForce refuses calls from addresses that are not on the customer's IP allow list. KoppelHet calls the Learning API from fixed addresses that you add to that list once; that way a stolen key cannot do anything from elsewhere.

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

Can earned certificates go back to the digital file?

That can be added later as an extension. The Learning API accepts a document of type certificate, but without a certificate plugin Moodle does not create a certificate file. First we check which plugin you use.

What do we need to arrange with Visma Raet?

You give the KoppelHet application access to the Learning API of your tenant and add our fixed IP addresses to the allow list.

What does our Moodle administrator need to do?

Enable web services, create an external service with only the required functions and a token, and set up cohort sync per course.

Technical details for IT

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

  • YouForce is read through the Youforce Learning API (api.youforce.com/learning) with OAuth 2.0 via Visma Connect, read-only. Entities persons, employments, organizationUnits, jobProfiles and assignments, with from and to on latestSync, take up to 1000 and isActive for deleted records.
  • Moodle is written through the REST web service with a token for a dedicated external service - core_user_create_users, core_user_update_users (suspended), core_user_get_users_by_field (idnumber), core_cohort_create_cohorts, core_cohort_add_cohort_members and core_cohort_delete_cohort_members.

Which fields are transferred

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

Field in Visma Raet YouForceField in MoodleNotes
Persoonsnummer (personCode)idnumber en usernameOne account per person
Roepnaamfirstname
Voorvoegsel + Achternaamlastname
Zakelijk e-mailadresemail
Organisatie-eenheid per dienstverbandCohort (idnumber)
Functie (jobProfile, shortName)Cohort (idnumber)
Tijdelijke inzet (assignment)Cohort, tot de einddatum van de inzet
Werkgever (company)institution
Einddatum laatste dienstverbandsuspended

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.