Skip to main content
Audit Trail / Audit Log — Log every create, read, write and delete on any Odoo model with old/new field values for full, expo — 1/1Illustrative preview

Log 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

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
Records the operation source — web UI, XML-RPC/JSON-RPC API call, automated action, or scheduled cron job — for full provenance
Configurable tracking rules per model, per field and per operation so you log only what compliance actually requires
Optional read-access logging on sensitive models (e.g. HR, payroll, bank details) to prove who viewed protected data
Volume-control rules — field exclusions, domain filters and user allow/deny lists — to keep the audit table lean and query-fast
Dedicated, indexed audit models kept separate from business data, tuned to stay performant into the millions of rows
Per-user and per-model saved search filters plus a pivot view for fast forensic drill-down
Locked-down access via ir.model.access.csv and record rules — only your compliance/admin group can read logs; users cannot alter or delete their own entries
Configurable retention with scheduled archive/purge cron actions so old entries roll off automatically on an approved timeline
QWeb PDF audit report and one-click XLSX/CSV export formatted for handing directly to external auditors
Clean list, form, search and pivot views (XML/OWL) surfaced under a dedicated Audit menu with group-restricted visibility

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 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

CriterionECOSIRECustom BuildCompetitorOdoo Native
Field-level old-vs-new value capture on any modelFull diff (old and new value) on every tracked fieldPossible but you design and test the diff logic yourselfVaries; many log only that a field changed, not both valuesChatter tracking only on selected fields of chatter-enabled models
Coverage of read/delete and custom methodscreate, read, write, unlink plus nominated custom methodsWhatever you build and maintainUsually create/write/unlink; read-logging rareNo read logging; no unified delete trail
Scoped, configurable to control log volumePer-model, per-field, per-operation, per-domain rules from day oneAchievable with in-house effortOften all-or-nothing per modelNot applicable — no dedicated audit engine
Access control over the audit log itselfir.model.access.csv + record rules; users can't alter their own entriesYou must implement and verify the security modelBasic group restriction; depth variesNo dedicated, restricted audit store
Compliance export (PDF + XLSX/CSV) in auditor formatQWeb PDF report + one-click export formatted to your auditor's needsBuild your own report and exportExport sometimes present, rarely tailoredManual list export only, no audit-specific report
Retention / auto-purge of old entriesScheduled cron archive/purge on your approved timelineYou schedule and test the cron yourselfOccasionally offeredNone
Fit to your exact models and edge casesBuilt and installed for your database by ECOSIREFully bespoke but all effort and risk on youGeneric; you adapt your process to the appGeneric core behavior only
Delivery modelBuild-to-order: scoped, built, installed, trained, supported (2-4 wks)Your team's timeline and resourcingInstant download, self-install, self-supportAlready present, no field-level audit engine
Odoo version coverageTested and delivered for Odoo 17, 18 and 19You port and re-test each versionVersion support varies per listingCore 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.

Request a quote

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

Request a Quotation

Tell us about your Audit Trail / Audit Log requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.