Employee Certification & Competency Matrix — CACES, electrical authorization, SST (workplace first aid), ATEX, welding, NDT, refrigerant handling, C license: calculated validity (fixed period or age-based grid), competency matrix, and refusal to assign an employee whose authorization has expired.
Overview
Staff Authorizations and Certifications — DYONYSOS
App for the QHSE department, the operations manager or the industrial engineering office, on Odoo 19 Community.
Also searched as: staff authorization tracking, skills matrix, CACES expiry, electrical authorization refresher training, skills passport, employee certification management. English version: competence matrix with expiry, skills passport, forklift operator licence, first aid certification tracking.
The real problem. A company's authorizations and qualifications are kept in a spreadsheet. It correctly records who passed what and when. It never says no. The day a team leader assigns a machine operator whose CACES certificate expired the previous week, the spreadsheet prevented nothing — and it is the employer who is liable for the assignment.
This module is not a table of dates, it is a blocking rule. A job that requires a certification refuses to be scheduled if the assigned employee does not have it, no longer has it, or has it suspended. The refusal names the person, the certification, and the date on which it ceased to be valid.
Overriding remains possible — never silently. The override is a formal act: it requires a written reason, it records the name of the person granting it and the date, and it is posted to the chatter of the job and of the employee's record. And it only covers the breaches found on that day: if a second breach appears, the override lapses and must be reviewed again.
Qualification types are configurable. CACES, electrical clearance (B0, BS, BR, BC, H0…), SST first-aid certification, ATEX clearance, driver's license, welder certification, non-destructive testing operator, refrigerant handling certificate, or any other qualification specific to your trade. Validity period, issuing body, required refresher training and alert lead time are set per type — nothing is hard-coded.
Some credentials are not valid for the same period for everyone. The heavy goods vehicle license is the typical case: its validity follows the frequency of the medical check, which depends on the driver's age (service-public.gouv.fr, sheet F36483). A credential type is therefore set either to a fixed duration or to a grid based on the holder's age — a grid that is itself entered data, bracket by bracket, with its source. When the date of birth is not known, the module uses the shortest duration in the grid, never the longest, and records this on the qualification: a doubt that extends a validity period would show an employee as up to date who no longer is.
A future deadline that changes the calculation is displayed, not buried. Each type carries a regulatory note, shown as a banner on the type's form and on each qualification. That is where you read, for the refrigerant handling certificate — shipped at 84 months, refresher training being required at least every seven years under Art. 10(9) of Regulation (EU) 2024/573 and Art. 8 of the arrêté (order) of 21 November 2025 — the entry into force on 1 January 2027, the validity of earlier certificates until 31 December 2026, and the first refresher for existing holders due no later than 12 March 2029.
The expiry date is calculated, not entered. Date obtained plus the validity period of the type. A scheduled action switches anything that has expired to “expired” every night, and the blocking rule checks the actual date anyway: it refuses even if the nightly job has not run yet.
An expiry alert, only once. An Odoo activity is created for the manager when the expiry date enters the type's notice period. Never twice for the same qualification: the inbox of a QHSE manager who receives the same reminder every morning ends up being ignored, and the alert becomes useless.
The skills matrix shows the gaps. Employees in rows, certification types in columns, and above all: the empty cells. A matrix that only shows the certifications held is useless — it is the absence you are looking for.
What the module does not do
It grants no authorization and does not verify with any body that a qualification is genuine: it records what you enter and the certificate you attach. It does not issue electrical work authorizations within the meaning of NF C 18-510 — that document is still signed by the employer, outside the software. It does not handle training session scheduling or invoicing. It does not replace the document unique d'évaluation des risques (mandatory workplace risk assessment).
Two roles
User: view the matrix, enter and schedule interventions. Manager: qualification types, employee qualifications, and exemptions.
Specifications
| Price | €99 excl. VAT |
|---|---|
| License | OPL-1 |
| Odoo series | 19.0: published on the Odoo Apps Store; 20.0: published on the Odoo Apps Store |
| Version | 1.1.0 |
| Edition | Odoo Community / on-premise |
| Technical name | dyo_habilitations |
| Domain | Human resources, payroll and fleet |
Price excluding VAT as displayed on the Odoo Apps Store; purchase and installation are done on the Store or through your Omnifloo instance.