Employee Insurance Policies
Track employee insurance cover through a governed workflow with a tamper-evident audit trail.
Why this module
Employee Insurance Policies
Status moves under rules
Policies advance through draft, active, expired and cancelled states defined in the workflow engine. Each transition checks the user's HR group, and final states refuse any further change.
Every change is logged
Create, write and delete events are written to an append-only, sha256 hash-chained audit log. A built-in chain check catches any row that was edited after the fact, so the history is tamper evident.
Thin layer, no reinvention
The module owns the insurance data and its workflow definition only. Workflow, audit and strict multi-company scoping come from the platform core, so there is no duplicated, drifting governance code to maintain.
Day in the life
From new policy to active cover
An HR officer opens a new insurance record, picks the employee, enters the provider, policy number, coverage amount and premium, and adds beneficiaries whose shares add up to one hundred percent. Saving assigns an automatic INS reference. The officer clicks Activate; the workflow checks their group, advances the state, and logs the transition. As the end date nears, the record flags itself as expiring soon with a day countdown, and an officer expires or renews it. Every edit along the way leaves a hash-chained audit row.
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.
Once a policy reaches expired or cancelled, the workflow refuses any further transition, even one a misconfigured definition might declare from it. The is_final marker is authoritative.
Audit rows are appended under a transaction-scoped Postgres advisory lock, so two simultaneous writes cannot fork the hash chain. The lock releases automatically on commit or rollback.
The company-aware mixin refuses writing a record into a company the user does not belong to, even under sudo, unless an explicit audited override context is set. Each elevation is logged with the affected record ids.
A transition is rejected if the current user holds none of the groups allowed on that transition, so activation and expiry stay with HR officers rather than self-service users.
A database CHECK constraint keeps every beneficiary share between zero and one hundred percent, and the policy rolls the shares up to a total so a skewed split is visible at a glance.
Writes capture before and after snapshots of the audited fields only, and skip logging when the captured values did not actually change, keeping the trail meaningful rather than noisy.
What is inside
Built to do the job, end to end.
- Policy record. eh.hr.insurance holds the employee, provider, policy number, policy type, coverage amount, premium and frequency, start and end dates, and an auto-generated INS reference. A list, form and statusbar are included with an Insurance menu under HR records.
- Beneficiaries. eh.hr.insurance.beneficiary stores each named beneficiary, their relationship, contact and payout share. Shares are bounded zero to one hundred by a database constraint and summed into a total on the policy.
- Workflow definition. A shipped workflow with draft, active, expired and cancelled states and activate, expire and cancel transitions, each restricted to the HR officer group, loaded as data you can adjust without code.
- Audit and scoping. Inherited platform mixins add the hash-chained audit trail, the strict multi-company company field, and mail thread tracking on key fields, so policy history and ownership are governed centrally.
- Access control. Three access tiers ship in security: HR admin full control, HR manager read and write, and employee self read-only, applied to both the policy and beneficiary models.
- Tests. A post-install test suite covers default reference assignment, the activate then expire workflow path, beneficiary share rollup, and the expiring-soon flag and day countdown.
Honest about the edges
What this does not do, so nothing surprises you.
- This is a record-keeping and governance module, not an insurance broker or claims system. It tracks policies and beneficiaries; it does not file or adjudicate claims.
- It does not post premiums to accounting or payroll. Premium and frequency are recorded for reference only and are not deducted or journaled anywhere.
- Expiry is shown as a computed flag and day countdown on the record. The module ships no scheduled job or email to notify you of upcoming expiries on its own.
- The workflow, audit trail and multi-company enforcement live in the EH HR Platform core modules, which are required dependencies and must be installed.
- Renewal is manual. There is no automatic roll-over of an expiring policy into a new term.
- Targets Odoo 16 Community. The platform mixins are required and the module is not a standalone install.
odoo employee insurance, hr insurance policy tracking, employee benefits odoo 16, group health insurance hr, life insurance employee records, beneficiary management odoo, insurance policy workflow, hr audit trail odoo, multi company hr odoo, employee policy expiry tracking, odoo community human resources, premium and coverage tracking
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.
Sync attendance clock events from the Employment Hero people platform into the stock Odoo Attendances app, keyed...
The Singapore country pack for the ERP Heritage Employment Hero integration
The complete ERP Heritage Employment Hero integration in one install
Sync timesheet entries from the Employment Hero people and payroll platform into the standard Odoo Timesheets app...
Real-time MRA fiscalisation for Point of Sale receipts in Odoo 16 Community, mapping each paid POS order to the M...
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Employees (hr)
• Discuss (mail) |
| Community Apps Dependencies | Show |
| Lines of code | 1405 |
| Technical Name |
eh_hr_insurance |
| License | LGPL-3 |
| Website | https://erpheritage.com.au |
Please log in to comment on this module