LMS Integrations


Typical LMS Behavior - Course Organization

  • Courses - types & versions
    • Digital Courses, ILT, Events, Curriculum etc
    • Courses are a collection of different assets
      • videos, scorm, ppts etc
    • Courses can be versioned
      • Multiple versions of courses can be active at the same time
  • Courses are organized into Catalogs
    • Each catalog is assigned to a specific user group
    • A course can be part of multiple catalogs

Typical LMS Behavior - Transcripts

  • Enrollments
    • Different users could be assigned to different versions of the same course
    • Users can enroll by themselves, or by administrators
    • Users can complete, pass or fail a course based on the course type
    • Enrollments have deadlines (due dates)
    • Enrollments have time tracking (start & end date)
    • Completions & Assignments (Enrollments) typically are at a version level
  • Re-enrollments
    • A user can have the same version of the training reassigned to them (on a recurring basis) or a new version of the same course might be assigned to them

LXP - as it is designed today

  • LXP represents each item (course, curriculum, event, material etc.) as “Content / Card” against a course
    • No versioning
    • No nested structure to capture the included assets (like videos, presentations etc.) - a card boils
      down to a URL
  • Assignments and Completions are tracked at card level
    • Assignments and completions are deleted if the card is archived
    • There can only be one assignment stored per user per card in the LXP
  • Integration Source Configurations allow contents fetched from a particular source to be restricted to specific groups

Integration Challenges – Catalog & Transcripts

  • Archival
    • Content that gets archived will lose any assignments or completions in the LXP
    • Luckily, this data will be preserved IF and after the LRS is enabled for that organization
    • Recommendation: LRS should be enabled for all organizations to avoid this issue
  • Launch URL
    • LMS’es that do version level assignments typically also give version level launch URLs
    • This can be confusing to learners who see multiple cards (related to multiple versions) and they do
      not know which “card” to launch
  • Versioning
    • Since cards do not have versioning, each version creates a new card leading to confusing user
      experience – from a user perspective – finding duplicate content
  • Explosion of cards
    • Older versions that are no longer used are still “active” in the LXP – since in LMS you do not
      necessarily need to deactivate old versions
  • Content Reassignment:
    • Content within the LMS can be re-assigned to users but the LXP cannot hold multiple completions
      or multiple assignments of the same card for the same user

Integration Challenges – Technical

  • Most of these LMSes do not have rich API set leading to many issues
    • In terms of catalog data, api to access the catalog, getting transcripts (assignments &
      completions) - including withdrawals etc.
  • API throttling issues – cannot fetch as fast as we should be
  • No “Delta” APIs – that give the data created or modified in the specified time period
    • Leading to trying to sync the whole catalog
    • Large catalogs or transcripts – can take more than a day to two to synchronize
    • So we end up doing such updates on a weekly basis – which might break the user experience

Integration Principles for Enterprise LMS

  • We will create “cards” in the LXP at the course level and not maintain versions
  • We will track assignments, completions at the course level
  • We will create launch URLs that are at a course level
    • The LMS should resolve internally to direct user to the right version of the course
  • We would strongly recommend that we make use of the delta catalog and delta assignments – either through APIs or CSVs – to keep the data synchronous on a frequent basis