Admin GuidesAICC Content

AICC Content

Who this guide is for: Tenant administrators who upload and manage AICC (HACP) course packages in EmbayLMS.

AICC is a legacy e-learning packaging standard still produced by many authoring tools and industrial-training vendors. Unlike SCORM (which talks to the LMS in the browser) or cmi5 (which reports xAPI statements), an AICC Assignable Unit (AU) communicates with the LMS over HACP — HTTP form POSTs to a single endpoint. EmbayLMS includes a built-in HACP endpoint, so AICC packages work out of the box.


Uploading an AICC package

  1. Open Admin → Courses, pick a course, and open the Modules tab.
  2. Add a module and set its type to AICC.
  3. Upload the package .zip. EmbayLMS detects the AICC descriptor files inside the zip (.crs course file + .au assignable-unit table), parses the course structure, and stores it. (A zip with cmi5.xml is treated as cmi5; one with imsmanifest.xml or CSF.xml is treated as SCORM.)
  4. Publish the course version.

The package is virus-scanned and its files are served from the same content pipeline as SCORM.

What an AICC package contains

FileMeaning
<course>.crsThe course descriptor (INI): course id, title, AU count
<course>.auThe assignable unit table (CSV): one row per launchable unit — its launch file, mastery score, and time limit
<course>.cstThe course structure (CSV): the block → member hierarchy
<course>.desThe descriptor table (CSV): human-readable titles for each unit

The four files share a base name (e.g. course.crs, course.au, course.cst, course.des). The .crs and .au are required; .cst and .des are optional.


How learners take it

  1. On the course player, the learner opens the AICC module. EmbayLMS prepares the launch (a signed session id AICC_SID and the HACP endpoint AICC_URL) and opens the AU in a frame.
  2. The AU reads its resume state (GetParam) and reports progress (PutParam) back to the built-in HACP endpoint as the learner works — lesson status, bookmark location, score, and suspend data all persist across sessions.
  3. Multi-AU packages show a unit picker; a green check marks each completed unit.
  4. The module completes when the AU reports passed or completed. When the package sets a mastery score, a passed status must also meet that score.

Completion flows into course progress and certificates exactly like any other module.


Configuration reference

ItemWhereNotes
Module typeCourse editor → ModulesSet to AICC
PackageUpload on the module.zip containing .crs + .au descriptors
AICC_TOKEN_SECRETPlatform env (optional)Signs AU session ids; falls back to NEXTAUTH_SECRET

There is no external system to set up — the HACP endpoint (/api/v1/aicc/hacp) is built in and authenticates each AU with a per-session signed token.


Troubleshooting

SymptomCause / fix
Upload accepted but the module won’t launchThe zip may not contain the .crs + .au descriptor pair at a consistent base name. Re-export from your authoring tool as an AICC package.
Learner finishes but the module isn’t completeThe AU must report passed or completed. If the package has a mastery score, a passed must also meet it — check the unit’s reported score.
Progress isn’t recordingConfirm the learner is actively enrolled and launched from the course player (the AU needs the AICC_SID the player provides).
”Invalid session” in the AUThe session id expired (12h) — reopen the module to get a fresh launch.

Standards note

EmbayLMS supports SCORM 1.1, SCORM 1.2, SCORM 2004 (2nd–4th editions), cmi5, and AICC (HACP). Pick the format your authoring tool exports; all report progress into the same course-completion and certificate pipeline.