CLIP LearnDocs 1.0
For trainers

SCORM content

Import SCORM 1.2 e-learning packages, share them with learners, and track completion in CLIP Learn.

CLIP Learn can host third-party e-learning packages built to the SCORM 1.2 standard. You upload the package as a .zip, CLIP unpacks it, serves it inside a player, and records each learner's completion status, score and resume data. This page covers importing a package, what is and isn't supported, how learners launch it, and how to delete one.

The SCORM area lives at Teaching → SCORM in the trainer navigation (/faculty/scorm). Only Faculty and Admin roles can open it; everything on the page is scoped to your own client/tenant, so you only ever see your organisation's packages.

What SCORM support does and doesn't include

CLIP Learn implements a deliberately small slice of SCORM. Knowing the boundaries up front saves surprises.

SCORM 1.2 only

Only SCORM 1.2 packages are supported. SCORM 2004, xAPI (Tin Can), cmi5 and AICC packages are not recognised — a 2004 package may still import if it contains an imsmanifest.xml, but only the 1.2 runtime calls (window.API, the LMS* methods) are provided, so 2004 content that expects the API_1484_11 object will not track.

CapabilitySupported?Detail
Package formatYesA single .zip containing imsmanifest.xml
Maximum upload sizeYes100 MB per package
Multiple SCOs / navigation treeNoOnly the first launchable resource is used as the entry point
Completion statusYescmi.core.lesson_status is stored per learner
ScoreYescmi.core.score.raw, stored as a whole number 0–100
Resume / bookmarkingYescmi.suspend_data is stored (up to 60,000 characters) and replayed on return
Real learner name / id passed to contentNoThe runtime always reports student_id = learner and student_name = Learner
Other cmi.* values (interactions, objectives, time, etc.)PartialContent can read and write them during a session, but only status, score and suspend data are saved — everything else is lost when the tab closes

The three tracked values

Every learner has at most one attempt record per package (it is updated in place, not appended), holding:

FieldSCORM elementWhat it storesLimits / defaults
Statuscmi.core.lesson_statusCompletion state reported by the content, e.g. completed, passed, failed, incompleteFree text, truncated to 40 characters. Defaults to not attempted
Scorecmi.core.score.rawThe raw score the content reportsRounded to a whole number and clamped to the range 0100; blank if the content never sets a score
Suspend datacmi.suspend_dataThe content's own bookmark/state blob, used to resume where the learner left offTruncated to 60,000 characters

Importing a SCORM package

Go to Teaching → SCORM (/faculty/scorm).
Click Import SCORM package (.zip). Your browser's file picker opens, filtered to .zip files.
Choose the package. The button changes to Importing… while CLIP uploads and unpacks it — leave the page open until it finishes.
On success a confirmation appears (Imported "…") with the detected title, and the new package appears in the list below. On failure a red-flag error message explains why (see the table below).

What happens during import

When you upload, CLIP Learn:

  1. Rejects the file immediately if the declared size exceeds 100 MB.
  2. Opens the .zip and looks for an imsmanifest.xml anywhere inside it. If none is found the file is rejected as "not a SCORM package".
  3. Extracts every file to private storage under a new random package folder. If the manifest sits in a sub-folder of the zip, that sub-folder becomes the package root and files outside it are ignored. Entries with .. in their path, or absolute paths, are skipped as a safety measure.
  4. Reads two things from the manifest:
    • Title — the text of the first <title> element. If the manifest has no usable title, the zip's filename (minus .zip) is used. Truncated to 200 characters.
    • Launch file — the href of the first <resource> element. If none is present it falls back to index.html. A leading ./ or / is stripped. Truncated to 500 characters.

The title is taken from the manifest, not chosen by you

There is no field to type a name during import. The package title comes straight from the SCORM manifest's <title> (or the zip filename as a fallback). If you want a specific name in the list, set it in the authoring tool before you export, or rename the .zip file itself before uploading.

Import errors and what they mean

MessageHTTP statusCauseFix
package too large (max 100 MB)413The upload exceeds the 100 MB ceilingReduce media size / split content, or compress before export
no file400The request reached the server without a file attachedRe-select the file and try again
not a valid .zip400The file could not be opened as a zip archiveConfirm it is a real SCORM .zip, not a renamed folder or a corrupt download
not a SCORM package (no imsmanifest.xml)422The zip contains no imsmanifest.xmlExport as SCORM 1.2 from your authoring tool; the manifest must be inside the zip
Forbidden403You are not signed in as Faculty or AdminSign in with a trainer/admin account
no tenant400Your session isn't attached to a client/tenantRe-open the app from the correct client context
Import failed.A network interruption or unexpected server errorRetry; if it persists, check the file size and connection

The package list

Below the import button, packages are listed newest first. Each row shows:

ElementWhat it shows
TitleThe detected package title
N learner attempt(s)How many distinct learners have an attempt record for this package
PreviewOpens the package in the learner player (see below) so you can check it before sharing
Trash iconDeletes the package (with confirmation)

If you haven't imported anything yet, the list shows: "No packages imported yet — use the importer above to add your first SCORM package."

How learners launch a package

A SCORM package plays at /app/scorm/<packageId>. The Preview button on the trainer page opens exactly this URL, and it is the same player learners use.

There is no learner-facing SCORM catalogue

CLIP does not automatically list imported SCORM packages anywhere in the learner dashboard. To put a package in front of learners you share its link (the /app/scorm/… URL) — for example from a lesson, an announcement, or a message. Without a link, learners have no built-in way to discover it.

Who can open a package

SituationWho can launch
Package with no course link (the default)Any signed-in user in the same client/tenant
Package linked to a courseFaculty/Admin always; a Candidate must be enrolled in that course, otherwise the page returns "not found"

The course link is an optional association stored on the package. In the current importer there is no field to set it, so packages you import from this screen are not tied to a course, meaning any signed-in tenant user with the link can open them.

What the learner sees

The player page shows a Back to dashboard link, the package title, and a status line reading Status: <status> plus the score as a percentage if one has been recorded (for example Status: completed · 80%). Below that, the SCORM content runs inside a full-width embedded frame.

How progress is saved

The player provides the SCORM 1.2 runtime object (window.API) that the content calls. Progress is written back to CLIP:

  • when the content calls LMSCommit,
  • when it calls LMSFinish (typically on completion/exit), and
  • when the learner navigates away or closes the tab (a final save is attempted).

On the learner's next visit, their saved status and score are shown, and the stored suspend data is handed back to the content so it can resume. Because the entry mode is set to resume whenever suspend data exists, well-behaved content will pick up where the learner left off. Note that only status, score and suspend data survive between sessions — any other in-content state that isn't captured in suspend data is not retained.

Deleting a package

On the SCORM page, click the trash icon on the package's row.
Confirm the prompt: "Delete this SCORM package and all learner attempt data? This cannot be undone."
The package record, its extracted files on disk, and every learner's attempt data for it are removed. The list refreshes.

Deletion is permanent and takes the learner data with it

Deleting a package cascades to all ScormAttempt records — every learner's status, score and resume data for that package is destroyed. There is no undo and no export beforehand. If you only want to replace the content, be aware a fresh import is a new package with a new link and zero attempts; the old attempts do not carry over.

Only Faculty and Admin can delete, and only within their own tenant — the delete action re-checks the role and confirms the package belongs to your client before removing anything.

Roles at a glance

ActionAdminFacultyCandidate (learner)
Open the SCORM management pageYesYesNo
Import a packageYesYesNo
Preview / launch a packageYesYesYes (if not course-locked, or enrolled if it is)
Have progress trackedYesYesYes
Delete a packageYesYesNo

On this page