Many of us have a goal to provide more interactive and engaging learning experiences that may involve use of remote learning content. And today, we may also have a requirement to use an LMS and/or SCORM. If you want to use a new technology like remote-hosted HTML5 and xAPI to get more useful learning analytics data to prove training effectiveness, you may think the requirement for LMS or LMS/SCORM makes the effort a non-starter. Not all LMSs are friendly to the variety of learning event types that can happen outside of the LMS. As we are moving more and more into asynchronous learning models, the concept of remotely viewing and tracking learning events while using the LMS to build and manage curriculums is a real-world requirement.

cmi5: What is it, and does it support remote content?

cmi5 is a brilliantly devised profile for using the Experience API (xAPI) specification with traditional learning management systems (LMSs). cmi5 is designed to be a bridge between SCORM and xAPI. The cmi5 profile will work with remote content out of the box, but it requires your LMS to support it. On the instructional design side, implementing cmi5 is relatively trivial if you can already send xAPI statements. However, on the LMS side, LMS providers need to do some minor software development to support cmi5. I would certainly recommend that you ask your LMS provider about it. There is a tremendous amount of legacy SCORM content out there on LMSs, and the cmi5 profile is intended to get it reporting xAPI.

This article discusses a SCORM technique, but I should also note that if your LMS provides an application programmer interface (API), you might be able to report the LMS information needed, such as completions and scores, directly to the LMS. APIs allow software to play nice with other software in the enterprise sandbox. Using APIs is an extremely common and everyday practice; in fact, this is the way all enterprise software is expected to work. It would be great if all LMSs would at least provide APIs for tracking learning events outside the LMS, but in my experience that does not seem to be the case. Whether you are using SCORM/AICC, or even if you find that your LMS provides APIs, it is an important and simple first step to set up a test package and identify the best path. All you really need to do is pass a single statement to the LMS and the door is open for more.

It is possible to get remote HTML5 content, enabled with xAPI (which provides all manner of learner data), to work with your current LMS. (Instructional designers don’t have to completely know how to do the technical parts of this. This article includes a “techie section” for you to share with a developer.) What is important is to know that “It can’t be done” is a totally unacceptable conclusion when you want to get into new learning technology and use your LMS. It is being done, and you can begin new training goals and initiatives today.

For example, we recently completed two projects that use xAPI to populate the entire learning experience. xAPI interactions can inform learners of their progress as well as track all the learners in aggregate. In my last article, a working case study (“Gamification, Social Collaboration, xAPI Technologies, and Sales-Training Success,” published November 30, 2016), xAPI was used to show training points, social points, progress in the training, and leaderboards. All that data came from the LRS and informed the learners of exactly where they were in training and competency. What if you need to use your LMS to deliver that type of experience? What if you want to provide a training experience that uses disparate training technologies and sources of training content? Examples of xAPI populating and driving the learning experience are starting to emerge.

The basic concept described in the following “techie section” is that a SCORM package is installed on the LMS, and when a user launches it, the user is able to “remote view” and interact with the remotely hosted HTML5 course. The LRS is able to provide information to the learner and track all interactions, activities, and training results data. The LRS data can serve multiple audiences. This happens in the same way that consumer behavior data feeds multiple internal audiences to help improve products and businesses such as Amazon, Visa, and Facebook. xAPI interaction data can inform improvement of training effectiveness and begin to inform rules to adapt training to the individual.

The “techie section”

Developers could use this method to transmit other SCORM data if needed. What I have provided here is a simple example (Figure 1).

Figure 1: Using SCORM to get remote HTML5 courseware, enabled with xAPI, to work with an LMS

Description of the diagram:

  1. Create remotely hosted HTML that can generate a completion code. (I can provide a generic version of this code upon request.) In one case, the course has a completion certificate page that is locked till complete—once it is complete, a completion code is generated and sent to the iFrame in the SCORM package.
  2. Provide access to the HTML from the LMS with some kind of authentication strategy. Chances are there are multiple options for authentication being used in your enterprise right now. One such authentication might be handled through a single sign-on process from an LMS by generating a unique hash from the user’s name and a shared secret key; then, in your authentication service, you calculate the hash again and make sure it matches. Remember to start with a test package that provides a single statement and build from there.
  3. Create a SCORM Package .zip file that uses an iFrame that has a script, which generates a SCORM completion code. (I can also provide a generic version of this code upon request.) Load it onto the LMS and distribute it according to the LMS rules. When the user clicks on the course, they will authenticate and the remote hosted content will be delivered.

When the course completion message is received, the pop-up turns it into a SCORM completion message and communicates that back to the LMS.


I hope that this article helps to inform a discussion, based on a working enterprise client case, that might help you and your team discover an acceptable and secure work-around to use your LMS and new learning techniques. This type of work-around implementation requires a small amount of web developer labor that is incidental to the design and development of the total learning experience.