- Home
- Apps
- SaaS Tools
- Audit Trail / Audit Log
Illustrative previewLog every create, read, write and delete on any Odoo model with old/new field values for full,
exportable traceability.
What is Audit Trail / Audit Log?
Log every create, read, write and delete on any Odoo model with old/new field values for full, exportable traceability. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your Odoo.
- 3
Go live + support
You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.
Technical Specifications
- Odoo Compatibility
- Odoo 17, Odoo 18, Odoo 19
- Editions
- Enterprise & Community
- License
- Licence confirmation required
- Python Requirement
- Python 3.10+
- Database
- PostgreSQL 12+
About this Product
Regulators, auditors and finance controllers all ask the same question: "Who changed this record, when, and what was the value before?" Odoo core keeps a lightweight message log on chatter-enabled models, but it does not give you a complete, field-level, tamper-evident audit trail across every model your business runs on. This is a build-to-order Audit Trail / Audit Log module that ECOSIRE designs, builds, installs and supports specifically for your database.
The module hooks the ORM lifecycle — the create(), read(), write() and unlink() methods — on any models you nominate, capturing the operation type, the acting user, the timestamp, the source (UI, XML-RPC/JSON-RPC, automated action or cron), and a per-field diff of the old value versus the new value. Instead of a vague "record updated" line, you get a structured, queryable log: field list_price on product.template changed from 149.00 to 199.00 by user Jane at 14:32 from the web client. Every entry is stored in dedicated audit models with proper indexing so retrieval stays fast even as the log grows into the millions of rows.
Because we build it for your instance, the logging is scoped and configurable rather than a blunt "log everything" switch that bloats your database. You define which models are tracked, which fields matter, which operations (including read access for sensitive data) are recorded, and which users or record domains are in or out of scope. Configurable retention and volume-limiting rules keep the log lean; automated purge/archive actions roll off old entries on a schedule you approve.
Security is first-class. Access to the audit log itself is governed by ir.model.access.csv and record rules so only your compliance or admin group can read it, and standard users cannot see or delete entries about their own activity. Views are delivered as clean list, form, search and pivot layouts (XML/OWL) with saved filters for per-user and per-model drill-down, plus a QWeb PDF audit report and one-click export to XLSX/CSV for handing to external auditors. The module runs on Odoo Community and Enterprise and is delivered tested for Odoo 17, 18 and 19.
This is not an instant download. After purchase, ECOSIRE runs a short scoping call, builds the module against your exact model list and compliance requirements, installs it on your staging and production environments, trains your team, and backs it with a support window. Typical delivery is one working week depending on how many models and edge cases are in scope.
What you get
- Complete, installable Odoo module (source code with __manifest__.py) built for your database and tested on Odoo 17, 18 and 19 as required
- Configured tracking ruleset — the exact list of models, fields, operations and user/domain scopes agreed in the scoping call, loaded and ready
- Security layer: ir.model.access.csv access rules and record rules restricting the audit log to your designated compliance/admin group
- Reporting assets: QWeb PDF audit report template plus XLSX/CSV export configured for your auditor's format
- Installation and deployment on your staging and production environments, with a smoke-test pass on live models
- Administrator and end-user documentation covering configuration, retention rules, filtering and export
- A live training session for your compliance/admin team on reading, filtering and exporting the audit trail
- A defined post-go-live support and bug-fix window, with clear terms for updates across Odoo point releases
Who this is for
Compliance & Risk Officer
Needs demonstrable, field-level change history across finance, HR and inventory data to satisfy auditors and regulators. Wants a single, restricted place to answer 'who changed what, when, and from what value' without asking IT to dig through raw tables.
Finance Controller / CFO
Responsible for the integrity of financial records in Odoo Accounting and Sales. Wants tamper-evident tracking of edits to prices, invoices, journal entries and master data, plus clean exports for the external audit.
ERP Administrator / IT Manager
Runs the Odoo instance and must implement change-tracking without bloating the database or degrading performance. Wants configurable, scoped logging with proper indexing and automated retention rather than a crude log-everything toggle.
Data Protection / DPO in a regulated firm
Must prove who accessed sensitive personal or financial records. Needs optional read-access logging on protected models and strict access control over the audit log itself.
How Audit Trail / Audit Log Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Field-level old-vs-new value capture on any model | Full diff (old and new value) on every tracked field | Possible but you design and test the diff logic yourself | Varies; many log only that a field changed, not both values | Chatter tracking only on selected fields of chatter-enabled models |
| Coverage of read/delete and custom methods | create, read, write, unlink plus nominated custom methods | Whatever you build and maintain | Usually create/write/unlink; read-logging rare | No read logging; no unified delete trail |
| Scoped, configurable to control log volume | Per-model, per-field, per-operation, per-domain rules from day one | Achievable with in-house effort | Often all-or-nothing per model | Not applicable — no dedicated audit engine |
| Access control over the audit log itself | ir.model.access.csv + record rules; users can't alter their own entries | You must implement and verify the security model | Basic group restriction; depth varies | No dedicated, restricted audit store |
| Compliance export (PDF + XLSX/CSV) in auditor format | QWeb PDF report + one-click export formatted to your auditor's needs | Build your own report and export | Export sometimes present, rarely tailored | Manual list export only, no audit-specific report |
| Retention / auto-purge of old entries | Scheduled cron archive/purge on your approved timeline | You schedule and test the cron yourself | Occasionally offered | None |
| Fit to your exact models and edge cases | Built and installed for your database by ECOSIRE | Fully bespoke but all effort and risk on you | Generic; you adapt your process to the app | Generic core behavior only |
| Delivery model | Build-to-order: scoped, built, installed, trained, supported (2-4 wks) | Your team's timeline and resourcing | Instant download, self-install, self-support | Already present, no field-level audit engine |
| Odoo version coverage | Tested and delivered for Odoo 17, 18 and 19 | You port and re-test each version | Version support varies per listing | Core behavior differs by version, no audit engine |
Frequently Asked Questions about Audit Trail / Audit Log
How long until the module is delivered and live?
This is a build-to-order module, not an instant download. After purchase we run a short scoping call to confirm which models, fields and operations you need tracked, then build, test and install it on your environments. Typical delivery is one working week, depending on how many models and edge cases are in scope. Simple single-model trails land at the faster end; broad multi-model coverage with read-logging and custom retention sits toward 4 weeks.
What happens with support and updates after go-live?
Every build ships with a defined post-go-live support and bug-fix window. During that window we fix any defect in the delivered module at no extra charge. We also keep the module compatible across Odoo 17, 18 and 19 point releases; when you upgrade Odoo we validate and, if needed, adjust the module. Longer-term maintenance and enhancement retainers are available if you want ongoing coverage beyond the initial window.
Won't logging every operation slow down Odoo or bloat the database?
That is exactly why this is scoped and configurable rather than a blunt log-everything switch. You choose which models, fields and operations are tracked, and we add domain filters and field exclusions to limit volume. Audit entries live in dedicated, indexed models kept separate from your business tables, and scheduled archive/purge rules roll off old data on a timeline you approve — so the trail stays complete without dragging on performance.
Can it capture the old value as well as the new value on a change?
Yes. On every tracked write the module stores a per-field diff — the prior value and the new value — along with the user, timestamp and source. So instead of a generic 'record updated' note you get, for example, 'list_price changed from 149.00 to 199.00 by Jane via web UI on 14 Mar 14:32'. Create events record the initial values and delete events record the final state before removal.
Does it work on Odoo Community, or only Enterprise?
It works on both. The module is built on standard ORM interception, ir.model.access.csv security, record rules, XML/OWL views and QWeb reports — all available in Community and Enterprise. We deliver and test it against your specific edition and version (17, 18 or 19). If you use Enterprise-only models, we track those too as part of the agreed scope.
Can auditors get the log out of Odoo in a usable format?
Yes. Alongside the in-app list, form and pivot views with per-user and per-model filters, the module includes a QWeb PDF audit report and one-click XLSX/CSV export. We format the export to match what your external auditor expects, so handing over a filtered, date-bounded trail is a one-click job rather than a manual database extract.
Related Modules

Attachment Preview In-Browser for Odoo
A made-to-order Odoo capability that renders PDF, Word, Excel, and PowerPoint attachments directly inside the chatter and document views — no downloads, no context-switching. ECOSIRE builds, installs, and supports it against your exact Odoo version and workflows.

Audit Trail — Track Changes, User Activity Log & Field History
A build-to-order Odoo audit trail that records who changed what, when, and from where — with field-level before/after history, user activity logging, IP capture, and compliance-ready exports. ECOSIRE scopes, builds, installs, and supports it on your Odoo 17/18/19 database.

Australia Payroll & Payday Super for Odoo
Australian payroll built into Odoo: STP Phase 2 event reporting, award-aligned pay rules, superannuation guarantee calculation with payday-super readiness, NES leave accruals, payment summaries and ABA bank files. Built to order by ECOSIRE for your Odoo 17, 18 or 19 database.
Audit Trail / Audit Log
Log every create, read, write and delete on any Odoo model with old/new field values for full, exportable traceability.
- ORM-level interception of create(), read(), write() and unlink() on any nominated model, so nothing slips past the log
- Per-field old-vs-new value diff on every write, storing both the prior value and the new value rather than just a change flag
- Tracking of custom and overridden methods (e.g. action_confirm, button workflows) beyond the four standard CRUD operations
- Captures the acting user, exact timestamp, model, record ID and record display name for every logged event
