Learning administration
/hcm/learning (admin tab) is the HR-admin surface for managing
the learning catalog: publishing courses, approving peer-authored
content through a 4-eyes SoD, configuring the badge catalog +
streak rules + leaderboard, and reviewing learner activity
aggregates. The runtime is a real xAPI 1.0.3 LRS + cmi5 launch
protocol — see Learning for the employee side.
TL;DR — Open HCM → Learning → Admin. Publish courses, approve peer submissions (4-eyes), configure badges + streak + leaderboard, mark courses as required-by-role.
Before you start
- Decide your catalog structure — sections, required vs optional, role-required courses.
- For peer-authored content: define the workspace's submission + review template (rubric, success criteria).
- For badges: decide which milestones earn badges (course count, compliance set complete, streak threshold).
Publish a course
Click "+ New course"
Opens the course-creation form.
Title + description + duration estimate
What learners see in the catalog.
Content source
Upload a cmi5 package, link to an external cmi5-conformant runtime, or use a workspace-authored quiz/video flow.
Prerequisites + success criteria
Other courses the learner must complete first; pass/mastery threshold for completion.
Required-by-role flags
Mark the course required for specific roles (e.g. compliance courses for HR; security training for everyone).
Badge + certificate flags
On completion, issue a certificate? Award a badge?
Publish
Audit log records
HCM_LEARNING_COURSE_PUBLISHED.
Approve peer-authored content (4-eyes)
Peer-authored courses follow a draft → submitted → approved pattern; approval is 4-eyes (author ≠ approver).
Author drafts a course
Same surface as admin-published; saved as DRAFT.
Author submits for review
Status changes to SUBMITTED. Audit log records
HCM_LEARNING_PEER_AUTHORED_SUBMITTED. The course enters the admin review queue.A different admin reviews + approves
Author can't approve their own. Reviewer reads through, runs a test enrollment, and approves / rejects.
Approve
Status changes to APPROVED. Audit log records
HCM_LEARNING_PEER_AUTHORED_APPROVED. The course publishes to the catalog.Reject (with feedback)
Author receives feedback; the course returns to DRAFT.
Badge catalog
| Field | What it does | Accepted values / default |
|---|---|---|
| Default badges (10) | Compliance / Security / Onboarding / Skill-tier badges shipped with the platform. | Enabled by default; can be disabled per workspace. |
| Custom badges | Workspace-authored badges for specific milestones. | Image upload + name + description + criteria. |
| Criteria | What earns the badge. | Course set complete / streak length / certification path / role-required complete. |
| Display in profile | Where badges show. | Learner profile, hover cards, leaderboard. |
Streaks + leaderboard
| Field | What it does | Accepted values / default |
|---|---|---|
| Streak definition | What counts as a daily learning activity. | Workspace-defined; typically: enroll, launch, complete, or earn a badge in a 24-hour window. |
| Streak timezone | Which timezone the streak resets at midnight in. | Workspace timezone (not per-employee). |
| Leaderboard tiers | 5 tiers of learning activity. | Workspace-defined thresholds; default tier names + thresholds shipped. |
| Visibility | Who sees the leaderboard. | Per workspace policy + employee opt-out in [Preferences](/account/preferences). |
Required-by-role enforcement
Mark a course required-by-role
From the course edit form.
Set the deadline
From hire OR from a recurring date (e.g. annual compliance refresh).
Affected employees see the requirement
On
/hcm/meas an Action Inbox item nearing deadline.Past-deadline tracking
Affected employees enter a non-compliant state; HR receives a notification + can chase through the dashboard.
Forums per course
Each course's forum is moderated by workspace admins (delete / pin / lock threads). Common moderation flow:
| Field | What it does | Accepted values / default |
|---|---|---|
| Inappropriate thread | Off-topic, spam, harassment. | Admin deletes; rationale stored. |
| Pinned thread | Key answer to the most-asked question. | Stays at the top. |
| Locked thread | Conversation closed. | No more replies; preserves history. |
Every field, explained
| Field | What it does | Accepted values / default |
|---|---|---|
| Course content source | Where the content lives. | cmi5 package / external runtime / workspace-authored. |
| Prerequisites | Courses required first. | Enforced server-side; can't enroll without completing prereqs. |
| Success criteria | Pass / mastery threshold. | Course-author-defined; xAPI verbs report against it. |
| Required-by-role | Auto-enrollment for matching roles. | Multi-select; multiple roles supported. |
| Badge + certificate | Issued on completion. | Optional per course. |
| Peer-author status | DRAFT / SUBMITTED / APPROVED / RETIRED. | 4-eyes on the APPROVED transition. |
Audit codes
For SIEM ingestion + compliance review, this surface emits:
See Reference → Audit codes for the canonical description of each.
Common gotchas
- "Course rejected non-conformant statements." Cmi5 strict validation per § 4.1; the rejected detail names which statement + which validation failed.
- "Required course passed but no badge issued." Verify the badge criteria — single-course badges typically need the course flagged as part of a badge set.
- "Author published their own course." Not in production — 4-eyes SoD enforced. Workspace-curator workflows can deliver admin-published courses without going through peer-author.
- "Streak reset at the wrong time." Workspace timezone, not employee. Verify in Branding.
Troubleshooting
| Error code | What it means | Fix |
|---|---|---|
LEARNING_CMI5_PACKAGE_INVALID | Package fails § 4.1 validation. | Re-export from the authoring tool with cmi5 conformance enabled. |
LEARNING_PEER_4EYES_VIOLATION | Author tried to approve. | Different admin approves. |
LEARNING_BADGE_IMAGE_TOO_LARGE | Badge image exceeds the upload cap. | Re-export at a smaller size. |
LEARNING_REQUIRED_DEADLINE_MISSING | Required-by-role flag set but no deadline. | Add the deadline. |
Related