SCORM Publishing Automation
Playwright-driven exporter that turns a day of LEAi → Skilljar publishing into a 20 minute run.
Key Metrics
- Courses maintained78
- Manual effort saved≈8h
- Runtime~20m
- Error rateNear-zero
What happened?
Python + Playwright scripts sign into LEAi, apply the mandated SCORM 3rd Edition configuration, generate exports, and replace the matching Skilljar objects with traceable hand-offs. Every step is idempotent, logged, and guarded by checksum comparison so 78 CCSK courses ship hands-off.
Tech & Impact
- Playwright
- Python
- Skilljar API
Compressed an all-day release cycle to roughly twenty minutes while preserving auditability—one maintained script updates the entire CCSK catalog without touching proprietary course content.
One maintained command now handles exports, uploads, and verification for the entire CCSK catalog. Below is the sequence that replaced a day of manual work.
Authenticate & scope
Use vaulted credentials to log into LEAi and Skilljar, then scope the run to the learner folder the operator selects.
Export with guardrails
On every LEAi export, enforce SCORM 3rd Edition, restricted navigation, quiz pass gating, and the standardized summary before publishing.
Build the course map
Capture a canonical map of course name → generated zip → checksum → Skilljar ID so downstream stages stay in lockstep.
Replace in Skilljar
Locate the matching Skilljar SCORM record, trigger Replace, upload the new archive, and verify completion with UI + API assertions.
Configurations applied every run
Playwright fills every export form exactly the way our instructional design team expects.
Engineering practices
Deterministic locators
Only data-test hooks and role queries—stable across LEAi and Skilljar UI updates.
Retry with tracing
Automatic retry on transient failures plus Playwright trace-on-retry for lightweight forensics.
Idempotent + checksum aware
Skip exports when artifacts already match remote size and checksum, preventing duplicate uploads.
Operator feedback
Structured logs and Slack notifications call out which courses updated, skipped, or flagged for review.
Supplement this case study
When you share this publicly, these slots are ready for richer artefacts without exposing proprietary course content.
Demo clip
Embed a short Loom or mp4 walkthrough (blur proprietary data) showing LEAi export through Skilljar replace.
Before / after timeline
Chart the 8-hour manual process versus the 20-minute automated run to visualise the time savings.
Stakeholder quote
Add a testimonial from Enablement/Ops that speaks to confidence and reclaimed hours.
Technical addendum
Link to a scrubbed architecture doc or pseudocode snippet describing the Playwright helpers and retry logic.