Skip to content

Training & Onboarding

Enterprise feature — requires the enterprise image and a license with the Training & onboarding entitlement. See Enterprise edition.

A policy acknowledgement asks someone to confirm they’ve read a document. Training (from 0.78) goes further: any published document becomes a training deck that people work through slide by slide in a full-screen player, finishing with a compliance confirmation that records exactly which version of the document they were trained on. Assign decks with due dates, auto-assign them to new joiners, bundle them into onboarding programs, and track who’s done from one dashboard.

Open Training in the main navigation and click New deck (requires manager access). Pick the source document from a searchable picker — it shows the 10 most recently updated published documents, and typing filters the full list. Only published documents can become decks.

Deck settings:

  • Due in N days (1–365) — each assignment’s due date is computed from the day it’s assigned.
  • Auto-assign to new members — every new account (created locally, via SSO auto-provisioning, or by SCIM) is assigned the deck automatically on creation.
  • Active / inactive — deactivate a deck to stop new assignments without touching existing ones.

The deck’s slides are the document itself, split on --- (horizontal-rule) lines. The split is fence-aware — a --- inside a code fence doesn’t start a new slide. Editing the document is editing the training.

The editor toolbar has a training page break button that inserts the divider for you. In the editor’s preview a break shows as a labeled “Slide break” marker so authors can see the slide boundaries; on the published document page it renders as nothing at all, so ordinary readers never see training scaffolding.

End the document with a :::compliance block to set the exact wording of the final confirmation:

:::compliance
I have completed the fire-safety training and will follow the
evacuation procedure described here.
:::

Without one, a default confirmation wording is used. Either way, confirming records the person, the timestamp, and the exact document version they confirmed.

Add graded questions to any slide with a :::quiz block (there’s an editor toolbar button). Q: starts a question; - [x] marks the correct option — mark more than one to make it multi-select:

:::quiz
Q: Where may client files be stored?
- [ ] Personal laptop
- [x] The approved DMS
:::

Grading happens server-side — the answer key is stripped before slides reach the browser, so it can’t be read from the page source. Learners answer on the slides and submit at the confirmation gate; the deck’s pass threshold (default 80%, per-deck setting) must be met before the confirmation unlocks. Retakes are unlimited until the deck is confirmed, the latest score counts, and scores appear on the dashboard, in CSV exports, on certificates, and in the audit log. On the published document page a quiz block renders as nothing (like slide breaks); in the editor preview it shows as a labeled callout so authors can proofread the questions.

From 0.82 each deck card also shows question-level analytics: how often every question is answered correctly across attempts (including prior cycles). A question everyone misses is usually a confusing question — or a slide that doesn’t actually teach it.

Assign a deck to individual users, groups, or everyone. Assignment itself grants access to the document’s content in the player — an assignee can complete their training even if the document’s space isn’t otherwise visible to them. Each assignee gets a notification with a due date computed from the deck’s due-in-N-days setting.

New joiners are covered by the deck’s auto-assign switch (or by an onboarding program, below) — no one has to remember to assign the security training to the person who started Monday.

From 0.79, decks can be bundled into onboarding programs — named, ordered lists of decks (“Engineering onboarding”: security basics, incident process, code of conduct). Programs behave like decks, at a higher level:

  • Active programs auto-assign every deck they contain to new members.
  • Assigning a program to people, groups, or everyone creates all the individual deck assignments — but sends one notification naming the program, not one email per deck.

Rolling out CompassDocs training to a team that already did the training elsewhere? Waive a deck for selected people or for everyone (from 0.79):

  • Their assignments are marked complete immediately and recorded as waived — there is no confirmed version, because nothing was confirmed.
  • No notification is sent.
  • Waived shows as its own status — distinct from completed — in the dashboard and in the CSV export, so the record stays honest.

Each deck expands into a people table (from 0.81): status filter chips, name search, and per-person rows with due/completed dates, quiz scores, and prior-completion counts. Row checkboxes open a bulk-action bar — remind now (in-app + email, resets the reminder cadence), waive, extend due dates (someone on leave no longer trips the escalation), and unassign. Unassign removes open assignments only; completed rows are records and can never be removed — reopen them instead. Completed rows offer a per-person Reopen that archives the completion to history and asks the person to retake.

Deck and org CSVs share one schema — status (completed / waived / open), quiz score, and prior completions. From 0.81, Manage decks itself is a dense, searchable table: sort by title, lowest completion, or most overdue, filter by free-form deck tags (e.g. Safety, HR), and click a row to expand the full deck card. Managers can also preview any deck exactly as trainees will see it, without assigning it to themselves.

Click any name (people tables, the attention queue) for that person’s training transcript: every live assignment plus each prior certification cycle, with quiz scores, waivers, and confirmed document versions — printable, with its own CSV. This is the record auditors sample when they ask for one employee’s file.

Annual or periodic training: set Recertify every N months on a deck and each completed assignment automatically reopens once the interval elapses — the person is notified, the due clock restarts, and the prior completion is preserved in a history table (visible as a prior-completions count on the dashboard and in CSVs). Waived records recertify too, so grandfathered staff take the real training on the next cycle.

After a material document update, use the deck’s Reopen completed button to start a new cycle immediately for everyone who had finished — same history-preserving mechanics, without waiting for the interval.

Every real completion (waivers excluded) earns a printable certificate — person, deck, completion date, quiz score, confirmed document version, and the assignment record number. Learners reach it from the player and their My Training card; managers from the deck’s people list. Print to PDF for employee files. From 0.82 the certificate also shows the signed name (when the deck requires an e-signature) and the SHA-256 of the exact content confirmed.

For training where “I clicked a button” isn’t strong enough evidence, turn on Require e-signature in the deck’s settings. At the confirmation gate the trainee must type their full name exactly as it appears on their account (case and spacing don’t matter), and accounts with a local password must re-enter it; SSO accounts sign by typed name alone. The signed name is stored on the completion and shown on the certificate, in the people table CSVs, and in every export.

Independent of signatures, every completion records a SHA-256 hash of the exact document content confirmed — so even after the document is edited, an auditor can tie each historical confirmation to the precise text that was on screen.

Three tools built for the moment an auditor is in the room:

  • Compliance matrix — the Matrix tab shows every person with an assignment × every deck in one grid: done, waived, open, overdue, or not assigned. Search by name; export as CSV.
  • Point-in-time snapshots — a snapshot of the entire training record (totals, decks, matrix, every assignment row) is stored automatically every month, and on demand via Overview → Evidence → Take snapshot now. Each snapshot stores the exact JSON text it was hashed over along with its SHA-256 — run sha256sum on the downloaded file and it reproduces the stored hash, so the evidence is tamper-evident.
  • Audit package — one click on Audit package (ZIP) downloads everything at once: a summary, the matrix and all assignment/history records as CSV, every stored snapshot, and a manifest listing a SHA-256 for each file in the bundle. Exports are recorded in the audit log.

Enable Monthly report email under Overview and pick recipients: each month (alongside the automatic snapshot) they get completion rate, overdue counts, and the lowest-completion decks by email. The training_report template is editable like every other alert email.

Not everyone who needs visibility should manage the program. Under Overview → Team leads, name one or more leads per group: leads get a scoped /training/team page showing just their group’s members and status (a banner on their Training page links to it), plus a weekly email digest of where their team stands. Leads see nothing outside their own groups and need no section grant — leading the group is the access.

The Overview tab gives training managers the whole program at a glance: active decks, people with assignments, overall completion, and per-deck completion bars (sorted lowest-completion first, with waived counted separately) — plus All records (CSV), one export across every deck with quiz scores and prior-completion counts.

From 0.81 the overdue list is a needs-attention queue: overdue assignments, quiz attempts below the pass threshold, and stalled trainees (started, then idle for 14+ days) in one actionable list with inline Remind, +7 days, and Snooze (hides the row for a week). Work it to zero; the header is honest about truncation (“showing 50 of N”).

Both from 0.79:

  • Archive hides a deck from everyone — learners and managers — while keeping its full assignment history. Archived decks are listed at /training/archived and can be restored at any time.
  • Permanent delete removes the deck and its open assignments — but from 0.81, completed assignments are archived to the completion-history table first (with name and title snapshots), so the evidence survives the deck. The same safeguard applies when a user account is deleted: their completed training is preserved in history before the account goes.

Everyone with open assignments sees a Training tab in the sidebar with a badge counting them. The Training page shows a card per assignment with its progress and due date. Opening one launches the player:

  • Next / Back buttons and arrow keys move between slides, with progress dots showing where you are.
  • Leaving and coming back resumes at the same slide; Save & exit (or Esc) leaves deliberately.
  • The final slide is the compliance gate: the confirmation wording (from the :::compliance block, or the default), and confirming completes the assignment — recording the exact document version confirmed.

Two notification kinds cover training, both with editable email templates:

  • training_assigned — sent when a deck (or program — one notification naming the program) is assigned.
  • training_due — due and overdue reminders. A background job runs hourly and reminds people whose assignment is due within 3 days or overdue, at most once per 3 days per assignment, so nobody is nagged daily.

From 0.80, when someone crosses a week overdue, the deck’s creator gets an in-app notification (once per assignment) so stalled training doesn’t go unnoticed.

0.82 adds two more editable templates: training_report (the monthly summary for chosen recipients) and training_team_digest (the weekly per-lead team summary). Both send only when SMTP is configured, and the weekly digest goes out once per ISO week however many app instances run.

Admins always can. To delegate — an HR or L&D manager who shouldn’t need full admin rights — grant the person or a group the Training section under Settings → Section access: “Create training decks, assign them, and track completion (everyone always sees their own assignments).” As that description says, learners always see their own assignments — the grant is only about creating, assigning, and tracking.