| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Attendances (hr_attendance)
• Employees (hr) • Discuss (mail) |
| Community Apps Dependencies | Show |
| Lines of code | 4271 |
| Technical Name |
eh_hr_attendance_pro |
| License | LGPL-3 |
| Website | https://erpheritage.com.au |
| Versions | 16.0 17.0 18.0 19.0 |
EH HR Attendance Pro
Event-sourced attendance that proves itself.
An immutable event log is the source of record and projects into standard hr.attendance, so payroll and reporting read native rows while integrity lives in the chain.

EH HR Attendance Pro is for teams running Odoo Community 16 to 19 that want event-sourced attendance that proves itself handled inside Odoo, on the same audited platform as the rest of their HR, instead of in a side spreadsheet or a separate tool.
A separate system to buy, a custom build to commission, and an integration to keep alive. It installs from the standard Apps menu and shares the platform engines, so it behaves like the modules beside it from day one.
What this module does
An immutable event log is the source of record and projects into standard hr.attendance, so payroll and reporting read native rows while integrity lives in the chain.
Everything in the box, nothing stubbed.
Immutable, append-only event log
Idempotent multi-source ingest: kiosk, mobile, biometric, webhook, import
Geofence and per-device throttle
Derived day projection
Projects into standard hr.attendance
Out-of-pipeline edits are detected and audited
What it actually installs.
Straight from the manifest and the source. No surprises.
Models this module adds
- eh.hr.attendance.correction
- eh.hr.attendance.day
- eh.hr.attendance.event
- eh.hr.attendance.import.wizard
- eh.hr.geofence
- eh.hr.kiosk.device
- eh.hr.shift
Standard Odoo models it extends
- hr.attendance
Built on: eh_hr_core, eh_hr_compat, eh_hr_engine_workflow, eh_hr_engine_approval, eh_hr_engine_policy, eh_hr_engine_notification · Odoo dependencies: hr, hr_attendance
Bundle or piece by piece.
This module on its own
Install eh_hr_attendance_pro from the Apps menu. It pulls only its dependencies: eh_hr_core, eh_hr_compat, eh_hr_engine_workflow, eh_hr_engine_approval, eh_hr_engine_policy, eh_hr_engine_notification, hr, hr_attendance.
Apps → search "EH HR Attendance Pro" → Install
Or the whole platform at once
Install eh_hr_platform to deploy the entire EH HR Platform in one click. This module is part of it.
Apps → search "EH HR Platform" → Install
The full EH HR Platform
Every module on one architecture: extend standard Odoo HR, never duplicate it. Your current module is highlighted.
Strengths that compound.
The same engineering choices run through every module, so the platform is stronger than a drawer of separate add-ons.
Extend, never duplicate
Built on standard Odoo HR and projected into the native models. No parallel tables, no duplicated fields, no data to reconcile later. Your reports and payroll keep reading the standard records.
Tamper-evident audit
Changes are written to a hash-chained log you can verify on demand. Show who changed what, and pass audits, without bolting on extra tooling.
Configure, do not code
Workflows, approval chains, policies and notifications are data. An administrator changes how the business runs, not a developer on a billable day.
One source, four versions
Runs on Odoo 16, 17, 18 and 19 Community from a single codebase, with the automated test suite green on every one. Upgrade on your schedule, not ours.
Yours to own
Permissive LGPL-3, self-hosted on your own server. No per-user subscription, no usage caps, and no employee data leaving your control.
Honest by default
Documented service APIs, real automated test coverage, and listing pages that describe only what the software actually does, with no invented benchmarks.
Engineering you can audit.
Projection architecture
Source-of-record models project into standard hr.* rows, so integrity lives in our chain while Odoo keeps reading native data.
Hash-chained audit
An append-only log links each change to the one before it. Verify the chain on demand to prove nothing was edited after the fact.
Tested on 16 to 19
One authored source, derived to each series by a build step, with the full unit suite run green on Odoo 16, 17, 18 and 19.
Yours, and self-hosted
LGPL-3 and installed on your own server. No subscription to keep it running and no data leaving your database.
ERP Heritage
ERP Heritage builds premium, honestly engineered apps for Odoo Community. Every app extends standard Odoo rather than replacing it, runs unchanged across Odoo 16 to 19, and ships with real automated test coverage.
We describe only what the software does, with no invented numbers. The code is LGPL-3 and self-hosted, so it stays yours. Questions before you buy? Write to info@erpheritage.com.au.
Everything you are about to ask.
Which Odoo versions does it run on?
Odoo 16, 17, 18 and 19 Community. One authored source targets all four; the 16 and 17 view layers are produced from it by a build step, and the full unit suite runs green on every series.
Is there a subscription?
No. It is LGPL-3 and self-hosted, with no per-user fee and no usage cap. Once it is installed there is nothing recurring to keep it running.
Can I install only this module?
Yes. It installs on its own and pulls only its dependencies (eh_hr_core, eh_hr_compat, eh_hr_engine_workflow, eh_hr_engine_approval, eh_hr_engine_policy, eh_hr_engine_notification, hr, hr_attendance). You can add the rest of the platform later, or install the eh_hr_platform bundle to get everything at once.
Does it duplicate Odoo's HR, or extend it?
It extends it. The platform builds on standard Odoo models and shared engines; source-of-record modules project back into the native hr.* records, so you are never maintaining two copies of the same data.
Do I keep control of my data?
Yes. It runs inside your own Odoo database on your own server. No employee data leaves your control, and nothing phones home.
Is it actually tested?
Yes. The platform ships with an automated unit-test suite that is run green on Odoo 16, 17, 18 and 19 before release. The listing describes only what the code does.
Please log in to comment on this module