Programs Overview
LMS Program groups multiple LMS Course documents into a curated learning path with optional Enforce Course Order. Members enrolled in a program see unified progress across courses—ideal for role-based academies, leadership tracks, and multi-course certifications beyond single cohort events.
Table of Contents
- Programs vs cohorts vs courses
- LMS Program structure
- Program courses table
- Program members
- Enforce course order
- Publishing and portal
- Permissions
- Desk paths
- Step-by-step
- Tips
- Troubleshooting
- Related guides
- HRMS integration
Programs vs cohorts vs courses
| Construct | record | Best for |
|---|---|---|
| Course | LMS Course | Single subject, self-paced |
| Cohort | LMS Batch | Scheduled group experience |
| Program | LMS Program | Multi-course path spanning weeks/months |
Programs do not include live timetable—pair with cohorts when you need facilitators plus structured path.
LMS Program structure
Fields on /app/lms-program:
- Title (unique, autoname)
- Published — visible on
/lms/programs - Enforce Course Order — sequential unlock
- Program Courses child (LMS Program Course)
- Program Members child (LMS Program Member)
- Read-only Course Count / Member Count
Custom has_permission ensures members see only programs they belong to (plus moderators).
Program courses table
Each row links a published LMS Course with ordering index. When Enforce Course Order is enabled, portal prevents starting course N+1 until course N completion criteria met (progress 100% / certificate).
Include prerequisite skills early in sequence—e.g., "Data Privacy Basics" before "Advanced PHI Handling".
Program members
Program Members lists Users enrolled in the path. Adding member should create underlying LMS Enrollment rows per course—verify after bulk add.
Members hold LMS Student role; program admins need Moderator.
Removal from program does not auto-delete completed course history—archive thoughtfully.
Enforce course order
Checkbox Enforce Course Order (default off):
- On: sequential gating for compliance paths.
- Off: buffet-style libraries where motivated learners skip ahead.
Communicate policy to employees when enforcement is on to reduce support tickets.
Publishing and portal
Published programs surface on portal when LMS Settings sidebar includes programs. Marketing fields are minimal—rely on course cards inside program detail view.
Statistics counters update on save—use desk list filters for reporting.
Permissions
| Role | Access |
|---|---|
| System Manager | Full |
| Moderator | Create/edit/publish |
| Course Creator | Create/edit own programs (import enabled) |
| LMS Student | Read published programs where member |
API checks program membership before showing course content bundle.
Desk paths
| Item | Path |
|---|---|
| Program list | /app/lms-program |
| New program | /app/lms-program/new |
| Portal programs | /lms/programs |
| Underlying courses | /app/lms-course |
| Learning workspace | /desk/learning |
Step-by-step
Build a leadership program
- Publish courses: Communication, Coaching, Finance for Managers.
- New program "First-Line Leader Academy".
- Add courses in order; enable enforce order.
- Publish program.
- Add program members (User emails) for promoted supervisors.
- Learners open
/lms/programs→ start first course. - Monitor enrollments until all courses 100%.
Combine with HR compliance
- Map program completion to manual Employee Compliance update.
- Attach consolidated certificate PDFs to employee file.
Tips
- Keep programs under six courses for completion rates.
- Refresh program yearly by duplicating record and swapping course links.
- Use programs for role changes, cohorts for time-bound events.
- Display program progress in 1:1 meetings alongside HR appraisals.
Troubleshooting
| Issue | What to do |
|---|---|
| Member cannot start course 2 | Enforce order on—complete course 1 |
| Program not on portal | Publish program; enable sidebar |
| Course count zero | Add Program Courses rows |
| Permission denied | Add user to Program Members |
| Enrollment missing | Re-save member row; check API logs |
Related guides
HRMS integration
Programs operationalize career paths tied to Employee records job changes. Align program completion with Employee Onboarding for manager tracks. Store regulated program certificates in Employee Compliance when required by law—not only LMS progress widgets.
Program analytics
Track Member Count vs active learners completing course 1—large drop-off indicates length or ordering issues. For enforced order programs, report average days between course completions to leadership. Integrate program completion into performance conversations—not automatic in HR appraisal unless configured separately.
Publish programs to /lms/programs only after all child courses tested on mobile portal.
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.
Quick reference card
| Item | Value |
|---|---|
| Admin workspace | /desk/learning |
| Employee catalog | /lms/courses |
| HR employee link | Employee records |
| Onboarding hook | Employee Onboarding overview |
| Compliance ledger | Employee Compliance |
Keep this table in your L&D onboarding packet for new coordinators.
Closing notes for administrators
Schedule annual review of this guide with HR compliance and L&D. Confirm your organization's backups include public/scorm and file attachments for quiz uploads. After major HR reorgs, rebuild cohort rosters from Employee records exports rather than stale distribution lists.
Last updated: May 2026