Tin Can API, eLearning Authoring Tools, LRS, H5P, and More with Dennis Hall’s LifterLMS xAPI

Episode
118
Posted in

Listen to This Episode

This information-packed episode of LMScast features Chris Badgett of codeBOX discussing Tin Can API, eLearning authoring tools, LRS, H5P, and more with Dennis Hall of Learning Templates, who’s also created the LifterLMS xAPI.

If you’re not technically inclined you’ll still find this discussion informative and easy to understand. You’ll get answers to some basic questions, especially if you want to understand the scope of what LifterLMS xAPI does. Dennis starts with an explanation of what an API is and what it’s for. Basically Tin Can API, the Experience API, and xAPI are all names for the same thing. It’s simply a tool that connects things together.

If you’re new to LifterLMS, it’s a WordPress plugin that makes it easy to create, sell, and protect your online courses. The LifterLMS xAPI is an add-on for your WordPress site that gives you even more functionality. It also removes the need for a programmer to set up the API for you, allowing you to create your learning products and generate reporting with no programming skills required.

Dennis fills in some history on SCORM – the Shareable Content Object Reusability Model – and why it’s being replaced by the xAPI. He tells how xAPI and LifterLMS integrate to access eLearning services, and use communication channels in ways that save bandwidth for mobile devices because a lot of students use those to access your courses.

You’ll learn the difference between a Learning Management System (LMS) and a Learning Record Store (LRS), what their functions are, and how xAPI handles information privacy. Chris and Dennis explain competencies and activities beginning with measurable learning objectives for your curriculum, and how all of that gets reported. And LifterLMS is now the only WordPress-based Learning Management System that supports CASS competency analysis.

LifterLMS xAPI is also able to work with H5P content, giving you rich, visual, web-based, interactive content for your course, lessons, or quizzes. You’ll also get a quick overview of eLearning authoring tools and how they integrate with LifterLMS xAPI. By getting the most out of Tin Can API, eLearning authoring tools, LRS, H5P, and more with Dennis Hall’s LifterLMS xAPI, he has solved a lot of problems and provided new integrations and additional features.

Post comments and subscribe to our newsletter for updates, developments, and future episodes of LMScast. Thank you for joining us.

Episode Transcript

Chris Badgett: Hello, and welcome back to another episode of LMScast. My name is Chris Badgett, and today I’m joined by special guest Dennis Hall from Learning Templates, creator of the incredible LifterLMS xAPI plugin, a companion to LifterLMS that we’re going to get into in this episode. First, Dennis, thanks for coming on the show.
Dennis Hall: Thanks, Chris. Nice to be here.
Chris Badgett: LifterLMS xAPI does a lot of different things, and I really wanted to take the opportunity to talk with you and get some answers to some pretty basic questions for people first coming across this, or for people trying to understand the full scope of what LifterLMS xAPI does. A lot of people listening to this episode already know what LifterLMS is, but in case you’re new, LifterLMS is a WordPress plugin that makes it easy to create, sell, and protect engaging online courses. LifterLMS xAPI is an add-on that you can add to your WordPress site that gives even more functionality, and quite frankly a lot more power and functionality to the core feature set of LifterLMS.
Let’s start at the beginning, Dennis, what is xAPI? Which is also known as the Experience API, and also known as the Tin Can API. If someone came up to you on the street and said what is that, how do you explain it?
Dennis Hall: What xAPI is, or Tin Can, as it’s most commonly referred to, a little history…Tin Can was the original project name that ADL, Advanced Distributed Learning organization, the U.S. government subsidiary. Tin Can was the name of the project that was given to a company called Rustici, who are the owners of SCORM.com, which I’m sure a lot of people are aware of over the years. Tin Can is just a nickname, in reality. It’s kind of stuck with it, but xAPI is the Experience API. You’re correct.
What xAPI is, it is exactly what they say, an API, meaning an application programmer’s interface. The wonderful thing about it is those of us who have developed things against xAPI have taken the programmers out of it. We’ve given you an API where you fill in some information, and that populates the information to be sent to servers and to be transmitted around the world, and to be communicated between you and your course, as well as your Learning Management System and your course. We’ve taken the technical programmer part out of it all, and made it much easier for the end user, the person who has no programmatic skills, to be able to focus on the job that they are good at doing, which is creating their learning products, and generating reporting output that makes sense to them.
Chris Badgett: That’s awesome. You mentioned the word SCORM, and my understanding is SCORM is something that’s dying, or phasing out, being replaced by the xAPI, as the new standard or whatever. For those who are looking at SCORM, or still using SCORM, can you talk about how that’s going away, or what’s new, and how people can think about it? You hear these words, SCORM, and Tin Can, or xAPI sometimes side by side but help us understand the difference.
Dennis Hall: Sure, to understand the difference you have to kind of have been in the industry since the onset of this. Back about ’95, we all started talking about and beginning to work with a specification called AICC. This was the Aviation Industry specification for reporting course materials and reusing courses amongst different platforms. The idea was you could have one course sitting on one server, and you could have many different Learning Management Systems connect to it, and be able to have those users of those Learning Management Systems use that content.
That kind of brought in what we call the SCO, back then though they called it an AU, and Assignable Unit, in reality. An AU was also a kind of file that you configured for AICC to work, but the beauty of it is that you could cross domains in the internet. That really was beneficial, but AICC, from a reporting, or a granular reporting perspective, it just didn’t have enough giddy up to really turn people on enough to go for it. Then came SCORM.
If you recall, I mentioned the shareable content part of AICC, well that got carried into SCORM. SCORM is an acronym for Shareable Content Object Reusability Model, and what that kind of means is that everything in your course is an object, and because it’s in your course, and your course is being used, it’s shareable content, because it’s being used amongst different people. You’re not giving a physical course to each person. You’re hosting it centrally, and having a bunch of users connect to your LMS and use it. It’s shareable.
What is sad about SCORM is one of the first things that ever went away were that AICC model, where you could connect from your domain to another domain, and use the course in the other domain. SCORM lost that right away, and that forced everybody to take that shareable content, and start distributing it amongst all the different LMSes to be used locally. This was a problem for people who wanted to centrally host courses and resell them to different platforms, but it was something, I’m not going to say become liked it. People just succumbed to it, and accepted it for what it was.
That was the problem with SCORM, is that throughout the years it went through four evolutions, and in those four evolutions, essentially people just became more and more apt to succumb to the lesser abilities, let’s call them. SCORM kind of got milked down so much. It’s not uncommon for somebody to expect, Dennis Hall completed course A. Dennis Hall scored 55% on exam A. That was kind of it. ELearning really took a big hit, because eLearning could do so much more, but SCORM was basically killing it.
Then through the different iterations of SCORM, things tended to become more broken. Even to the point where by the third edition of SCORM, if you made a big enough course you could never get a completed on the course, because there was so much information being sent to the LMS, and the LMS wasn’t able to handle it all, so it was losing data. Essentially, in large courses, people weren’t completing courses. I myself have been an instructional designer and courseware developer through this whole evolution. I’ve seen it grow from day one, from the beginning of AICC, even beforehand to be honest. It just got more and more broken as things got along.
Like I say, the only thing that kept it going was the fact that people were expecting less and less, and their expectations were lowered quite a bit. More than a year ago now, the ADL, various working groups, I’m in three of them. I’m in the xAPI working group, as well as the cmi5 working group, as well as the CASS working group. In two of those, xAPI and cmi5, I’m one of the contributing authors to that. There are a number of us in there including Learning Management System vendors who are all in there.
What we’re trying to do in the xAPI working group is we’ve created a specification for the xAPI to be able to send and receive data. We’ve created rules. What type of data? What format of data? What format of information? What kind of details should be in the information? This sort of thing. In the cmi5 working group, what cmi5 is, it is a layer on top of xAPI, that compliments xAPI, and applies a set of rules to Learning Management Systems to be able to use xAPI effectively. It basically determines, for example, what format should the AU, the Assignable Unit, which Assignable Unit kind of means the course. What format of the information should be in the course, and how should the Learning Management System read it?
That’s all the technical stuff. That’s out of the way. Bottom line is though, the announcement that SCORM was no longer being supported, it doesn’t mean that it’s dead. It simply means it’s not going to evolve, and grow anymore. That happened a little over a year ago that that announcement was made. At that time, xAPI had been gearing up for about two years prior to. At that time xAPI was announced as the replacement for SCORM.
Chris Badgett: Got you.
Dennis Hall: The beautiful thing about xAPI is that what you had in AICC, what you lost in SCORM, you’ve now regained with even tons more information in xAPI. That’s the whole history in a nutshell.
Chris Badgett: That’s awesome. You’ve been along for the ride through all that, so that brings a lot of depth of knowledge and experience there, in seeing where things have been, and where they’re headed, where the opportunities are, where the problems are.
Dennis Hall: Yeah, you’re right. What’s important, a key word there is where the problems are. What is really important to understand about implementing xAPI is to understand what your objectives are when implementing it. When you want to use xAPI do you have a valid reason? Are you doing it just because it’s the latest greatest thing? That’s not really a good reason. Are you doing it because SCORM is failing you? That’s a better reason. It’s an important reason, but is it still going to serve your needs?
Another thing with xAPI, something that we’re seeing a lot of is eLearning implementations. The thing with eLearning is that unlike LifterLMS, LifterLMS the content’s in the website, where eLearning, the content can be anywhere in the world, as I mentioned with the AICC being brought into Tin Can. What’s really important to understand about that is that here you are. You’re on your mobile device, an iPad, for example. I wouldn’t do learning on a cell phone, but some people might, even. Let’s say you’re on your iPad, there are rules related to browsers in mobile devices.
As an example, when you open up a video in a mobile device it never automatically plays. You always have to tap it to play it. That’s a rule that’s built into all mobile devices, and this is because mobile devices by default will not stream two channels of information simultaneously. They’ll only connect to one thing, and use it, until you intentionally tap something to make it connect to the other thing. Then, it’ll stop communicating with the first thing. They do that intentionally, because the mobile developers have been trying to save bandwidth usage for their users, so they don’t clock up gigabytes of data usage every month. That is the design.
LifterLMS doesn’t have a problem out of the box, because everything’s native in LifterLMS. You’re using one communication channel. As soon as you open up an eLearning course within LifterLMS, your mobile device has to make a choice: eLearning or Lifter? The end. When you tap the eLearning to get it started, you’ve made the choice for the device, and it can communicate to the Learning Management System. Excuse me, it won’t communicate to the Learning Management System.
It’ll communicate to a database called a Learning Record Store. In my case, the ones that I implement, they’re high performance databases. They’re designed to be 8,000 times faster than your typical WordPress database. That is what I provide as a service as well. It’s really critical when you’ve got 100 users that are constantly streaming data in and out of the database, as well as people trying to run reports off the database at the same time. You need the performance. You need the speed, especially when crunching reports.
Chris Badgett: Got you. I just want to say what LifterLMS xAPI does at a high level, and then let’s get into unpacking more of these bits and pieces that people need to understand to see if it’s a good fit for you or not. LifterLMS API makes it possible for you to integrate LifterLMS with an xAPI or Tin Can service. You can manage your LifterLMS competencies and activities, your H5P content, as well as uploaded and linked Articulate, Captivate, or Lectora eLearning course activities. Those are those external courses that Dennis was talking about there.
LifterLMS xAPI does a lot. You may only need certain pieces of this, or you may need it all. You may need everything, and you’re really going big with your eLearning. Circling back to what you were just talking about, Dennis, LifterLMS is a Learning Management System. As you helped me understand, it’s a LCMS, a Learning Content Management System as well.
Dennis Hall: Yeah.
Chris Badgett: WordPress is a content management system. What is the big difference between an LMS, and an LRS? A Learning Management System versus a Learning Record Store?
Dennis Hall: Good question. A Learning Management System is a system that encompasses everything to do with your users, everything to do with your registrations, everything to do with scheduling, if you’ve got that, and everything to do with serving content to those users based on a set of rules. A Learning Record Store is primarily a database. It’s a place that you send data to. Some Learning Record Stores have reporting ability built into them, where others don’t. There are certain ones that can and can’t provide reports, but that’s all it is. A Learning Record Store is simply that.
However, what happens as the forward facing part of the Learning Record Store is that it receives xAPI data, and it interprets it, and then it stores it appropriately based on how in interpreted the data strings. We won’t get into that technical stuff, but it’s actually you’re sending strings of information to the server, the server interprets, oh I see this, I should put it here. I see that I should put it there. The end.
Chris Badgett: Yeah, and if you’re new to the technical jargon, that’s one of the ways I like to first explain the concept of an API. It’s kind of like a pipe that connects things together.
Dennis Hall: It is.
Chris Badgett: It’s sort of like connecting your LifterLMS site to a Learning Record Store. That pipe is the Tin Can API.
Dennis Hall: That’s correct. One of the things LifterLMS xAPI does is it prepackages everything that the user’s doing, and it prepackages it in an xAPI format, and it sends it to the Learning Record Store, which then unpackages it and reads that information, and stores it in the appropriate location. It is important to understand, by the way, all the data being sent across is encrypted.
Chris Badgett: Yeah, privacy is a big deal. I think one of the things that really helped me understand the difference between a LRS and an LMS too is that an LRS may be receiving data from multiple Learning Management Systems. You may be getting data from some course platform over here. It might be Lifter powered. Something else over here. Whoever owns the LRS for some kind of degree program, or certification, or training objective, the data can be coming in from all kinds of different places.
Dennis Hall: That’s right. You really need a high performance server to handle it all. One other thing to mention, since you were just on that subject … Sorry, go ahead. I lost my train of thought there.
Chris Badgett: In terms of LifterLMS xAPI, I know when you first set it up it asks you which Learning Record Store, or LRS do you want to use, and you’ve got one that you have in there that you recommend, or people could sent it to a different one of their choice. Is that right? Can you help us understand the options around that?
Dennis Hall: Yeah. One of the things with the xAPI’s standard. It is a standard that allows you to connect to any Learning Record Store that is xAPI compliant. In the case of Tin Can, of LifterLMS xAPI, I do have a special key added into mine, so it is best suited to work with the Learning Locker Learning Record Story system. Learning Locker is a project that I’ve done minor development in with that company as well, and it is an open source project out on GitHub. However, the server that Learning Locker sits on is a very, very important architecture that helps Learning Locker to work as fast as it can.
There are a number of other companies out there that do also host their own Learning Record Stores. SCORM.com itself hosts one. There is Saltbox. There is a number of different companies out there. When you connect LifterLMS xAPI to any of those Learning Record Stores, you will need to contact them, because they’ll have to provide you a key separately, much like the user key that is setup in mine. If you go with a Learning Locker provider, then that key will be provided to you as part of the package already. You don’t need to worry about converting, or trying to figure out how to ask them for the key.
There are three pieces of encrypted information typically associated with the Learning Locker setup. One is the LRS key that I just described. The other is your LRS user key, your username, excuse me. Then you’ve got your LRS password. What you receive as LRS key, LRS username, and LRS password already pre-encrypted information. They won’t look like your username or your password. These get repackaged again into further encrypted data. We encrypt the encryptions, and we send that optimized server, or any Learning Locker server, or any Learning Locker type server, let’s say.
Chris Badgett: What about, if we’re sending data over the pipe, what is a LifterLMS competency and activity? These are some types of things that we can communicate to our LRS through the API. What are competencies and activities?
Dennis Hall: Good question. It’d be better probably to start with a learning objective. What is a learning objective? For people who have been developing courses over the years, they understand that learning objectives are statements that define the expected goal of a curriculum, or a module, even, or a course, or a lesson, in terms of demonstrateable skills, or knowledge that will be acquired by the student as a result of the instruction in the lesson, course or module.
Learning objectives are also known as instructional objectives. They can also be known as learning outcomes. In fact, I hear them quite often as learning outcomes more than learning objectives. It seems like a nicer name I think. Another name for them is learning goals. I’ve heard many people call them that. Learning objectives describe what the learner should be able to achieve at the end of this module, for example, and they should be specific. They should be measurable as well. They should be measurable statements written in behavioral terms.
Chris Badgett: What does that mean, behavioral terms?
Dennis Hall: Behavioral terms, an example might be, that is how I was able to identify bacteria, or that sort of thing. Those are learning objectives. Why have I brought that up first? Because the learning objective is one piece of the foundation. The other piece of the foundation is the competency, which will directly relate to the learning objectives. Competency is the capability to apply or use a set of related knowledge, and skills, or abilities. Otherwise known in the industry as KSAs, which you may have heard of. Knowledge, skills, abilities, those create a competency.
Now, once you have your knowledge, skills, and abilities in a row, related to a competency, then what happens is that you should be able to successfully perform the critical work functions to complete that learning objective. I don’t necessarily want to talk about tasks, about physical tasks, but one thing about xAPI is that it doesn’t restrict you to eLearning only. There are apps out there that are xAPI enabled on phones. I kind of joke around saying someday there might be a record in a Learning Record Store that might say Dennis Hall visited the top of Mount Everest. That might be because-
Chris Badgett: Because of the geolocator in the phone?
Dennis Hall: That’s right. I went to the top of Mount Everest, and tapped my phone saying I’m here, and when I tapped it it stored an xAPI record, because there was no cell coverage. When I came down off the top of Mount Everest, it connected to the nearest cell tower, connected to my Learning Record Store, and submitted that data. That’s a native function of xAPI.
Chris Badgett: Very cool.
Dennis Hall: Record stores. That’s something SCORM cannot do, by the way. If you attempt to do that in SCORM, you’ll be dead in the water from the start.
Chris Badgett: Got you. You can send data to your LRS about what people are doing with LifterLMS courses, or lessons, or quiz questions, and these sorts of things, and you can also create competencies that fulfill some kind of learning objective, and pass that data through the API as well.
Dennis Hall: That is what we do. There’s been a couple of fallbacks to xAPI. THey’re not bad things. It’s just that they’re things that surprise people. They’re not used to it. xAPI can send a lot of data. It can fill up your database pretty fast if you let it. What’s important to understand is that you get a lot more data than you did with SCORM. Secondly, xAPI data, out-of-box, xAPI data can look a little bit cryptic. You’re going to see Dennis Hall experienced this eLearning. It’s like okay, well the whole idea behind xAPI is to say the actor did something. Dennis Hall experienced this eLearning. Dennis Hall being the actor, the verb being experienced, this eLearning being the object that he experienced. Sorry, talking about myself in third party. I’ve lost it.
What I’ve done, Dennis Hall experienced this eLearning, it’s just a bit too, let’s call it out there. What would you say if you had completed a specific learning objective in an eLearning course, wouldn’t you rather see something like Chris completed this eLearning, or module one, or Chris was able to complete question three, or this sort of thing. What I’ve done in LifterLMS xAPI is I’ve taken the competency, and assigned it to that learning object, so now when you run a report in the Experience API reports, raw statements we call them, will come out, and by default the ADL verb will be sitting behind the learning object, so when you click on the learning object in a report it’s going to come back and say here’s the ADL verb per course.
What I’ve done is I’ve remapped the information, so that in LifterLMS xAPI, what happens is if you click on the name of the learning object that’s being reported, it will actually map you or redirect you to the competency that you’ve created in LifterLMS. Now you can take a competency, and you can assign it specifically to the start page of a LifterLMS course, to lesson one of a LifterLMS course, to quiz one of a LifterLMS course, or even to question one of a LifterLMS course. Whenever people read a report, they’re going to have a clickable item, and that clickable item will be the name of what the person experienced, the learning object the person experienced.
When they click on the name in a report, it’s going to come up and say, here’s the competency that was associated with it. Otherwise, the only other alternative is to send you off to the ADL server, and you’re going to see what is the definition of course. That’s one of the drawbacks so far, but it’s not a drawback with the specification. It’s simply a drawback with the application of the specification. What I’ve done in LifterLMS as far as I’m concerned is best practice where I’ve directly linked the competency to the learning object.
Chris Badgett: Nice job solving that problem.
Dennis Hall: Yeah, I’ve been, by the way, also given you the ability to rename that experienced item. You can rename it to whatever you want. Dennis Hall jumped off a cliff. Done. As long as you have a learning object called a cliff, and you have a competency saying well I guess he died, whatever the case be. You can put whatever you want, and you can put it in any language you want.
That’s another key thing is the Experience API out-of-box, although the verbs are very flexible, if you use it directly out-of-box you have to assign a language to it. As you know, in WordPress you can have multi-lingual sites, so in that particular case you can actually create a new course in LifterLMS, and you can map new lessons to it in the different languages, and use those same competencies in different languages, because WordPress can serve competencies separately in different languages.
Chris Badgett: Awesome.
Dennis Hall: The course itself may have to, the lesson may have to get redone, but the competency can be translated in WordPress, dynamically.
Chris Badgett: That’s awesome. We’re still not even half way through it.
Dennis Hall: No.
Chris Badgett: That’s amazing, and LifterLMS xAPI does a lot. It opens up the door to a lot of avenues. That reporting piece, and the customized view of that is really incredible, and matters to people who want really advanced reporting, and a focus on this type of competency-based learning.
Dennis Hall: That’s it. Competency-based learning is evidentiary learning. That’s what’s really most important about it. If you want your course to be meaningful, and you want to be able to prove that it’s meaningful, set this up, use competencies. They become the documentation to prove the skills, the knowledge, and the ability of the user.
Chris Badgett: I like that.
Dennis Hall: Another thing, earlier I had forgotten my train of thought. I did want to make mention, one of the specifications with xAPI is that the learner owns their data. What’s important to understand about this is that everything I do in a LifterLMS Learning Management System, the administrator at the moment of the system has to be able to export my information out, specifically. Now, it’s all fine that you see Dennis Hall experienced eLearning. That’s not very useful information to a human resources person receiving your XML file, which by the way would be filled with hyperlinks back to the original content, and back to the competency.
LifterLMS is now the only Learning Management System that’s WordPress based that supports CASS competency analysis. What’s really important to understand about this is that when Dennis Hall, or Chris, basically quit their job and say, hey HR give me my learning records, when HR gives them their learning records in an Excel spreadsheet, now Dennis Hall takes this to the new company and basically says, oh you want to know what my competencies are. Here they are, in my Excel spreadsheet. Please import them into your system, so that my human resources information can be updated properly.
It’s actually a key takeaway, and the reason for this is because the U.S. military has this guidance, or this push going on, so that when their people leave the military, they get equivalencies, or college credits, if you wish, and those have to be applicable so you can be …
Chris Badgett: So their records are portable.
Dennis Hall: That’s correct. In fact, with xAPI that’s the rule, not an option. It’s the rule. The owner owns their data. Now, in this particular version of LifterLMS xAPI I don’t have a front-end data export, so the learner won’t be able to get their own data, so for now they’ll have to ask the administrator. However, I do have a number of planned releases in the future with LifterLMS xAPI, and one of those planned releases are to have front-end shortcodes so the user can get their own data, leaderboards, this sort of thing.
Chris Badgett: That’s awesome. LifterLMS xAPI also introduces the ability to work with H5P content. I’ve been aware of H5P for a couple years now, and my understanding of it is it’s an open source project where you can create these incredibly rich web based, interactive things. It’s very visual. The place I’m drawn to when I think about it is using it for some quizzing, like with really advanced graphics, and non-linear learning situations where you can end up in all kinds of different places. Tell us more about what H5P is in your experience, and how it works with LifterLMS xAPI.
Dennis Hall: Yeah, not a problem. First off, H5P is a non-SCORM, I would put. It is xAPI only, or nothing. You can already use H5P content in LifterLMS, but it’s not going to report anything if you use the content alone. However, what I’ve done with LifterLMS xAPI is I’ve packed, and even preconfigured your H5P xAPI connector in my plugin. When you install my plugin, it’s an optional install of their H5P plugin, but when you install their H5P plugin from mine, I actually preconfigure everything for you so you have nothing to setup. You just install it and you’re done. It works out of the box. Beyond that, as well, I also have a lightbox plugin which I’ll explain later.
The H5P content itself, what H5P Content is, and that’s the name of their plugin, by the way H5P Content. Pretty straightforward. I don’t package that plugin with mine. I only package the connector, and you can actually just do a search in the WordPress plugins directory. In your plugins page you would simply click add new. You’d be immediately taken to the WordPress repository or plugins. You would do a search for H5P. In searching for it the first thing that comes up is H5P Content. You’ll install it. Once you install it you then have a bunch of libraries available, and the libraries, there’s about somewhere in the area of 50 or 60 different libraries that they carry.
Each library is a type of interaction that you can do with H5P products. The content type products that they present you with, there’s tons. There’s image, do hotspots over images, do drag and drop over images, do hotspots over videos, do drag and drop over videos. Basically you can get the idea that the object would be the video, or the image, and the interaction they provide you might be drag and drop, hotspot, multiple choice, pick one, you name it. There’s just tons and tons of different ones. They create very rich interactive content to be used in a LifterLMS course, lesson, quiz, or question, just like my LifterLMS xAPI connects to.
In doing this, when you use LifterLMS xAPI, once you create that content and those interactions using H5P, which is a very simple, intuitive interface, by the way. Actually I drool over it. It’s a beautiful, beautiful product. Once you’ve created that, and it’s in your course, lesson, quiz, or question, it will automatically just start communicating xAPI. With my LifterLMS xAPI, at that point you have a couple of choices. You can turn on or off every single course, lesson, quiz, or question in LifterLMS. You can turn off the xAPI reporting.
Let’s say that I have an H5P content sitting on my course page of LifterLMS for course one, I may only want to report the H5P content, so at that point I simply would turn off the xAPI for the course, but the H5P content will still travel.
Chris Badgett: Report.
Dennis Hall: It will still report. Same thing can happen later on, I’ll explain, with eLearning. Let’s say lesson one in the course has a bunch of learning objectives, and such, and it has no other content. It’s pure LifterLMS content. I may want to turn on xAPI reporting for that, and assign a competency to that as well.
Chris Badgett: You can mix and match.
Dennis Hall: Absolutely. In lesson one, for example, I can turn on xAPI reporting for that, assign a competency to it, as well as apply my own custom verb within the content of lesson one. I can embed an H5P interaction, and I can embed as many eLearning interactions as I wish.
Chris Badgett: That’s awesome. Let’s get into eLearning a little bit, because I think this is kind of confusing for some people. LifterLMS, without all of this, you’re working with lessons, which are kind of like WordPress posts. You can put videos in there. You can embed Vimeo videos, Wistia videos, Youtube videos, you can put text, images, whatever you can think of that you can put on a regular webpage, you can put in a LifterLMS lesson.
Dennis Hall: Correct.
Chris Badgett: In the eLearning community, there are some different types of tools out there, and one of the things that I find, just as being a member of the community is there are these people called instructional designers out there, and a lot of them, they’re coming to WordPress, and LifterLMS later, they’re more focused on building eLearning with authoring tools like Articulate, Captive, Lectora, these tools.
What you’ve done is, if somebody builds an eLearning module, which we’ll go over in a little bit, and they want to stick that in a course, or stick that in a lesson, or stick that in a quiz, you can also mix and match with that as well, or have that be the entire course, is this other content, and it’s going to talk through the xAPI. Can you give us a lightening fast tour Dennis of eLearning authoring tools, and how they integrate with LifterLMS xAPI?
Dennis Hall: Yes, the key being xAPI. That is the point of integration. With LifterLMS what I’ve done is I’ve created a form that allows you to either upload your xAPI published, or your Tin Can published eLearning project.
Chris Badgett: You can upload that directly to your WordPress website.
Dennis Hall: That’s correct. You can upload it directly to your WordPress website, or if you wish to run it off a different web server, you can link to it from your website. There’s advantages to doing it either way. For example, if your LifterLMS website, if you want to keep it light and airy, so light and speedy, and fast, and quick for everyone, that’s one of the reasons why I offshore the database, so to speak. I don’t mean offshore literally. I mane that’s why the database isn’t sitting in LifterLMS.
Chris Badgett: The LRS is somewhere else.
Dennis Hall: That’s right. That’s because if we start piling 9,000 records a day into LifterLMS, you’re going to need a bigger server real soon. It is best practice to use a surrogate server for that. I create that service. eLearning, in LifterLMS, excuse me, you have the ability to turn on or turn off reporting of anything that you want granularly. In eLearning you don’t have that choice, unfortunately. What’s going to happen is, as an example in Storyline, hitting page one of your course, it’s going to send two records. The first record saying the course was entered. The second record saying the start page was entered.
You’re going to get a ton of data whether you want it or not, and unfortunately we don’t have control over the way those companies have developed their product. Not without becoming a programmer, and going in and programmatically adding or removing things. We don’t want that, do we? What we want is we want a person to simply upload their course and get it done, the end. In Lifter I give you the granular ability, but in those courses we can’t do that. What you can do is, you can at least turn off your Lifter reporting for that particular course, lesson, quiz, or question that you’ve uploaded a eLearning course into.
The operation of uploading a course is one thing. What’s really cool about the way I’ve done this, by the way, I do smart disk management for the courses. If you upload a course called my favorite course one into LifterLMS, I put it in your uploads folder, in a specific folder called courses, and I always watch that folder. If you later come and update my favorite course one, and call it my favorite course two, what’s going to happen is when you go in to update the course, I’m going to remove all the files, and the folder from my favorite course one, and replace that for my favorite course two, because you’re updating. If you add a new one you can call the new one my favorite course one again if you want.
Then when you delete a course, I delete the course for you as well. You have nothing to do behind the scenes. Everything is done within the update panel, or the update forum. In that forum as well, again future versions, I am going to allow you to remap your course, each course item to a competency in LifterLMS, because today, again, based after the same problem I explained earlier, where as soon as you click the name of that item that was int he course, it’s going to send you off to an ADL page saying a page was viewed. Dennis experienced a page, and it’ll give you this definition of what a page is. Again, I’m going to allow people to remap their uploaded courses to valid competencies within Lifter.
Chris Badgett: That’s awesome. For the uninitiated out there, who hasn’t yet used, Articulate, Storyline, Captivate, Lectora, these types of tools, what can you do with them that you can’t necessarily do like on a LifterLMS lesson WordPress page where you might insert video and text, and audio embeds, and thing like that? What can you do with these tools?
Dennis Hall: Good question. Sorry, I should have respected that question earlier. I did not. Basically, the various Articulate products that are available, the Captivate, and Lectora products that are available today, for the most part what they’re giving you is everyone’s giving you a fairly standardized xAPI output. What they’re doing for you as a courseware developer, they allow you to do things like import PowerPoint, which everybody actually really hates in the industry, but PowerPoint is an important tool to develop with speed the subject matter expert.
However, they allow you to create rich, interactive content, rich interactive media content within a eLearning environment, or a online course environment. Once you’ve created the product that you want, which is your eLearning course, you then publish that from that product as a Tin Can, or xAPI package. Those products then zip that up for you, and put it into a proper format for you to upload into your Learning Management System.
Chris Badgett: That’s awesome. You told me about, and you showed me a feature that was really incredible, that I just want to make sure that the listeners and the viewers here understand. Let’s say I’m building my course platform, and I actually want to bring in courses from somewhere else.
Dennis Hall: That’s a good question.
Chris Badgett: Maybe I work out a licensing deal with them.
Dennis Hall: Yeah.
Chris Badgett: My understanding is I can be on my LifterLMS site, but serving up courses from somewhere else through the xAPI, and that somewhere else is somewhere that I don’t own, but it’s somebody who either gave me permission, or-
Dennis Hall: That’s right.
Chris Badgett: I’m paying a licensing fee to. Can you tell me how that works, and what that’s all about?
Dennis Hall: Sure, yeah. I did briefly mention that earlier when I talked about uploading courses to a different server. Essentially, in that same upload forum that I was just describing, when you create a new course, or you update a course, let’s say that you had a course locally on your server, you can actually delete that course, and in that same forum you can link the same course title to a course out on a remote server. There’s only two pieces of information that you need to be able to link a remote course.
Information number one is what is the URL to the start page of that course. It’s going to be out on http://www.domain.com/path/two/index.html, for example. That might be the start file of your course that somebody else is allowing you to use, or rent, or whatever it be. After that they need to give you another piece of information, and that is what is the starting activity ID, or the starting ADL activity URL for that. It might be http://adl.net/path/twocourse. Those are the only two pieces of information you need to link to a remote course. Beyond that you’ll have a title that you’ll put in. That title will be reflected in LifterLMS.
After that you’re done. You now have all the foundations set for running local and remote courses such as the old AICC model, that allow you to do this, to use those courses. To use the courses in LifterLMS xAPI, that’s a separate function. What I’ve done is I’ve built in the LifterLMS editor, the course, lesson, quiz, and question editor that is in LifterLMS. By the way, as well as the membership, and non-membership editor, it also has this. No, disregard. It does not. No. It’s only courses, lessons, quizzes, and questions.
In your editor I’ve added a new button to your editor’s button bar, a button called xAPI with square brackets around it. The square brackets denote a shortcode in WordPress. I’ve created a visual button builder that allows you to use images for your buttons. You can even use a combination of image backgrounds, and have borders and such, and reshape the images to circles, or rounded rectangles, or whatever you wish, or you can just color your buttons, and make them look exactly like the Lifter buttons if you wish, as well.
No matter how you do it, you have the ability to create a custom button to launch your eLearning course from a course, lesson, quiz, or question. You would do that by selecting in a dropdown menu the eLearning course title that you’ve given your course. Then you would configure your button, you could click insert, and boom you’ve got a button in your course to launch the eLearning. That brings up that other plugin, the lightbox plugin.
By default, and this is not just with my plugin, it’s with any scenario in WordPress. If you have an external HTML file that you’re pointing to, like in WordPress, if you click on a link it might open up and replace your website, or it might open up in a new window or tab. In Lifter, the way I’ve done it with these if you use the lightbox plugin, it will open up your eLearning course in a lightbox. Now a lightbox is that kind of grey shadowy, that grey border around an HTML cage that you see. Basically you would interact with your course within that lightbox plugin, or within that lightbox.
If you are going to use eLearning, I highly recommend using activating the lightbox plugin that I supply as well, and that is simply so that if you don’t activate it your courses will open up in a new tab or window automatically. The drawback of doing that is that the users will no longer be focused on the content that they launched that product from. If you’ve got, let’s say lesson one has some really important information. Then it tells you watch this tutorial, because it doesn’t have to be a course, right? It can be a tutorial that’s done in Storyline or something, or a video, or whatever, so watch this tutorial about what you just read, or watch this demonstration.
Then you watch that, and you close it, and then you continue reading, and it says, here’s another demonstration on another aspect of what I’ve read as well. You have multiple eLearning inside that content, and that will all open up in lightboxes, and keep you in the content so when you close the lightbox you haven’t lost your place.
Chris Badgett: That’s incredible. Yeah, and that’s definitely the better user experience to just-
Dennis Hall: Absolutely.
Chris Badgett: Fade the background, and give them what they want, and then when that’s done they’re back where they started.
Dennis Hall: No, they’re back to where they left off.
Chris Badgett: Where they left off, yeah. Just to reiterate your point, because I think it’s a really important one, Dennis, is that when we use this word eLearning, or course, that we’re making with these other authoring tools, those don’t necessarily have to be complete end-to-end courses. They could be just one lesson in your LifterLMS course, or they could even be part of a lesson, like you said.
Dennis Hall: Absolutely.
Chris Badgett: You might have a video on your LifterLMS lessons and text, and then you say click this button, and now you’re bringing in this eLearning content that you have either hosted locally or elsewhere, or whatever. It’s amazing. What you’ve done is you’ve opened up the door to craft really intricate learning journeys.
Dennis Hall: Yes, absolutely.
Chris Badgett: With the best tools available out there.
Dennis Hall: Yes. If I may add, by the way, you’ve said something really, really important there. You can break up your eLearning courses. It’s not uncommon, actually, to have an eLearning module that focuses on one learning objective, and has one competency related. Which, by the way, if you do it that way in LifterLMS xAPI, I give you the ability already to remap that default adl.net/path/two/course to one of your competencies already. If you do a single learning objective eLearning, so if you upload or link a single learning objective eLearning, you can already map that eLearning to a competency built in LifterLMS.
Chris Badgett: That’s really amazing.
Dennis Hall: Yeah, so you can already do it. What I plan in the future is that if you have multiple modules, or multiple pages within the eLearning that are reporting xAPI data, in the future you’ll be able to remap all of them to competencies. Because again, the biggest problem the eLearning vendors have is that they don’t map you to anything that actually is meaningful.
Chris Badgett: That’s awesome. Nice job. You’ve solved so many problems, and provided so many integrations, and additional features. It’s really incredible. I know, like when I was first learning about how all this stuff works I had a lot of questions. If you’re listening to this, or you’re watching this, and you want to reach out directly with a question, just go to LifterLMS.com/contact, and we’ll get you your answer there. Also, if you invest in the product, we’re hosting this product that Dennis has made, and the LifterLMS store, and it uses our support system, so if you are using LifterLMS, and it sounds like LifterLMS xAPI is a fit for you, and what you’re trying to do, or you want to try it out and see what you can make with it, we can support you in all the normal ways that you’re used to being supported through the LifterLMS systems, and that sort of thing.
We’re really honored, Dennis, to have you, and LifterLMS xAPI in our store, your decades of experience, and all this knowledge, and seeing the journey of eLearning, and being a developer, and being an instructional designer yourself, and doing client work, you have a really unique insight into creating really effecting Learning Management Systems. Again, we’re honored to have you as part of the LifterLMS community, and thank you so much for coming on the show.
Dennis Hall: Thanks a lot, Chris. Honestly, back at you on that as well. The one thing I’ve found with your team is that you guys are awesome to work with. I really, really appreciate the support that you’ve given me, but as well the support that I see you give to your community. You guys love your community and it shows. It shows big time.
Chris Badgett: I appreciate that. Thank you very much. Dennis Hall, ladies and gentlemen, Learning Templates, and then come find out more about LifterLMS xAPI at LifterLMS.com.

Share This Episode

Know Your Value

Discover how much you can charge (no opt in required).

Stop Wasting Time Researching Tech

WordPress LMS Buyer's Guide Download Cover Images

Get FREE access to the official WordPress LMS Buyer’s Guide

Get the Best LMS Software Now

Get FREE instant access to the most powerful customizable LMS software

Create and Launch an Online Course with WordPress

Discover how to launch your online course website in 20 minutes.

WordPress LMS Growth Engine

5 secrets to create, launch, and scale your high value online training program website.

Try LifterLMS Before You Buy

Discover the world’s most powerful flexible learning management system (LMS) for WordPress.