---
title: Academy (training)
description: Your in-house training platform — a video library, structured training programs with an ordered learning path, scored tests, assignments and progress, a login-free portal for candidates before hiring, and a training record written back to the employee's HR profile. Off by default.
product: TSync Intelligence 11.3.6
language: en
canonical: https://docs.tsync.pro/modules/tsync-academy/
source: https://docs.tsync.pro/llms.txt
---

# 🎓 Academy — training

**Academy** is where your company's know-how lives. It comes in two layers, and you choose how far you go:

1. **The video library** — your how-to, onboarding and product videos in one place, organized by category,
   each with a player and a discussion. Available to staff, to clients in their portal, or both.
2. **Structured training (Instruiri)** — real training **programs**: an ordered **learning path** of steps
   (video, material, test, task, link), assigned to people, with progress tracking, **scored tests**, a
   login-free **candidate portal** for people you haven't hired yet, and an automatic **training record** in
   the employee's HR profile when they finish.

Everything is **off by default**. Nothing changes until an administrator turns it on.

## Turning it on

1. **Install** the module from **Config Center → Module Management** (Module Management Center) — or from the
   Modules page. Its tables are created automatically.
2. Open the **Academy** card in the **Config Center** (always available, even while the module is inert).
3. In **Academy → Settings** set **Module status**:
   - **Off (inert)** — nothing is shown; only this Settings page is reachable.
   - **On** — the **Academy** item appears in the sidebar and a **Training** tab appears in your clients'
     portal.
4. Still in Settings, decide whether you also want the training layer:
   - **Enable structured training** — adds the **Training programs**, **Tests** and **My learning** menus and
     the HR training-record feed. Leave it off and you have the video library alone, exactly as before.
   - **Allow candidate (pre-hire) access via invite link** — lets you invite someone who isn't a staff member
     yet (see *Inviting a candidate* below).
   - **Candidate invite validity (days)** — how long an invite link stays alive (14 by default).

Once structured training is on, **Academy** becomes a menu with children: **Video library**, **Training
programs**, **Tests** and **My learning**.

## The Academy overview

**Clicking "Academy" itself opens an overview page** — the section's own landing page, not a seventh list.
It answers the two questions you actually arrive with: *what is in here*, and *what do I owe right now*.

- **Tiles** for the video library, training programmes, the test bank, certifications, the training matrix
  and the knowledge base, each with a live count, so one glance tells you whether a section has anything in
  it.
- **My open training** — the programmes assigned to you that aren't finished, with anything **overdue**
  marked.
- You only see the tiles your role gives you access to; a section you can't open is not shown at all.

Until v9.1.0, clicking the section name only unfolded the submenu on the left and left the right-hand pane
on whatever page you had open before — reported by a client in exactly those words. A section that has a
real page of its own now opens it.

## Who can do what (permissions)

Set these per role under **Setup → Roles**. A right granted **on a role** works exactly like one granted to a
person directly.

| Right | What it allows |
|-------|----------------|
| **View training videos** | Browse and watch the library, take part in a video's discussion. |
| **Manage videos & categories** | Add, edit and delete videos and categories; see inactive videos. |
| **View training (LMS)** | See **My learning** and work through the programs assigned to you. |
| **Manage training (LMS)** | Create programs, build learning paths and tests, assign people, invite candidates. |

Administrators have everything.

---

# Part 1 — the video library

## Organizing videos into categories

Open **Academy → Categories** (managers only) to group your videos:

- **Add a category** with a name and an optional sort order.
- **Edit** a name or order inline, or **delete** a category.
- Deleting a category never deletes its videos — they simply become **Uncategorized**.

## Adding a video

Open **Academy → New video** (managers only) and fill in the form:

| Field | What it does |
|-------|--------------|
| **Title** (required) | The name shown on the card and the video page. |
| **Category** | Groups the video under a heading (or leave it *Uncategorized*). |
| **Visibility** | Who can see it — *Staff only*, *Clients only*, or *Staff + clients*. |
| **Source** | Where the video comes from — an *Embed / YouTube URL*, a *File URL*, or a video kept in *File Hub*. |
| **Video URL** | The link to the video (see below). |
| **Thumbnail URL** | An optional picture for the card; without one, a play icon is shown. |
| **Duration** | Free text such as `12:34`, shown for information. |
| **Sort** | Controls the order within a category. |
| **Description** | A short description shown under the player. |
| **Active** | Uncheck to hide a video from everyone except managers. |

**About the video link:** a **YouTube or Vimeo** address is recognized automatically and turned into an
embedded player. A **direct video-file link** (for example an `.mp4` or `.webm`) — or a video stored in
**File Hub** — plays in a built-in player. Paste the address into the **Video URL** field.

## Watching videos (staff)

The **Video library** opens a grid of video cards **grouped by category**, each showing the thumbnail, title
and number of views.

- **Filter by category** with the dropdown, or **search** by title or description.
- Click a card to open the video's page — the **player**, the **description** and the **discussion** below it.
- The **view count** goes up each time a video is opened.
- **Discussion:** any staff member can post a comment on a video; managers can delete comments.

## Who sees which video

| Visibility | Shown in the staff library | Shown in the client Training tab |
|------------|:--------------------------:|:--------------------------------:|
| **Staff only** | Yes | No |
| **Clients only** | No | Yes |
| **Staff + clients** | Yes | Yes |

An **inactive** video is hidden from everyone except managers. In the library itself there is **no per-person
assignment** — everyone who can reach Academy sees the videos their role and each video's visibility allow.
When you need to assign training *to a specific person* and follow their progress, that's what the training
programs below are for.

## The client "Training" tab

When Academy is **On**, logged-in customers get a **Training** tab in their portal, showing the videos marked
*Clients only* or *Staff + clients*, grouped by category. A client can **watch** and **comment** — nothing
else.

## Where videos are stored

Academy does not host video files itself. Every video is either an **embed link** (YouTube, Vimeo…), a
**direct video-file URL**, or a video kept in **[TSync File Hub](tsync-filehub.md)** — so one library can mix
links and hosted files.

---

# Part 2 — structured training (Instruiri)

## Create a training program

**Academy → Training programs → New program**: give it a name and a description (and mark it active). Save,
and you land in the **program builder**, which has three parts: the learning path, the assigned people, and
the candidate invite box.

## Build the learning path

The **learning path** is an ordered list of **steps**. Add a step, choose its type and title, and set two
switches:

| Step type | What the learner does |
|-----------|----------------------|
| **Video** | Watches a video you pick from the library. |
| **Material** | Reads the material you describe in the step. |
| **Test** | Takes a scored test you attach (see below). |
| **Task** | Does something practical and ticks it off. |
| **Link** | Opens an external address you provide. |

- **Required for completion** — on by default. A step left optional is shown with an *optional* badge and
  doesn't hold up the program.
- **Hiring gate** — marks the step as the point a **candidate** must reach. A candidate sees the path only up
  to and including the first hiring gate; nothing beyond it.

**Sort** decides the order. You can edit or delete a step at any time.

## Build a test

**Academy → Tests → New test** sets the rules:

| Field | Meaning |
|-------|---------|
| **Test name** | What it's called on the step and in results. |
| **Pass threshold (%)** | The score needed to pass. Starts at 70 %. |
| **Max attempts** | How many tries are allowed. **0 = unlimited.** |
| **Time limit (min)** | 0 = no limit. |
| **Shuffle question order** | Presents the questions in a different order each time. |
| **Active** | Uncheck to retire a test. |

Then add questions in the **test builder**: **Single choice**, **Multiple choice** or **True / False**, each
worth the **points** you give it, with the correct answer(s) ticked and an optional **explanation** shown
after grading.

**Grading is automatic and points-weighted** — the learner's score is their points divided by the total
points, compared with the pass threshold. A learner who has already **passed** cannot retake to spoil the
result, and once **max attempts** is used up the test is closed to them.

## Assign people

In the program builder, pick one or more staff members, optionally set a **due date**, and click **Assign**.
Each person now sees the program in **My learning**.

- **Unassign** removes someone from the program (with a confirmation).
- Assignments made automatically — for example by [Quality Control](tsync-qc.md) after a failed evaluation —
  appear the same way, marked with where they came from.

## Inviting a candidate (before you hire)

If **candidate access** is enabled, the program builder also has **Invite a candidate (pre-hire)**: type the
person's **name** (and optionally an e-mail) and click **Generate access link**.

- You get a **tokenized link** to hand over — the candidate opens it in any browser and studies the program
  **without an account and without logging in**.
- The candidate sees the path **up to and including the first hiring gate**, and nothing after it.
- The link expires after the number of days set in Settings, and you can **revoke** a candidate at any time —
  the link stops working immediately.
- When they finish the pre-hire part, the portal tells them your team will be in touch.

## Doing the training (the learner's view)

**My learning** lists everything assigned to the logged-in person, with a status — *Assigned*, *In progress*,
*Completed* — a due date if there is one, and a **Continue** (or **Review**) button.

Inside a program the learner sees the path in order, with a progress line ("3/5 required steps completed ·
60 %"), the *optional* and *hiring gate* badges, and per step:

- a **video** step opens the library video;
- a **test** step opens **Take test** (or **Retake test**, or **View result** once passed);
- every other step has a simple **Mark done** button.

When all **required** steps are done, the program is marked **Completed** and the learner gets a confirmation
— including that a training record was added to their HR profile.

## The HR training record

When a **staff** learner completes a program, Academy writes a **training record** into
[HR Records](tsync-hr-profile.md): one training per program (so a second person completing it joins the same
record instead of creating a duplicate), with that employee as a participant. The employee's HR file
therefore reflects the training they actually completed, without anyone re-typing it.

## Where it shows up elsewhere

- **Dashboard** — a **My learning** tile shows what you still have to do; switch it on from **Customize
  widgets** on the [dashboard](../dashboard.md).
- **Quality Control** — a failed evaluation can automatically assign a remedial program; see
  [Quality Control](tsync-qc.md).
- **Automations** — training assignments and completions are ordinary system events, so
  [TSync Automations](tsync-automations.md) can act on them.

## Certification: "valid until", not just "completed"

For mandatory training the question you have to answer is not "did they finish the course?", it is **"are they
certified right now?"**. Those are different things: somebody may have finished a course three years ago that
has since expired.

On a programme you set a **validity period**, in months. From then on, whoever completes it automatically gets
a **certificate** with an expiry date. You see them all under **Academy → Certifications**, split into valid,
expiring soon, expired, no-expiry and superseded.

A few things worth knowing so they do not surprise you:

- **Validity counts from the completion date**, not from the day you entered it. A certificate recorded a month
  late does not gain an extra month.
- **Recertification deletes nothing.** When somebody retakes the programme the old certificate becomes
  "superseded" and stays in the list. The history — who held what, and when — is exactly what an audit asks for.
- **The state is computed every time it is displayed**, from the expiry date. It is not a separate field that
  can quietly fall out of date overnight.
- A programme with **no** validity period issues certificates that never expire. That is how every programme
  behaves until you set one — nothing changes by itself.

**Warning ahead of time.** At 30 and 7 days before expiry (both adjustable in settings) the system flags
certificates that are about to lapse. If you tick **auto-reassign** on the programme, it re-assigns itself at
expiry. Left unticked, you are simply told — because putting a course in front of somebody is an action, not a
notification.

## What was actually taught

A training record is only defensible if you can show **what** the course contained at the time. Programmes get
edited: without this, a 2024 certificate would point at today's material.

The system takes a **snapshot of the programme** — the ordered list of materials, tests and tasks — at the
moment somebody completes it, and ties it to the certificate. The certifications list shows it as "Revision
attested". A new snapshot is only taken when the content actually changed; a save that alters nothing does not
create one.

Certificates issued before this existed show "—". That is an honest gap, not an error.

## The training matrix: who must hold what

Until now a course reached somebody because a manager assigned it, or because a quality evaluation failed. What
was missing is the sentence compliance actually runs on: **"everyone in role X must hold certification Y"**.

Under **Academy → Training matrix** you write exactly that. A rule has a name, a programme, and who it covers:
all staff, a role, a department or a position. **"All staff" is the default** — a new joiner falls under the
rule automatically instead of silently sitting outside it.

For each rule you see the **real coverage**: how many meet it out of how many are covered, plus how many are
missing it, how many have expired, how many are in progress. It is shown with its denominator, never as a bare
percentage — "9 of 11, 2 missing" tells you who to go and find; "82% compliant" does not.

**A rule does not act on its own.** Tick "automatically assign the gaps" and the daily run assigns the
programme to whoever lacks it or whose certificate expired. Left unticked — which is the default — the rule
only shows you the picture, which is the useful part anyway.

The **Recompute now** button gives you the current picture immediately instead of waiting for tomorrow.

## Making a retake a real test again (question pools)

A test with a fixed set of questions stops testing anything after the second attempt. Shuffling the order does
not help: it is the same questions in a different sequence, so a retake measures memory of the test rather than
knowledge of the material.

Put your questions into **pools** — a short word on each question, like `safety` or `handling` — and then tell
the test how many to draw from each. Twenty questions in the pool, five drawn, and two attempts genuinely
differ.

- A test that draws nothing asks **everything**, exactly as it does today. Nothing changes until you say so.
- A pool asked for more questions than it holds gives what it has, rather than failing.
- A draw that matches no pool falls back to the full set — a learner never opens an empty test.
- The system records **which questions were actually asked** on each attempt, which is what makes the next
  section possible.

## Which questions are doing their job

Under a test you can see, for each question, how it behaves in practice:

- **How many got it right.** A question everybody answers correctly teaches you nothing about anybody; one
  almost nobody gets is usually badly worded rather than hard.
- **Whether it agrees with the rest of the test.** If the people who score well overall are the same people who
  get this question right, it is measuring the same thing the test measures. If it is the other way round, the
  question is probably confusing or the marked answer is wrong.
- **Whether the test hangs together** as one coherent measurement.

Two honesty notes, because a number next to a question is easy to act on:

- A question **everybody** answers correctly is shown as "undefined", not as a bad question. There is nothing to
  compare it against — calling that "weak" would send you to delete a perfectly good question.
- Below **30 attempts** the whole thing is marked as indicative. A judgement drawn from four attempts is noise,
  and it deserves to say so rather than look authoritative.

## Where these three live

They were described here before they were reachable. As of **2.5.0** each has a screen:

- **Pools.** On a question, fill the **Pool** field (it suggests the pools already used in that test). Then open
  **the test's settings** and, under *Draw from question pools*, say how many to ask from each. Leave it empty
  and every question is asked, exactly as before.
- **Item statistics.** In the tests list, the small chart button beside a test. Every figure is shown next to
  how many answers it is based on.
- **Refreshers.** At the top of **My learning**, whenever one is due.

One thing worth knowing about pools: because each attempt draws a fresh set, a **retake is not the same test**.
That is the whole point — and it also means the number of questions asked is the number you configured, not the
number in the bank. Somebody who answers all ten drawn questions correctly scores 100%, not 25%.
## Refreshers, spaced out (boosters)

Most of what a person learns on a course is gone within weeks unless something brings it back. A short quiz at
widening intervals is the single best-evidenced fix, and it costs almost nothing because it reuses the tests
already in the programme.

Set the intervals in the module settings — for example 7, 30 and 90 days. After somebody completes a
programme, they get a short refresher at each of those points, drawn from the tests inside it.

**It ships empty**, so no install starts sending quizzes it never asked for. And the daily run only *signals*
that a refresher is due — it never marks anybody down.

## "Do this one first" (prerequisites)

Ordering the steps of a learning path is not the same as enforcing them. A learner could always jump ahead, and
a programme that assumes the safety module came first had no way to insist.

Two levels are available:

- **Inside a path** — an item can require another to be finished, optionally with a **minimum score**. "Open the
  practical only once the theory scored at least 80%."
- **Between programmes** — a programme can require another. Here the system checks the person **currently
  holds** the certificate, not merely that they once completed it: an expired certificate does not satisfy a
  prerequisite, or it would not be one.

When something is locked, the learner is told **which** item to finish and **what score** it needs. "Locked"
with nothing further just produces a phone call.

One deliberate choice: if the requirement cannot be checked at all — say the item it points at was deleted —
**the step opens**. Locking somebody out of their own training because of a broken reference is the worse
mistake. The purpose is to sequence learning, not to trap people inside it.

## Classroom sessions and attendance

For anything taught in a room, the evidence a regulator asks for is the attendance sheet. A classroom session
recorded only as a ticked-off step proves nothing about who was actually there.

Under the programme you schedule a **session** — date, place, trainer, capacity — enrol people, and mark who
attended.

**You cannot mark attendance for a session that has not started yet.** That is not an early entry, it is a
false one, and the whole value of an attendance record is that it cannot be made.

## Good to know

- **Deleting a program cleans up after itself.** Its assignments, progress and test attempts go with it, and
  any candidate links for it stop working — no orphan portal links left resolvable.
- **The candidate portal opens in your install's language**, not in English, so a Romanian or Russian
  candidate gets a page they can read.
- **Nothing is destroyed when the module is uninstalled** — videos, programs and progress stay in the
  database.

## Where to go next

- ✅ Measure the work and trigger training on a failure → [Quality Control](tsync-qc.md)
- 👥 Employee files, departments and training history → [HR Records](tsync-hr-profile.md)
- 📁 Store your materials → [File Hub](tsync-filehub.md)
- 🏠 Lost? Head back to [Getting started with TSync](../index.md)
