> ## Documentation Index
> Fetch the complete documentation index at: https://faq.exode.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# SCORM packages

> How to upload a ready-made SCORM, xAPI or cmi5 course into a lesson, set a completion threshold and see employees' results

If you already have e-learning courses built in iSpring or another authoring tool, you do not need to
rebuild them. Export the course as a SCORM package in a `.zip` archive and upload it to an Exode lesson. The employee
takes it right in the lesson, and Exode saves the progress, score and quiz result.

SCORM packages work the same way in a company and in an online school. The SCORM block is one of the lesson content blocks,
see [Lesson content](https://faq.exode.biz/en/general/lessons-modules/content.md).

## Supported packages

| Standard | Descriptor file in the archive |
| - | - |
| SCORM 1.2 | `imsmanifest.xml` |
| SCORM 2004 | `imsmanifest.xml` |
| Tin Can (xAPI) | `tincan.xml` |
| cmi5 | `cmi5.xml` |

A package is uploaded as a single `.zip` archive. The descriptor file from the table must be in the root of the archive: Exode
uses it to find which page to open. Without it, the package does not start. If the archive contains a folder with the
package inside, repack it so that the descriptor file is at the top level.

## How to upload a package

**1. Open the lesson**

Open the course, go to **Content** and open the lesson you need in the editor.

**2. Add a SCORM block**

Add the **SCORM** block: “Uploading and launching a SCORM package (.zip)”.

**3. Upload the archive**

Click **Upload SCORM package** and choose the `.zip` file.

**4. Wait for processing**

Exode unpacks the archive. During processing, you see the progress “Processing SCORM... N%”, and the lesson shows “Presentation
is being processed”. When processing is finished, the package is ready to launch.

To upload a new version, click **Replace SCORM package** in the same block. One lesson can have
several SCORM blocks.

## How an employee takes a package

* In the lesson, the package looks like a “Presentation” card with the **Start learning** or **Continue
  learning** button and a **Progress** bar.
* You can expand the package to full screen with the **Expand** button and return with the **Exit fullscreen** button.
* **Resume where you left off.** If the package is closed halfway, it continues from the same place at the next launch,
  including on another device. The resume point is kept for 90 days.
* **Best result.** The status and completion percentage only go up, and the best score is kept.
  Taking an already completed package again counts as a new attempt and does not spoil the result.

### Completion statuses

| Status | What it means |
| - | - |
| **Not started** | The employee has not opened the package yet |
| **In progress** | The package is open but not finished |
| **Completed** | The package has been viewed to the end |
| **Passed** | The quiz in the package is passed |
| **Failed** | The quiz in the package is failed |

If the package does not report a completion percentage, Exode counts it this way: “Completed” and “Passed” are 100%, any
other status is 0%.

## Lesson completion conditions

If a lesson has a SCORM block, the lesson settings get the **SCORM settings** section.

| Setting | What it does |
| - | - |
| **SCORM completion threshold** | The employee cannot move to the next lesson until they complete the SCORM to the set percentage, from 1 to 100. If the lesson has several packages, the threshold is checked for each one |
| **Require passing the SCORM quiz** | The employee cannot move to the next lesson if the quiz in the package is failed. A package without a quiz and a successfully passed quiz pass the check |

If the condition is not met, the employee sees “Presentation completion required” with the number of
unfinished presentations and the required percentage, or “Quiz failed”.

> [!NOTE]
>
> The threshold does not get in the way if the package is not processed yet or processing failed: such blocks are not counted, so that
> the employee does not get stuck in the lesson.

## Where to see the results

Open the user card, the **Learning** tab, choose the course and open **Progress**. For each
SCORM package you see:

| Metric | What it shows |
| - | - |
| **Status** | The current SCORM completion status |
| **Score** and **Threshold N%** | The points scored and the passing threshold from the package |
| **Questions** | Correct answers out of the total number of questions |
| **Attempt** | The attempt number |
| **Duration** | Time spent in the package |

Learn more about the card in [User card](https://faq.exode.biz/en/general/users/user-card.md).

## Frequently asked questions

> **The package uploaded, but the lesson shows “Failed to process the presentation”. What should I do?**
>
> The archive did not pass the check: it is not a supported package, it has no valid descriptor file, or the archive
> exceeds the limits on size and number of files. Export the course from the authoring tool as SCORM, xAPI or
> cmi5 in `.zip` format and upload it again with the **Replace SCORM package** button.

> **An employee sees “Failed to launch the presentation”**
>
> The package was unpacked but did not open. A common reason is that the archive has no package descriptor file or it is not in the
> root of the archive. Re-export the course as SCORM, xAPI or cmi5 and replace the package. If the package is valid,
> ask the employee to refresh the page.

> **An employee completed the package but cannot move to the next lesson**
>
> The lesson settings have a completion threshold or a requirement to pass the quiz. Check the status and percentage in the
> user card. The quiz may be failed or the package not completed to the end.

> **Is progress saved if an employee continues on a phone?**
>
> Yes. The resume point is saved on the server and is available from any device for 90 days.

> **An employee retook the quiz and did worse. Which result stays?**
>
> The best one. The status and progress do not go down, and the highest score is kept.

> **Can I upload several packages into one lesson?**
>
> Yes. Each package is a separate block. The lesson completion threshold is checked for each package separately.

> **Is there a separate import of a whole course from SCORM?**
>
> No. A SCORM package is added as a lesson block. If you have several packages, create a course and spread them across
> lessons.

***

*Updated: 2026-10-15 18:32 UTC*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.