Workday logoMoodle logo

Training and certificates

Workday to Moodle integration: users and cohorts from Workday, course completion back

With an integration between Workday and Moodle, every worker from Workday automatically becomes a Moodle user, in the cohort of their supervisory organization, with the language and time zone of their location. After the last working day the user is suspended in Moodle, and completed mandatory courses arrive as a training on the worker in Workday.

What the integration does

Organisations that manage workers in Workday and run internal training in their own Moodle often load users through a CSV upload by the Moodle administrator. A transfer in Workday then only changes the cohort at the next upload, and for an audit HR searches Moodle reports for who completed the mandatory course.

  1. HR completes a hire in Workday, with supervisory organization, location and preferred language.
  2. KoppelHet creates the Moodle user and suspends them until the start date, so they cannot log in yet.
  3. On the start date the suspension is lifted and the user joins the cohort of their organisation; through cohort sync the courses of that cohort follow.
  4. Every day KoppelHet reads the completion of the mandatory courses and records new completions as a training on the worker in Workday.
  5. After a termination KoppelHet suspends the user; course history and grades stay in Moodle.
Workday → KoppelHet → MoodleSOURCEWorkdayTARGETMoodleKoppelHetmapping · logging · monitoringWorkday → KoppelHet → MoodleSOURCEWorkdayTARGETMoodleKoppelHetmapping · logging · monitoring
Out: User with name, work email and Employee_ID · Cohort per supervisory organization · Company and department as profile fields · Language, country and time zone · Status active or suspended
Back: Completed mandatory courses with date

What to watch for with Workday and Moodle

  • Moodle creates new users through the web service in one database transaction per call. One worker with a duplicate email address or an unknown language code therefore makes the whole call fail. KoppelHet checks those fields beforehand and sends new workers separately, so one error in Workday does not hold back the rest.
  • When creating a Moodle user the web service cannot pass a suspension; that field only exists on update. A hire that is completed in Workday weeks before the start is therefore set up by KoppelHet in two steps, create and suspend straight away, and the suspension is lifted on the start date.
  • Moodle converts every username to lowercase. The Employee_ID from Workday is therefore sent twice, as username and unchanged as idnumber. KoppelHet looks up existing users by idnumber, so a worker with letters in their ID is not created twice.
  • Moodle only accepts a language whose language pack is installed on the server. Workday holds a preferred language per worker from a much longer list. KoppelHet translates it to the installed packs and otherwise falls back to the site's default language.
  • Workday places a worker in a location, while Moodle wants a country as a two-letter code and a time zone name. KoppelHet derives both from the Workday location, so assignment dates and deadlines for workers outside the Netherlands fall on the right day.
  • Moodle cohorts are flat, while supervisory organizations in Workday form a tree. KoppelHet creates a cohort per organisation with the Workday ID as idnumber and puts the parent organisation in the department profile field, so the administrator attaches courses to a cohort at the right level.
  • Without an extra plugin Moodle sends no message when a course is completed, and the web service returns completion per user per course. KoppelHet therefore only requests the mandatory courses of active workers and writes a new completion as a training in Workday.
  • If your Moodle uses single sign-on, KoppelHet creates users with that sign-in method and without a password. With Moodle's default method every new user needs a password or Moodle mails one; we choose that deliberately per group of workers.

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

What does our Moodle administrator need to arrange?

Enable web services and REST, create an external service with only the listed functions and a token for a dedicated integration user. You set up cohort sync per course yourselves.

Does this also work with Moodle Workplace or a hosted Moodle?

Yes, as long as the web service is reachable. With a Moodle partner we check whether the functions are enabled in your version; the web service documentation in your own environment is leading.

Technical details for IT

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

  • Workday is read with a RaaS report on change date through an Integration System User (workers, supervisory organizations, locations, preferred language, termination). Completions go back through the Talent web service (Manage_Training).
  • Moodle is written through the REST web service with a token for a dedicated external service with only the required functions - 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. Courses follow through cohort sync in Moodle.
  • Completion is read with core_completion_get_course_completion_status (courseid and userid; completed and timecompleted per criterion).

Which fields are transferred

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

Field in WorkdayField in MoodleNotes
Employee_IDidnumber en usernameUsername in lowercase, idnumber exactly as in Workday
Preferred_Name (First, Last)firstname, lastname
Email - Primary Workemail
Supervisory_OrganizationCohort (idnumber) en department
Companyinstitution
Locationcountry en timezoneTwo-letter country code and a zone such as Europe/Amsterdam
Preferred_LanguagelangOnly languages whose language pack is installed in Moodle
Hire_Date / Termination_Datesuspended
Cursusvoltooiing (completed, timecompleted)Training bij de workerOnly courses designated as mandatory

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.