6 min reading time

Getting SCORM Content into Your LMS

Creating and exporting a great SCORM compliant course with an authoring tool is one skill. But adding it to your LMS is another. To ensure the process goes seamlessly (and you don’t pull your hair out due to a simple error), we’re going to walk you through the process of getting your SCORM content into your LMS.

After you export your SCORM file

We’ve written in the past about how to use SCORM compliant authoring tools. It outlines everything, including exporting your SCORM file. But what happens next?

When you export your course to a SCORM format, two important things occur:

1. Your authoring tool creates a SCORM zip file. That zip contains all of the media files that enable learners to view and navigate your course online, including text, imagery, video, CSS, and quiz content. If your authoring tool has done its job correctly, the contents of the zip will be neatly separated into folders and files that reflect the content of your course.

2. While you now have a zip file, two things in particular define it as a ‘SCORM’ zip:

  • Inside the zip is a file called imsmanifest.xml. This manifest file specifies the contents of the zip. For example, an aircraft’s manifest file would detail the names of passengers, where they’re seated in the aircraft, the weight of the cargo in the hold, and a wealth of other information about the aircraft and its “contents”. The imsmanifest.xml serves a similar purpose – it details the contents of the zip package – but we’ll get into the nitty gritty of why that matters later on.
  • Your authoring tool will also have included files that it didn’t create that are SCORM specific. These are called the SCORM API communications and logic files, they’re at the heart of why the package can be defined as a SCORM course. These files allow your course to communicate with a SCORM compliant LMS that understands the same SCORM protocols.

Here’s a screenshot of typical zip contents that have been opened for viewing:

Day 3. Getting SCORM content into your LMS

Three takeaways from this screenshot:

1. The screenshot shows the imsmanifest.xml file sitting in the root of the SCORM package zip.

2. This is an accurate but simple example of the folders and structure of a SCORM zip. Complex courses could contain many folders and additional folders within this hierarchy.

3. In this simple example of a SCORM course, the screenshot shows the contents of a “Playing” folder – marked 2 in the screenshot. As you can see, there’s nothing particularly ‘SCORM’ about it. It’s just a folder containing html, images, and javascript files, which means it contains online content that can play in a browser to be viewed by learners. As those with experience of SCORM and the Rustici Golf course will know, the “shared” folder contains all the SCORM API magic that allows the course to communicate with an LMS when it’s launched. The imsmanifest.xml coupled with that “SCORM API magic” is what makes this zip a SCORM package. You can download the zip file for this sample course here and explore as you need. This particular SCORM package was copied from the Rustici Golf example you can find here. And you can explore a number of other examples here.

The manifest

Remember that the zip file contains an imsmanifest.xml file. One important point to note is that the manifest must exist in the root of the zip file, and nowhere else. When your LMS tries to import SCORM content, it will look for the manifest in the root of the zip file. If the manifest isn’t there, the file goes against SCORM specifications. That can cause a lot of confusion for SCORM creators as an LMS won’t import the zip files.

As the imsmanifest.xml name suggests, the file is in XML format. The XML file will look something like the example below. The file contains key information for your LMS to interpret. While we’ll discuss some of these now, it’s worth noting that this is a basic example. It contains just a single module and enough sample files to illustrate our discussion points. In reality, a course could contain hundreds of entries in the manifest.

SCORM course content and your LMS

Six takeaways about the manifest:

1. Schema: The manifest should contain this information to record which “SCORM schema” is being used. This will typically be ADL SCORM.

2. Schemaversion: This tells us which version of the SCORM specification the course is compliant with. In this example, the relevant version is 1.2 but the schemaversion could also specify 2004 2nd Edition, 2004 3rd Edition, or another edition.

3. Items: These are effectively the modules for your SCORM. While SCORMs can contain multiple modules, one is most common. In the above example, I’ve drawn an arrow from point 3 to point 6 to illustrate the importance of the indentifierref. In this case, “launch_page” links to a resource. In other words, the item has a resource, which is linked to by the id launch_page. That resource defines what type of item it is and where the content for the module is located. I’ll describe that in detail a little later.

4. Title: This defines the title of the module. In our example, that’s “LearnUpon – SCORM Series, Day 3”. In real world examples, you’ll often encounter multiple items, each with their own titles.

5. MasteryScore: This element defines a passing score for the module. If your module includes a quiz, you may have set a passing score – but not every SCORM course includes a quiz and not every quiz has a passing score. Knowledge checks and practice quizzes typically won’t have a masteryscore, for example.

6. Resource: One important type of resource (as explained in point 3) is a “sco”, defined by the attribute adlcp:scormtype. A “sco” is what’s called a launchable resource. That means it’s a module learners can launch, view and complete in a browser. You’ll note that this resource has an href attribute, of “module1/start.html”. That tells your LMS – “When a learner launches this module, open the page module1/start.html for them”. In other words, it’s how the starting page of your module is defined.

What could go wrong with your SCORM file?

While a manifest file looks simple once you break it down into its various parts, things do go wrong. Common issues include:

1. Some authoring tools don’t “XML Escape” files correctly. If your course title contains a symbol like “&”, that can cause breakages in some authoring tools, especially in older versions.

2. The manifest doesn’t state the SCORM version. For example, the manifest might specify a SCORM 2004 course, while your LMS reads the content as a 1.2. Or the manifest could define a SCORM 1.2 course and your LMS might not support that version of the specification. That’s why it’s essential to ask your LMS provider which versions of the SCORM specification they support before exporting course content to a SCORM package.

3. If your course has no adlcp:scormtype defined, then your LMS can’t determine which page to launch, as your course has no starting point.

4. If your course includes a quiz but has no mastery score defined, then the pass/fail determination can also break. (You can read more about that here).

5. One serious issue could be that your zip file doesn’t have a manifest. Or the manifest may be located somewhere outside of the root, possibly embedded deep in the zip file or located in a folder a level deeper into the zip.

Importing SCORM content to an LMS

While importing SCORM content is often a laborious process, it should be simple. To import a SCORM course into your LMS, you will usually:

1. Upload the SCORM zip file, via your browser or LMS administrator UI. For example, to add a SCORM module to a course in LearnUpon, you simply click a button.

2. Your LMS will then attempt to find the manifest file and import its contents, preparing it for use by learners. A good LMS will attempt to validate the manifest and flag potential issues. For example, if no manifest file was found, the LMS would notify you of the specific issue rather than saying something vague like: “Failed to upload your file, please contact your administrator.”.

How to Publish SCORM Content with Elucidat

And that’s it! Have you uploaded a SCORM file to your LMS before? Did you have any issues? Let us know about your experiences in the comments below.


  • Marc Jansen

    I have used a zip-file in combination with our LMS. It seems that it shows only a very small part of the total package. I try to find out what is the problem and I get the impression that is a programming issue. Can I analyse that package on possible fails? Kind regards and thanks for the reply in advance. Marc Jansen

    1 reply 2016-09-19 10:35:12
    • Des

      Hi Marc, I hope you are keeping well and thank you for reaching out to us! Your LMS might have some diagnostic tools to help you on the issues. For example does it have a SCORM Debugger or do you get any warnings when you import the zip file? However, if your LMS does not have such tools, you can also consider the browser tools to help. Try the following maybe; 1. Login to your LMS via the Chrome browser. 2. Turn on the Developer Console (we want to see if any errors are in there once you launch the course, don't worry, we won't get you to code anything! :-) ). To turn that on, you can try one of the following steps:

      • Use the keyboard shortcuts. On Windows and Linux: Ctrl + Shift + J. On Mac: Cmd + Option + J.
      • Select the Chrome Menu icon, menu -> More Tools -> JavaScript Console / Developer Tools. Or if the Chrome Developer Tools are already open, press the 'Console' tab.
      3. Refresh the page you are on, to ensure that the console is fully loaded first. 4. Now launch your course and let it load up. If you have any errors on the course (e.g. tracking issues, failing to load resources etc.) then you'll most likely see some errors in the console that you can share with the content vendor to comment on. I hope this helps, let us know how you get on! I'd be interested to hear if any of that does shed some light on the matter for you. Best, Des.

  • Phillip B

    Hi there! I'm trying to upload a SCORM compliant file to a site called Teachable. Teachable isn't a traditional LMS and doesn't offer API access, so it's essentially a site builder like Squarespace. I don't know much about how SCORM works, and I wonder if you know whether it should be possible to embed a SCORM compliant course just using Squarespace or Teachable? Or does there have to be a traditional LMS behind all of it powering the course? Thank you so much for any information you can provide!

    1 reply 2019-09-05 10:00:27
    • Emma

      Hi Philip, Thanks for the question. I’d suggest reaching out to your Teachable and asking them about the specifics…. just in case this information is out of date: The last time I checked Teachable didn’t support standard eLearning file types like SCORM or xAPI. Courses have to be created with Teachable’s own course building tools. That rules out the ability to use a dedicated authoring tool unfortunately. To deliver SCORM content effectively you need a SCORM compliant LMS … like LearnUpon. But the question is: do you need to use SCORM? SCORM compliance usually helps to ensure training reporting is air tight. It provides you with an audit trail so that you can prove who completed training. If you are training private individuals this may not matter as much. What’s the main reason for using SCORM? Design or reporting?

  • Kricket

    This was very helpful. I haven't had the opportunity to learn any of this before as we are new the the SCORM/LMS world. Thank you for providing common errors. Hopefully, LearnUpon also has a handy post on xAPI as I'm really interested in incorporating that into our learning universe, too!

    1 reply 2020-03-19 16:00:57
    • Emma

      Hi Kricket, I'm glad you found this post helpful! We actually have a few posts on xAPI. Here is an intro to xAPI and here is a post explaining the benefits of xAPI. I hope you find them helpful too.





thank you image

Thank you!

Your comment is waiting for approval.

Related posts