Book a walkthrough and we'll show you how it applies to your own content.

This article provides an engineer-to-operator playbook for SCORM migration and xAPI migration. It covers inventorying packages, safely exporting and editing imsmanifest.xml, mapping xAPI statements and resume data, containerizing media, and validating with pilot users. Follow checklist-driven exports, state mapping, and rollback plans to preserve learner progress during LMS moves.
SCORM migration is one of the riskiest tasks in enterprise learning operations: a single broken reference or mismatched state key can make months of learner progress disappear. In our experience, successful migrations combine a disciplined inventory, careful package handling, and a robust state-mapping plan that covers both xAPI migration and classic SCORM state.
This article walks through an engineer-to-operator playbook for exporting/importing packages, handling imsmanifest.xml, mapping xAPI statements, preserving completion/bookmarks, and troubleshooting player and asset problems. The guidance here is practical and experience-driven so teams can migrate without losing learners’ work.
Start by treating migration as a software release: define scope, risk, and rollback. A clear inventory is the single most important preventive control to preserve learner state during SCORM migration.
Key inventory items to capture:
We’ve found checklist-driven audits avoid surprises. Use a spreadsheet that maps original LMS IDs to target LMS IDs and captures whether the package uses suspend_data, cmi.core.lesson_location, or xAPI statements for resume.
Inventory everything that’s referenced at runtime. That includes media file names, MIME types, third-party CDN references, certificate expiration for signed cross-domain requests, and any custom JavaScript that manipulates state. Missed assets cause playback failures and lost progress during SCORM migration.
Before export, confirm package integrity and create a versioned archive (zip containing imsmanifest.xml). Make sure you:
Exporting properly is the foundation for reliable SCORM migration. Most LMS platforms offer package export, but exported packages can vary in structure and completeness.
When you open an exported package, check the imsmanifest.xml file and resource entries. Ensure that resource identifiers and hrefs point to existing files. A common failure is missing media files referenced in the manifest.
Key steps when exporting and preparing to import:
Do a minimal edit strategy: avoid changing identifiers unless you must. If you must change the package identifier, maintain a mapping between old and new IDs in your migration table. Example xml fragment (escaped): <resource identifier="res1" href="index.html"></resource>.
When editing manifests, keep a copy of the original. Test the package locally with an open-source player that emulates the LMS API to validate launches before importing to the target system.
In one migration we found dozens of absolute CDN references that failed due to CORS and expired tokens. The solution was to containerize each course into a self-hosted static bundle (a versioned container image or signed ZIP hosted on a secure asset server) so the LMS only served a single, reliable origin. Containerizing assets can be the difference between preserve learner progress scorm migration and mass playback failures.
xAPI migration requires different thinking than SCORM migration because statements in an LRS are de-normalized and often include granular actor and object metadata. A pattern we've noticed: teams export statements, normalize actor identifiers, and then replay or map statements into the new LRS.
Steps for safe xAPI migration:
Example mapping approach (conceptual):
Take statement: {"actor":{"mbox":"mailto:[email protected]"},"verb":{"id":"http://adlnet.gov/expapi/verbs/completed"},"object":{"id":"http://old-lms.com/course/123"}} and transform "object.id" to "http://new-lms.com/course/abc" while keeping timestamps and result fields intact. This preserves completion semantics during how to migrate scorm and xapi content between LMS workflows.
Preserving state requires at least three things: consistent actor identity, matched activity IDs, and preserved timestamps or precedence logic so you can determine the latest state. If you cannot replay statements verbatim, create a derived "resume" object that maps the latest progress to the LMS's resume API.
Export statements and convert the most recent xAPI result or SCORM suspend_data into the target LMS resume/store API. If both SCORM and xAPI are used in the same package, reconcile them by treating xAPI results as the authoritative source for fine-grained interactions and SCORM completion for course-level completion events.
Preserving bookmarks and completion during SCORM migration is the most sensitive part of an LMS move. The core idea: capture the canonical state, map it to the new environment, and verify with test accounts before wide rollout.
Common state types to capture:
Practical steps to preserve progress:
The turning point for many teams isn't just moving files—it's removing friction in analytics and resume behavior. Tools like Mentora LMS help by making analytics and personalization part of the core process, letting teams spot where state mismatches are occurring during a migration.
Always validate with a sample group of learners and confirm that resumes, scores, and certificates match pre-migration baselines. Keep rollback scripts ready that re-associate users with the original LMS or re-import original suspend_data if a problem occurs.
Broken media is one of the most visible pain points post-migration. In our experience the three common causes are incorrect MIME types, moved/renamed files, and cross-domain permission failures.
Checklist to avoid broken playback during multimedia migration LMS operations:
If you must move large media, consider containerization to a single origin or use signed URLs with sufficiently long TTL. Containerization makes the package self-contained and prevents external CDN changes from breaking playback, which frequently causes lost progress when players fail to load resources used for resume points.
Browsers block media if CORS headers are missing when player code tries to access pixel/audio analysis or fetch blobs. Ensure Access-Control-Allow-Origin is set for the LMS domain, and test playback with the same browser security profile used by learners.
Even with great planning, migrations surface issues. Here are common problems and actionable fixes for SCORM migration projects.
Top issues and fixes:
Debugging tips:
Not all players behave the same. If a course uses a custom HTML5 player, test against the target LMS environment early. Confirm the player can access required APIs and that encryption or CSP rules in the new LMS do not block inline scripts or media sources.
SCORM migration combines operational rigor with technical detail. To preserve learner progress during moves, follow a structured checklist: inventory packages, validate manifests, export and map xAPI statements, containerize assets when needed, and run staged validation with rollback plans.
Summary checklist:
If you want a practical starting point, run a one-course pilot using the steps above and produce a migration runbook that lists IDs, mappings, and rollback steps. For a hands-on next step, schedule a technical migration audit with your team to validate a single package end-to-end and get a reproducible process for large-scale moves.
The Mentora LMS Team provides actionable insights on technology and business strategy.
Technical Architecture&EcosystemsJanuary 12, 2026
This article presents a repeatable migration pipeline to consolidate learning assets into a centralized content library: audit sources, normalize formats (SCORM→xAPI/HTML5), map metadata, automate imports, run structured QA, and prepare rollback/versioning. Includes a sample 12-week timeline, a migration checklist, and a short QA template to validate migrations.
Business Strategy&Lms TechJanuary 28, 2026
Follow a six-step, programmatic roadmap to migrate SCORM to xAPI: audit and inventory content, map SCORM cmi data to actor-verb-object xAPI statements, provision an LRS, update authoring workflows, validate with rigorous testing, and run a phased rollout with rollback plans. Start with a pilot course to validate mappings and analytics.
Technical Architecture&EcosystemsJanuary 12, 2026
Grades migration requires a controlled export, rigorous reconciliation, and immutable archiving to preserve transcripts and accreditation records. This article covers pre-migration checklists, export best practices (checksums, control files), SQL-driven validation templates, and certification packages to demonstrate chain-of-custody. Follow a pilot, freeze-window, and signed reconciliation for defensible results.
LmsDecember 24, 2025
This article outlines a pragmatic approach to LMS migration, covering inventory, prioritization, governance, and a repeatable extract-transform-load pipeline. It recommends a phased pilot→bulk→optimize model, hybrid conversion (automate low-value, redesign high-value), and KPIs to measure success. Practical checklists and QA tips reduce remediation and protect compliance.