Onboarding Mandatory Training
Onboarding Mandatory Training
When HR creates an Employee Onboarding record in Smooth HR, Smooth LMS automatically enrolls the linked employee in every published course marked Is Mandatory. The integration also creates LMS Training Assignment rows with a default 30-day due date, giving HR and managers a trackable deadline separate from raw enrollment progress.
This connects the Onboarding module—templates, portal tasks, document capture—to your corporate learning library without duplicate data entry. It complements (does not replace) Employee Compliance tracking for regulatory renewals; see Compliance Vs Lms Certificates for how completion proof moves into HR.
Help URL: Onboarding Mandatory Training
Related HR workflow: Employee Onboarding, Onboarding Templates
Table of Contents
- Overview
- Trigger and timing
- Which courses are enrolled
- LMS Enrollment vs Training Assignment
- Configure mandatory courses
- End-to-end onboarding + training workflow
- Employee experience
- HR monitoring
- Due dates and overdue handling
- Troubleshooting
- Related guides
Overview
| Component | Record | Purpose |
|---|---|---|
| HR trigger | Employee Onboarding | Starts pre-boarding; links to Employee |
| Course flag | LMS Course → Is Mandatory | Defines auto-enroll set |
| Learner access | LMS Enrollment | Portal progress tracking |
| HR deadline | LMS Training Assignment | Due date, status, assigner audit |
Hook: on_onboarding_created (after_insert on Employee Onboarding).
Prerequisites:
- Employee exists with User ID (Employee Auto Provisioning).
- At least one LMS Course is Published + Is Mandatory.
- Smooth LMS enabled on the same account as Smooth HR (Overview).
Trigger and timing
The hook runs on Employee Onboarding after_insert—typically when HR submits onboarding from a template after offer acceptance.
It does not run when:
- Onboarding is merely updated (tasks completed in portal).
- Employee is created without an onboarding record.
- Onboarding exists but Employee lacks
user_id.
Best practice: Create Employee (with User) first, then Employee Onboarding—or use template workflow that creates both in correct order. Misordered steps cause silent skips.
If mandatory training must start before Day 1 (pre-boarding), ensure onboarding record is created early enough; portal users see HR tasks at Onboarding Portal and LMS courses at /lms in parallel.
Which courses are enrolled
Query logic (simplified):
mandatory_courses = all LMS Course where published=1 AND is_mandatory=1
for each course:
if no LMS Enrollment for (user, course): create enrollment
if LMS Training Assignment record exists: create assignment, due = today + 30 days
| Filter | Effect |
|---|---|
| Published | Draft courses never auto-enroll |
| Is Mandatory | Only flagged courses |
| Department / designation on Employee | Not filtered today — all mandatory courses enroll globally |
If you need department-specific mandatory sets, use separate non-mandatory assignments via Assign Training From Hr or cohort LMS Batch enrollment until custom filtering is implemented.
Optional course fields:
- Validity Days — certificate validity (LMS-side).
- Enable Certification — issues LMS Certificate on completion.
LMS Enrollment vs Training Assignment
| Aspect | LMS Enrollment | LMS Training Assignment |
|---|---|---|
| Created by hook | Yes | Yes (if training assignments are enabled) |
| Tracks progress % | Yes | Reads enrollment progress |
| Due date | No | Yes (default +30 days) |
| Status | Progress field | Pending / In Progress / Completed / Overdue |
| HR audit Assigned By | No | Yes (frappe.session.user at onboarding insert) |
Enrollments alone suffice for learning; assignments add operational accountability for HR dashboards and get_my_training_assignments API on the learner home.
Scheduled jobs on LMS Training Assignment mark overdue rows and send reminders—pair with HR compliance alerts from Employee Compliance for a complete picture.
Configure mandatory courses
- Open LMS Course from
/desk/learningor/app/lms-course. - Build chapters, lessons, quizzes (internal SOP content).
- Check Published.
- Check Is Mandatory for corporate-wide requirements (harassment, security awareness, code of conduct).
- Save.
Repeat for each baseline course. Avoid marking long elective libraries as mandatory—learners receive every mandatory course at onboarding.
Coordinate with Documents & Compliance owners: policy signatures may still use Signature Templates while training evidence lives in LMS.
End-to-end onboarding + training workflow
- Recruit — Job Opening → Applicant → Offer.
- Template — HR picks Onboarding Template with required documents.
- Employee Onboarding — HR creates record; hook enrolls LMS courses.
- Portal — New hire completes uploads/e-sign at Onboarding Portal.
- LMS — Same user logs into
/lms; mandatory courses appear on dashboard. - Completion — Learner finishes quizzes; LMS Certificate generated if enabled.
- HR file — HR attaches certificate to Employee Document and marks Employee Compliance Complete (Compliance Vs Lms Certificates).
Employee experience
After provisioning (Employee Auto Provisioning):
- Login email matches User on Employee record.
/lmshome shows assigned courses and progress bars.- My training assignments widget (when enabled) lists due dates from hook-created rows.
- Live cohort sessions (Live Classes) appear only if separately enrolled in a batch.
Communicate in welcome email: HR paperwork ≠ LMS training—two portals, one login.
HR monitoring
| View | Location |
|---|---|
| Onboarding task status | /app/employee-onboarding |
| LMS assignment list | /app/lms-training-assignment |
| Team training API | get_team_training_status (Moderator/HR Manager) |
| Compliance expiry | /app/employee-compliance |
Cross-check onboarding completion with LMS Overdue assignments before confirming start date in People.
Due dates and overdue handling
Default due_date = today + 30 days at onboarding creation. Adjust policy:
- Shorten for safety-critical roles via manual reassignment.
- Extend by editing LMS Training Assignment due date before status flips Overdue.
Assignment scheduler:
- Marks Overdue when due date passed and not completed.
- Sends reminder emails when configured.
This is LMS operational tracking—not the same as Next Renewal Date on Employee Compliance. Annual re-training requires new assignment or compliance renewal workflow.
Troubleshooting
| Issue | Resolution |
|---|---|
| Zero enrollments after onboarding | Publish mandatory courses; verify Employee.user_id |
| Duplicate assignments | Hook skips existing enrollments; safe |
| Wrong course set | Review Is Mandatory flags on all courses |
| Learner sees courses but HR sees no compliance | Complete handoff per Compliance Vs Lms Certificates |
| Need dept-specific mandatory | Use Assign Training From Hr post-onboarding |
Related guides
- Integration Overview
- Employee Auto-Provisioning
- Compliance vs LMS Certificates
- Assign Training from HR
- Onboarding Overview
- Onboarding Templates
- Employee Onboarding
- Onboarding Portal
- Employee Compliance
- Employee Documents
- LMS Settings
Last updated: May 2026
Template design patterns for HR
When authoring Onboarding Templates, mirror LMS mandatory course titles in task labels—for example task "Complete Security Awareness in Learning Portal" links mentally to the LMS course card. Avoid duplicating full training content inside template HTML; LMS remains authoritative for assessments.
Use Required Documents for policy signatures and LMS for measurable quizzes. A signed handbook row in Employee Compliance does not prove quiz mastery; both may be required for SOX or safety programs.
Sequence tasks so Create Employee (or implicit employee link) occurs before tasks that say "complete training"—otherwise learners lack /lms access despite portal visibility.
For executives with accelerated onboarding, maintain a variant template with fewer HR tasks but same LMS mandatory set—hook still enrolls all is_mandatory courses globally.
Metrics and KPIs
Track jointly between HR and L&D:
| KPI | LMS source | HR source |
|---|---|---|
| Time-to-first-login | User last login | — |
| Mandatory completion ≤ 30 days | Assignment status | — |
| Onboarding portal % complete | — | Employee Onboarding tasks |
| Compliance file complete | Certificate attach | Employee Compliance status |
| Overdue training | Assignment Overdue | Escalation tickets |
Review monthly with Performance leadership where training completion is a probation success criterion.
Edge cases
Interns and contractors: If treated as Employee in HR, hook applies. If only User without Employee, onboarding hook never runs—use Assign Training From Hr.
Re-onboarding after leave: New Employee Onboarding record enrolls again; LMS skips duplicate enrollments but may create new assignments if prior completed—verify assignment dedup logic.
Unpublished course mid-onboarding: If L&D unpublishes a mandatory course after enrollments, learners retain enrollment but new hires won't receive it—communicate course lifecycle with HR.
Multiple onboarding records: Each insert re-runs hook; duplicates prevented at enrollment layer.
Administrator notes
Hook commits explicitly (frappe.db.commit()) after enrollments so portal sees courses immediately—important for same-day portal sessions.
Session user at onboarding creation becomes Assigned By on training assignments—typically HR coordinator, auditable alongside Employee Onboarding owner field.
Department and designation variables are read in hook source for future filtering but currently unused—document for customizers extending hrms_integration.py.
Stakeholder RACI for onboarding training
| Activity | HR Coordinator | L&D Moderator | Hiring Manager | New Hire |
|---|---|---|---|---|
| Create Employee Onboarding | R/A | C | I | I |
| Publish mandatory LMS courses | I | R/A | I | I |
| Auto-enrollment (system) | I | I | I | R (consumes) |
| Verify portal + LMS access | R | C | I | R |
| Mark HR compliance Complete | R/A | C | I | I |
R = Responsible, A = Accountable, C = Consulted, I = Informed. Aligns with Onboarding Overview governance and integration overview.
Smooth HR (HRMS)
| Guide | Link |
|---|---|
| HR help home | smoothhiring.com/help/hrms |
| Employee records | hrms/people/employee-records |
| Onboarding overview | hrms/onboarding/overview |
| Onboarding templates | hrms/onboarding/onboarding-templates |
| Employee onboarding | hrms/onboarding/employee-onboarding |
| Documents & compliance | hrms/documents-compliance/overview |
| Employee compliance | hrms/documents-compliance/employee-compliance |
| Signature templates | hrms/documents-compliance/signature-templates |