# Assign Training from HR

HR and L&D teams assign courses to employees beyond automatic onboarding enrollment using **LMS Training Assignment**, desk enrollment tools, and the whitelisted API `assign_mandatory_training`. This guide covers who may assign, how assignments create **LMS Enrollment** rows, due dates, team dashboards, and coordination with Smooth HR roles and compliance workflows.

Assignments bridge [People](https://smoothhiring.com/help/hrms/people/overview) records (via User email) and [onboarding auto-enroll](https://smoothhiring.com/help/lms/hrms-integration/onboarding-mandatory-training). Completed assignments still require HR compliance handoff per [Compliance Vs Lms Certificates](https://smoothhiring.com/help/lms/hrms-integration/compliance-vs-lms-certificates).

> **Help URL:** [Assign Training From Hr](https://smoothhiring.com/help/lms/hrms-integration/assign-training-from-hr)

> **Roles reference:** [User Roles & Permissions](https://smoothhiring.com/help/hrms/getting-started/user-roles-permissions)

---

## Table of Contents

1. [Overview](/#overview)
2. [Who can assign](/#who-can-assign)
3. [LMS Training Assignment fields](/#lms-training-assignment-fields)
4. [API: assign_mandatory_training](/#api-assign_mandatory_training)
5. [Desk workflow](/#desk-workflow)
6. [Learner view](/#learner-view)
7. [Manager and HR dashboards](/#manager-and-hr-dashboards)
8. [Relationship to batches and live classes](/#relationship-to-batches-and-live-classes)
9. [Compliance coordination](/#compliance-coordination)
10. [Troubleshooting](/#troubleshooting)
11. [Related guides](/#related-guides)

---

## Overview

| Method | Best for |
|--------|----------|
| Auto onboarding hook | Baseline mandatory courses for all new hires |
| **assign_mandatory_training** API | Bulk assign from LMS UI or custom HR desk script |
| Manual **LMS Training Assignment** | One-off remedial training |
| **LMS Enrollment** (desk) | L&D enroll without due date tracking |
| **LMS Batch Enrollment** | Cohort programs with [live classes](https://smoothhiring.com/help/lms/live-classes/overview) |

**LMS Training Assignment** tracks:

- **Employee** (Link to User email)
- **Course**
- **Due Date** (required)
- **Status**: Pending, In Progress, Completed, Overdue
- **Assigned By**, **Completed On**

List path: `/app/lms-training-assignment`

---

## Who can assign

| Role | Create assignments | API access |
|------|-------------------|------------|
| **System Manager** | Yes | Yes |
| **Moderator** | Yes | Yes |
| **HR Manager** | Via team APIs (read); assign if granted Moderator | `get_team_training_status` |
| **HR User** | No by default | No |
| **LMS Student** | Read own only | `get_my_training_assignments` |

`assign_mandatory_training` calls `frappe.only_for(["System Manager", "Moderator"])`.

If HR operations need direct assign without Moderator, add role via [User Roles & Permissions](https://smoothhiring.com/help/hrms/getting-started/user-roles-permissions) policy—or delegate assignment to L&D Moderators while HR owns [Employee Compliance](https://smoothhiring.com/help/hrms/documents-compliance/employee-compliance) verification.

---

## LMS Training Assignment fields

| Field | Description |
|-------|-------------|
| **Employee** | User linked to HR Employee.user_id |
| **Course** | Published LMS course |
| **Due Date** | Deadline; scheduler marks Overdue |
| **Status** | Auto-updated from enrollment progress |
| **Assigned By** | Defaults to current user |
| **Completed On** | Set when status → Completed |
| **Reminder Sent** | Internal flag for email jobs |

Validation prevents duplicate open assignments (same employee + course + Pending/In Progress).

Ensure Employee has **LMS Student** ([Employee Auto Provisioning](https://smoothhiring.com/help/lms/hrms-integration/employee-auto-provisioning)) before assigning.

---

## API: assign_mandatory_training

Whitelisted method: `lms.lms.api.assign_mandatory_training`

Parameters:

- `course` — LMS Course name
- `employees` — JSON list of User emails
- `due_date` — ISO date string

Behavior per employee:

1. Skip if open assignment already exists.
2. Create **LMS Enrollment** if missing.
3. Create **LMS Training Assignment** with due date and assigned_by.

Returns `{"assigned": N}`.

Use from LMS frontend bulk assign UI or advanced workflow automation (contact Smooth support) triggered by HR workflow (advanced).

Related learner API: `get_my_training_assignments` — returns open assignments with course title, progress, due date.

---

## Desk workflow

### Single assignment

1. Go to `/app/lms-training-assignment/new-lms-training-assignment`.
2. **Employee** — pick User (search employee email).
3. **Course** — select published course.
4. **Due Date** — set per policy (30/60/90 days).
5. Save — enrollment created if needed.

### Bulk assignment

Use LMS Statistics or course admin tools calling `assign_mandatory_training`, or export Employee emails from HR reports ([People](https://smoothhiring.com/help/hrms/people/overview)) and paste into bulk dialog.

After role change (promotion to manager), assign new curriculum without re-running [Employee Onboarding](https://smoothhiring.com/help/hrms/onboarding/employee-onboarding).

---

## Learner view

Employees see assignments on:

- `/lms` home widgets (when configured)
- Course cards with due badges
- Email reminders before overdue

Progress comes from **LMS Enrollment.progress**; completing course marks assignment **Completed** (via training assignment controller).

Direct learners to [Onboarding Portal](https://smoothhiring.com/help/hrms/onboarding/onboarding-portal) for HR tasks and `/lms` for training—same login.

---

## Manager and HR dashboards

| API / view | Audience | Data |
|------------|----------|------|
| `get_team_training_status` | Moderator, HR Manager, System Manager | Per-user active/completed/overdue counts |
| `get_advanced_statistics` → compliance | L&D leadership | Mandatory assignment completion rate |
| HR **Employee Compliance** list | HR compliance | Regulatory status separate from LMS |

Use LMS dashboard for **learning operations**; use [Employee Compliance](https://smoothhiring.com/help/hrms/documents-compliance/employee-compliance) for **regulatory sign-off**.

---

## Relationship to batches and live classes

Assignments enroll **courses**, not **batches**. For instructor-led programs:

1. Create **LMS Batch** with timetable.
2. Add **Batch Course** rows.
3. **LMS Batch Enrollment** auto-creates course enrollments and adds learners to [live class](https://smoothhiring.com/help/lms/live-classes/overview) calendar events.

Use assignments for deadline-driven compliance; use batches for scheduled cohort experience.

---

## Compliance coordination

When assigning regulatory courses:

1. Create matching **Compliance Type** in HR if not exists ([Employee Compliance](https://smoothhiring.com/help/hrms/documents-compliance/employee-compliance)).
2. Create **Employee Compliance** row in **Pending** when assigned (optional proactive step).
3. On LMS completion, attach certificate and mark Complete ([Compliance Vs Lms Certificates](https://smoothhiring.com/help/lms/hrms-integration/compliance-vs-lms-certificates)).

Assignment **Overdue** in LMS does not auto-set HR **Non-Compliant**—define escalation SOP between HR and managers.

---

## Troubleshooting

| Issue | Fix |
|-------|-----|
| Permission denied on assign | Grant Moderator or use System Manager |
| Employee not in list | Missing User / LMS Student |
| Assignment created but no portal course | Check course Published |
| Progress stuck | Learner must complete lessons/quizzes |
| HR sees overdue but compliance Complete | Different systems—reconcile dates |

---

## Related guides

- [Integration Overview](https://smoothhiring.com/help/lms/hrms-integration/overview)
- [Employee Auto-Provisioning](https://smoothhiring.com/help/lms/hrms-integration/employee-auto-provisioning)
- [Onboarding Mandatory Training](https://smoothhiring.com/help/lms/hrms-integration/onboarding-mandatory-training)
- [Compliance vs Certificates](https://smoothhiring.com/help/lms/hrms-integration/compliance-vs-lms-certificates)
- [Live Classes](https://smoothhiring.com/help/lms/live-classes/overview)
- [LMS Settings](https://smoothhiring.com/help/lms/settings/lms-settings-general)
- [People Overview](https://smoothhiring.com/help/hrms/people/overview)
- [User Roles](https://smoothhiring.com/help/hrms/getting-started/user-roles-permissions)
- [Employee Compliance](https://smoothhiring.com/help/hrms/documents-compliance/employee-compliance)
- [Employee Onboarding](https://smoothhiring.com/help/hrms/onboarding/employee-onboarding)
- [Performance Overview](https://smoothhiring.com/help/hrms/performance/overview)

---

_Last updated: May 2026_

---

## Escalation playbooks

Define tiers when **LMS Training Assignment** hits **Overdue**:

| Tier | Days overdue | Action | HR system |
|------|--------------|--------|-----------|
| 1 | 0–7 | Manager email nudge | — |
| 2 | 8–14 | HR outreach | Note on [Employee Onboarding](https://smoothhiring.com/help/hrms/onboarding/employee-onboarding) or employee file |
| 3 | 15+ | Compliance flag | Set [Employee Compliance](https://smoothhiring.com/help/hrms/documents-compliance/employee-compliance) **In Progress** or **Non-Compliant** per policy |

LMS overdue status alone is operational—translate to HR compliance language for regulators.

---

## Integration with performance cycles

When [Performance](https://smoothhiring.com/help/hrms/performance/overview) appraisals include "complete assigned training," managers pull data from `get_team_training_status` rather than self-attestation. Link appraisal templates to LMS completion exports for audit trail.

---

## Custom desk extensions (advanced)

Organizations may add Client Script on **Employee** form button **Assign training** calling `assign_mandatory_training` with default due date from [template](https://smoothhiring.com/help/hrms/onboarding/onboarding-templates) rules—keep Moderator permission on API.

Server Script alternative: on **Employee** department change, enqueue assignment for department-specific course list maintained in custom configuration list.

Document customizations separately from stock [integration](https://smoothhiring.com/help/lms/hrms-integration/overview) behavior.

---

## Reporting exports

| Report need | Suggested export |
|-------------|------------------|
| All overdue by department | LMS Assignment list + Employee join via User email |
| Completion before start date | Filter assignment Completed + Employee joining date |
| Audit sample | Random 10% Completed with certificate attach verification |

Cross-check [Employee Documents](https://smoothhiring.com/help/hrms/documents-compliance/employee-documents) folder for PDF presence.

---

## FAQ

**Can employees self-enroll to satisfy assignment?** If course allows self-enrollment and learner enrolls before assignment, assignment API still creates tracking row when moderator assigns—or mark complete when progress hits 100%.

**Duplicate course in batch + assignment?** Allowed; learner sees one course with two operational wrappers—avoid confusion by using batches OR assignments, not both for same deadline without comms.

---

## Role-based training curricula

| Job family | Example LMS courses | Assignment trigger |
|------------|---------------------|-------------------|
| All employees | Harassment, security | Onboarding hook |
| Managers | People leadership | Promotion → HR notifies L&D |
| Drivers | DOT safety | Department = Logistics |
| Engineers | IP protection | [Assign Training From Hr](https://smoothhiring.com/help/lms/hrms-integration/assign-training-from-hr) bulk |

Maintain curriculum map with [People](https://smoothhiring.com/help/hrms/people/overview) job titles and [Performance](https://smoothhiring.com/help/hrms/performance/overview) competency models.

---

## Desk list views and filters

On `/app/lms-training-assignment`:

- Filter **Status** = Overdue for weekly HR standup.
- Filter **Course** for module rollout post-incident.
- Export CSV joined to Employee for department dashboards.

Pair with HR list `/app/employee-compliance` filtered **Non-Compliant** for regulatory view described in [Compliance Vs Lms Certificates](https://smoothhiring.com/help/lms/hrms-integration/compliance-vs-lms-certificates).

---

## Permissions hardening

Avoid granting **Moderator** broadly; use dedicated L&D accounts. HR Managers read team status via API without course authoring rights. Document exceptions in [User Roles & Permissions](https://smoothhiring.com/help/hrms/getting-started/user-roles-permissions) change log.

System Managers run `assign_mandatory_training` during cutover— revert to named L&D users after migration.

---

## Notification and reminder mechanics

**LMS Training Assignment** scheduler marks overdue rows and can send reminder emails before due dates (see training assignment reminders). These emails are **LMS operational**, not HR compliance expiry notices from [Employee Compliance](https://smoothhiring.com/help/hrms/documents-compliance/employee-compliance).

Configure email branding consistently with [Onboarding Portal](https://smoothhiring.com/help/hrms/onboarding/onboarding-portal) messages so employees trust links. Include `/lms` deep link and HR helpdesk for access issues tied to [missing LMS Student role](https://smoothhiring.com/help/lms/hrms-integration/employee-auto-provisioning).

When HR assigns remedial training after a safety incident, set due dates aggressively (7 days) via desk edit—document in incident report stored as [Employee Document](https://smoothhiring.com/help/hrms/documents-compliance/employee-documents).

Keep a single source of truth for **who** may assign: document Moderator roster in L&D charter and link HR coordinators to [integration overview](https://smoothhiring.com/help/lms/hrms-integration/overview) for escalation paths.

---

---

## Smooth HR (HRMS)

| Guide | Link |
|-------|------|
| HR help home | [smoothhiring.com/help/hrms](https://smoothhiring.com/help/hrms) |
| Employee records | [hrms/people/employee-records](https://smoothhiring.com/help/hrms/people/employee-records) |
| Onboarding overview | [hrms/onboarding/overview](https://smoothhiring.com/help/hrms/onboarding/overview) |
| Onboarding templates | [hrms/onboarding/onboarding-templates](https://smoothhiring.com/help/hrms/onboarding/onboarding-templates) |
| Employee onboarding | [hrms/onboarding/employee-onboarding](https://smoothhiring.com/help/hrms/onboarding/employee-onboarding) |
| Documents & compliance | [hrms/documents-compliance/overview](https://smoothhiring.com/help/hrms/documents-compliance/overview) |
| Employee compliance | [hrms/documents-compliance/employee-compliance](https://smoothhiring.com/help/hrms/documents-compliance/employee-compliance) |
| Signature templates | [hrms/documents-compliance/signature-templates](https://smoothhiring.com/help/hrms/documents-compliance/signature-templates) |
