HR Training and Certifications
Turn "who is about to fall out of compliance?" into a one-click answer.
Why this module
HR Training and Certifications
Never silently lapse
A daily job recomputes every certificate status against today and flags anything inside its alert window or already expired, so an officer sees the gap before an auditor does.
Expiry is computed, not typed
Set the issue date and validity months and the expiry date and days-to-expiry follow automatically. Set validity to zero for a certificate that never expires.
Every change on the record
Certifications and courses write to an append-only, hash-chained audit log, and certification records are pinned to their owning company so they cannot leak across the group.
Day in the life
Monday morning, one screen
An HR officer opens Certifications. The default view already filters to records that need attention, with expired rows in red and expiring rows in amber. Over the weekend the daily watch posted a renewal note and a to-do activity on each certificate that crossed into its alert window, assigned to the holder's manager. The officer books the renewals, records the new issue date, and the expiry, status and days-to-expiry recompute on the spot.
Edge cases
The cases most modules quietly ignore.
In the shipped code today, each one a place where a cheaper module silently does the wrong thing.
Each certificate carries a reminder_sent flag. The daily cron posts a chatter message and HR activity once per lapse, so a certificate that stays expired for weeks is not re-alerted every single day.
Status and days-to-expiry are stored but depend on the current date. The cron force-recomputes and flushes them each run so a Valid certificate flips to Expiring or Expired as the calendar moves, not just when the record is edited.
Scheduling the HR activity is best-effort and wrapped so a missing activity type or a single bad record cannot abort the whole nightly run for the rest of the workforce.
Certification records default to the acting company and refuse cross-company writes unless an explicit, audited override is set, so one company's compliance data never bleeds into another's.
Creates, writes and deletes on certifications and courses append to a hash-chained log whose appends are serialized by a Postgres advisory lock, so the trail is ordered and tamper-evident.
A course or certificate with zero validity months is treated as permanent: expiry date stays blank, status reads No expiry, and the cron skips it entirely.
What is inside
Built to do the job, end to end.
- Training course catalog. Courses with a code, one of six categories (Safety, Compliance, Technical, Soft skills, Onboarding, Other), provider, default validity in months, a default alert window, a mandatory flag, description and an archive toggle. A stat button counts and opens the certifications referencing each course.
- Employee certifications. Per-employee records with auto-generated reference numbers, issue date, validity months that default from the course, computed expiry date, live status, days-to-expiry, an individual alert window, certificate or licence number, an optional score, attachment files for the scanned certificate, and free-text HR notes.
- Daily expiry watch. A scheduled action runs once a day, refreshes the stored status of every dated certificate, then posts a chatter message and a to-do activity (routed to the holder's manager where known) on anything expiring or expired, marking it so the alert fires once.
- Views and filters. Color-coded list, a form with Expired and Expiring ribbons, and a search view with ready filters for Expired, Expiring soon, Valid and Needs attention, plus group-by status, category and employee. Officer menus surface the expiring-and-expired shortlist directly.
- Access and audit. Self-service users get read-only visibility; HR officers create and edit. All certification and course changes flow into the platform's append-only, hash-chained audit log, and certifications are company-scoped by the strict company-aware mixin.
Honest about the edges
What this does not do, so nothing surprises you.
- This is a register and tracker, not a learning platform. It does not host course content, lessons, quizzes or e-learning delivery.
- Renewal alerts are delivered as chatter messages and HR activities inside Odoo. It does not send email digests or external notifications on its own.
- The mandatory flag and category drive manual filtering and grouping. The app does not auto-generate a who-is-missing-which-mandatory-training coverage report.
- There is no employee self-service request or enrollment workflow; self-service users have read-only access and officers maintain the records.
- It ships no skills or competency matrix and no built-in PDF or printed compliance certificate output.
- Requires the eh_hr_core and eh_hr_compat platform modules and the standard hr app; it is part of the EH HR platform, not a standalone install.
Odoo 17 training certifications, employee certification tracking, certification expiry alerts, training management Odoo, compliance certification register, licence expiry tracking, renewal reminders HR, mandatory training Odoo, HR audit trail, multi-company HR certifications
Need this fitted to the way you work?
ERP Heritage delivers end to end Odoo work: Odoo Implementation, Customization and Development, Integration, Migration, Consultation, Support and Training. We help teams put this module into production, shape it to their process, and keep it running.
We work with businesses across Australia (Melbourne, Sydney, Brisbane, Perth, Adelaide, Canberra) and the Middle East (Dubai, Abu Dhabi, Riyadh, Jeddah, Doha, Kuwait City, Muscat). Start a conversation at erpheritage.com.au or email info@erpheritage.com.au.
Languages
Available in 19 languages
The interface ships translated out of the box. Switch language in Odoo and the fields, menus, and messages follow.
Modules teams pair with this one.
Premium ERP Heritage modules that extend the same stack, each built to the same engineering bar.
The Australia country pack for the ERP Heritage Employment Hero integration
Sync certifications, qualifications and employee document metadata from the Employment Hero people platform into...
Sync Employment Hero leave categories, leave requests and leave balances into the standard Odoo Time Off app, wit...
Show the Hijri (Umm al-Qura) date alongside Gregorian dates across Odoo 17
Please log in to comment on this module