Chapters And Lessons
Chapters and Lessons (Modules)
Smooth LMS structures content as LMS Course → Course Chapter (labeled Module in the Learning workspace) → Course Lesson. Child tables Chapter Reference and Lesson Reference preserve order. This guide covers creating, reordering, preview lessons, and maintaining hierarchy integrity across desk and portal editors.
Help URL: smoothhiring.com/help/lms/courses/chapters-and-lessons
Table of Contents
- Hierarchy diagram
- Course Chapter (module) fields
- Course Lesson fields
- Ordering and references
- Portal vs desk editing
- Progress and completion
- Desk paths
- Step-by-step
- Tips
- Troubleshooting
- Related guides
- HRMS integration
Hierarchy diagram
LMS Course
└── Chapter Reference (ordered)
└── Course Chapter (Module)
└── Lesson Reference (ordered)
└── Course Lesson
Deleting a module cascades lessons linked through chapter field. APIs prevent SCORM module deletion without cleaning extracted package directories.
Course Chapter (module) fields
| Field | Purpose |
|---|---|
| Title | Module name in player sidebar |
| Course | Parent LMS Course (required) |
| Lessons | Child table of Lesson Reference |
| Is SCORM Package | When true, lessons generated from manifest |
| SCORM Package | Link to uploaded File |
| Manifest File / Launch File | Populated after extraction (read-only) |
Workspace link label Module maps to record Course Chapter (/app/course-chapter).
Course Lesson fields
| Field | Purpose |
|---|---|
| Title | Lesson label |
| Chapter | Parent module (required) |
| Course | Fetched from chapter; read-only |
| Body | Markdown editor main content |
| YouTube | Video at top of lesson |
| Quiz ID | LMS Quiz at bottom |
| Question | Assignment prompt |
| Include In Preview | Free preview lesson flag |
| Trainer Notes | Internal markdown for facilitators |
Naming: autoname format {####} {title}—avoid renaming after enrollments reference progress logs.
Ordering and references
Order is stored in child table row index. Portal editor drag-and-drop updates indices; desk users can edit grid rows.
When importing:
- Create chapters first with course link.
- Create lessons with chapter link.
- Add Chapter Reference rows on course.
Broken references show empty sidebars in player—validate before publish.
Portal vs desk editing
Portal (/lms/courses/{course}/edit) calls APIs:
add_chapter/ update chapter title- Lesson CRUD with content JSON
- SCORM upload triggers
extract_package
Desk forms useful for bulk fixes:
/app/course-chapter/app/course-lesson
Lesson Content and Trainer Content text fields store structured editor state in portal-first workflows.
Progress and completion
LMS Course Progress (and enrollment progress %) marks lessons complete when learners view content, pass quizzes, or finish SCORM SCOs. Skipping prevention: LMS Settings Prevent Skipping Videos enforces watch duration tracking via LMS Video Watch Duration.
Quizzes gate progression when passing score required in quiz definition.
Desk paths
| Item | Path |
|---|---|
| Modules | /app/course-chapter |
| Lessons | /app/course-lesson |
| Course with chapters table | /app/lms-course/{course} |
| Portal player | /lms/courses/{course} |
| Learning workspace Module link | /desk/learning → Course Data card |
Step-by-step
Add module and lessons (portal)
- Open course in editor.
- Add Module → title "Introduction".
- Add Lesson → markdown body + save.
- Add second lesson with Quiz ID.
- Reorder lessons if assessment should be last.
- Preview course as learner.
Insert module between existing (desk)
- Create new Course Chapter document.
- Add to course Chapters table at desired idx.
- Move Lesson Reference rows if splitting content.
Clone module to another course
- Duplicate Course Chapter (amended doc).
- Change Course link.
- Duplicate each lesson with new chapter link.
- Add references on target course.
Tips
- Keep modules 3–7 lessons for mobile-friendly sessions.
- Put graded quiz in final lesson of each module for checkpointing.
- Use Trainer Notes for cohort facilitators without exposing to learners.
- SCORM modules should be single-package per module—do not mix markdown and SCORM in same chapter.
Troubleshooting
| Issue | What to do |
|---|---|
| Lessons out of order | Fix Lesson Reference idx; refresh cache |
| Empty sidebar | Chapter not linked on course; lesson missing chapter |
| Progress not advancing | Incomplete quiz; video skip prevention |
| Cannot delete module | Remove SCORM files via API; delete lessons first |
| Duplicate lesson names | Allowed but confusing—differentiate titles |
Related guides
HRMS integration
Module design should align with onboarding milestones in Employee Onboarding—e.g., separate modules for policy acknowledgment vs benefits overview. Store graded quiz PDFs in Employee Compliance when modules cover regulated topics. Confirm learners map to Employee records before assigning sequential modules with due dates.
Structural QA before publish
Walkthrough checklist: every module has ≥1 lesson; no orphan lessons in /app/course-lesson list view filtered by empty course; quiz IDs resolve; SCORM modules launch. Play through on mobile device. Confirm Include In Preview only on intentional marketing lessons.
Learning workspace quick links: /desk/learning → Course Data → Module / Lesson lists for support tickets.
Governance, auditing, and data retention
Training data in Smooth LMS is standard Frappe JSON in MariaDB plus files in public/files and public/scorm. HR audits typically require evidence of who completed what by when. Export desk lists (LMS Enrollment, LMS Quiz Submission, LMS Training Assignment, LMS Certificate) to CSV for sampling. Quiz submission print formats provide question-level detail suitable for safety investigations or harassment prevention audits.
Retention policy should align with HR document retention: keep LMS submissions at least as long as related Employee Compliance records. When employees depart, disable User accounts but retain enrollment history unless legal counsel approves purging. Version course content via amended records or annual duplicated courses so historical completions still reference the correct curriculum year.
System Managers should restrict Moderator role membership and enable login activity review on sensitive cohorts (executive leadership programs). Pair LMS reports with HR onboarding status from Employee Onboarding overview to prove training preceded start date when required.
Frequently asked questions
Do employees need desk access? No. LMS Student is portal-only by default; send {site}/lms/courses links.
Can one user be both Course Creator and Moderator? Yes on small teams; larger orgs should separate author vs publish duties.
How do we handle contractors? Create User + optional HR employee record; assign training like employees via Employee records linkage or direct enrollment.
What breaks if HRMS is down? LMS continues serving published content; new hire auto-enrollment pauses until Employee/Onboarding APIs succeed.
Are certificates legally equivalent to HR compliance rows? Not automatically—store PDFs on compliance or document types when statute requires.
Performance and scale notes
Large enrollments (5,000+ users) should batch assign overnight via assign_mandatory_training rather than manual enrollment rows. Rebuild website cache after bulk publish. Monitor background workers if email notifications queue heavily. SCORM packages should be optimized zip exports to reduce disk usage during large uploads.
Additional troubleshooting
| Issue | What to do |
|---|---|
| Slow portal after publish | Hard-refresh browser; contact Smooth support if portal styling is broken |
| Wrong user on certificate | Certificate issued to enrollment member—fix User linkage in HR |
| Bulk import partial failure | Check error log; validate Course Instructor rows exist |
| Cohort vs course progress mismatch | Learner must open each course inside cohort; enrollments are per course |
| Timezone confusion on due dates | Training assignment due dates are date-only—communicate timezone in email |
Operations calendar (recommended)
| Cadence | Action | Where |
|---|---|---|
| Weekly | Review overdue LMS Training Assignment | /app/lms-training-assignment |
| Monthly | Publish content changelog to employees | Email + /lms/courses |
| Quarterly | Role audit (Moderator/Creator) | /app/user |
| Annually | Recertify mandatory courses | Re-assign with new due dates |
| After upgrade | Sign out/in; smoke-test /lms portal |
/desk/learning |
Integration smoke tests with HRMS
- Create test Employee with user — confirm LMS Student role.
- Submit test Employee Onboarding — confirm enrollments when courses mandatory.
- Complete course — attach quiz PDF to test Employee Compliance row.
- Archive evidence in document compliance SOP.
Support runbook (L1)
Collect: user email, course/cohort name, screenshot of error, timestamp. Check enrollment exists, course published, role present. Escalate to System Manager if SCORM extract failed or permission hooks deny batch access. Reference Employee records to fix missing user_id before reassigning training.
Document history and change control
When updating this process, record the Smooth LMS app version, platform update date, and whether HRMS onboarding templates changed. Authors should note breaking changes in course release notes (quiz question changes may require reattempts). For regulated customers, maintain a binder linking LMS course ID to compliance control ID in Employee Compliance.
Desk administrators use /desk/learning for cross-course metrics; portal users rely on /lms/courses for consumption—both URLs should appear in internal SOP PDFs so auditors can reproduce learner steps without admin credentials.
Last updated: May 2026