Enroll Employees in a Cohort
Enrollment connects employee User accounts to an LMS Batch through LMS Batch Enrollment, unlocking cohort courses, live classes, and assessments. This guide covers admin enrollment, self-enrollment, seat limits, API errors, and HR-driven roster workflows.
Help URL: smoothhiring.com/help/lms/cohorts/enroll-employees
Table of Contents
- Prerequisites
- Enrollment methods
- Admin enrollment (desk)
- Portal enrollment
- Seat limits and timing rules
- Payments (optional)
- Confirmation emails
- Desk paths
- Step-by-step
- Tips
- Troubleshooting
- Related guides
- HRMS integration
Prerequisites
- Employee has User with LMS Student role (auto from HR integration).
- Employee.user_id populated on HR record.
- Cohort Published with linked courses still published.
- Enrollment before cohort end date (API may block late joins after start).
Enrollment methods
| Method | Who | When |
|---|---|---|
| Desk batch enrollment record | Moderator / System Manager | HR roster upload |
| Portal cohort page | Employee self-serve | allow_self_enrollment enabled |
| API / portal action | Moderator bulk | Large teams |
| Data import | Admin | Historical migration |
Enrollment does not replace LMS Training Assignment for mandatory self-paced due dates—use both when cohort wraps compliance courses.
Admin enrollment (desk)
- Open
/app/lms-batch/{cohort}. - Use batch enrollment dialog or open
/app/lms-batch-enrollment/new. - Set Member to employee user email.
- Set Batch link.
- Save—confirmation email may queue.
Bulk:
- Export employees from HR report.
- Import LMS Batch Enrollment CSV (allow_import enabled).
Verify member_type displays Employee after corporate patch.
Portal enrollment
When Allow Self Enrollment is on and seats remain:
- Learner visits
/lms/batches. - Opens cohort detail → Enroll.
- API creates LMS Batch Enrollment and course access.
Errors surfaced to user:
- "You are already enrolled for this cohort."
- "This cohort is full."
- "This cohort has already started."
Moderators may need desk override for late exceptions.
Seat limits and timing rules
Seat Count on batch—API counts existing enrollments before allowing more.
Start date logic prevents enrollment after cohort begins unless your SOP allows overrides (customize via server script if needed).
Communicate timezone of Start Time to remote employees.
Payments (optional)
Paid batches link LMS Payment on enrollment row. Requires payments integration—skip for internal HR deployments.
Confirmation emails
Confirmation Email Sent checkbox on enrollment tracks template delivery. Configure Batch Confirmation Email Template in LMS Settings email tab.
Desk paths
| Item | Path |
|---|---|
| Batch | /app/lms-batch |
| Enrollments | /app/lms-batch-enrollment |
| Users | /app/user |
| Portal | /lms/batches |
Step-by-step
HR enrolls new hire class
- HR exports Monday starters from Employee records.
- L&D opens cohort "New Hire — Week 12".
- Creates batch enrollment per user.
- Sends welcome email with
/lms/batches/{cohort}link. - Confirms live class appears on learner timetable.
Self-enrollment pilot
- Moderator enables allow self enrollment, seat count 50.
- Email managers portal link.
- Monitor enrollment count on batch dashboard.
- Close self enrollment by unchecking flag after seats filled.
Tips
- Enroll only after employee user password set—avoid bounce emails.
- For mixed cohorts, add discussion guidelines in batch details.
- Cross-check LMS Enrollment exists for each batch course after enroll.
- Remove test enrollments before production launch.
Troubleshooting
| Issue | What to do |
|---|---|
| User not in list | Create User; link Employee.user_id |
| Already enrolled | Expected—skip duplicate |
| Cohort full | Increase seats or create second batch |
| Started cohort blocked | Adjust dates or enroll via desk override policy |
| No confirmation email | SMTP; template in LMS Settings |
Related guides
HRMS integration
- Employee records — source of user accounts
- Employee Onboarding overview — coordinate hire date with cohort start
- Employee Compliance — store cohort completion certificates for licensed roles
Roster reconciliation
After bulk enroll, compare HR headcount export to LMS Batch Enrollment count. Mismatches usually mean missing User or duplicate email aliases. For rehires, confirm old User re-enabled rather than creating duplicate accounts.
Late hires: HR creates Employee records then L&D adds enrollment before second session.
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.
After enrolling, send each employee the direct portal link {site}/lms/courses and the cohort detail URL so they can confirm timetable entries before day one. Include HR helpdesk contact for access issues.
Last updated: May 2026