Skip to main content
User Activity & Login Audit Monitor — A build-to-order Odoo module that logs every login, session, IP, and record-level actio — 1/1Illustrative preview

A build-to-order Odoo module that logs every login, session,

IP, and record-level action into a searchable audit trail with suspicious-activity alerts and a per-user activity dashboard.

ECOSIRE scopes, builds, installs, and supports it for your database.

What is User Activity & Login Audit Monitor?

A build-to-order Odoo module that logs every login, session, IP, and record-level action into a searchable audit trail with suspicious-activity alerts and a per-user activity dashboard. ECOSIRE scopes, builds, installs, and supports it for your database. 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

Custom `ecosire.audit.log` model written on create/write/unlink (and optional read) for the specific models you nominate during scoping
Login, logout, and failed-attempt logging via overridden auth entry points (`_check_credentials`) — failures captured even when no session is created
Per-event capture of resolved client IP (request / `X-Forwarded-For`), user agent, session id, and precise UTC timestamp
Record-level action history with old-vs-new field values on tracked models, stored independently of `mail.thread` chatter
Optional read-access logging for sensitive models (`res.partner`, `account.move`, `hr.payslip`, etc.) — something Odoo core cannot record
Immutable audit entries enforced by `ir.model.access.csv` (no unlink/write for normal users) plus record rules scoping visibility to an Audit Manager group
Configurable suspicious-activity rules via automated actions and `ir.cron`: N failed logins in M minutes, new-IP login, off-hours access, bulk read/export
Alerting that raises an in-app `mail.activity`, sends templated email, or flags the offending session when a rule fires
Per-user activity dashboard built in OWL/JS over read-only server data, with drill-down to individual audit entries
List, pivot, and graph views with filters/group-by for period access reviews and segregation-of-duties analysis
QWeb PDF access-review report (per user, per model, per date range) suitable for handing to an external auditor
Configurable retention with a scheduled purge/archive job to keep audit volume and DB size under control
XML-RPC / JSON-RPC exposure of the audit stream so an external SIEM or monitoring stack can pull events on a schedule
Session tracking that correlates multiple actions to a single login and surfaces concurrent-session anomalies
Targets Odoo 17.0, 18.0, and 19.0; Community-compatible, with Enterprise-only hooks used only when you run Enterprise

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

Most ERP security incidents are invisible until it is too late. Odoo core keeps only a thin trail of who touched what: res.users has login_date, mail.thread chatter records some field changes on tracked models, and the server log can hold auth lines if you configure it — but there is no unified, in-database record of failed login attempts, the IP and device behind each session, or which user read (not just wrote) a sensitive res.partner, account.move, or hr.payslip. When an auditor asks "who accessed this customer's data on March 3rd, and from where?", the honest answer with a stock database is usually "we can't tell you." That gap fails SOC 2, ISO 27001, GDPR/HIPAA access-log requirements, and internal segregation-of-duties reviews.

We build a dedicated audit module that closes that gap. At its core is a custom model (ecosire.audit.log) written on every relevant event, plus a lightweight ecosire.login.attempt model. Authentication events are captured by overriding res.users._check_credentials / the auth entry points so both successful logins and failed attempts are recorded with timestamp, resolved IP (from the HTTP request/X-Forwarded-For), user agent, and session id — failed attempts are logged even when no user session is created, which core cannot do. Record-level activity is captured by extending the ORM (create, write, unlink, and optionally read) on the specific models you nominate during scoping, so we log high-value objects without drowning the database in noise. Every entry is immutable to end users and enforced through ir.model.access.csv plus record rules that restrict visibility to a dedicated Audit Manager group.

On top of the log we build the analytics and controls your compliance team actually uses: a per-user activity dashboard (OWL/JS views over read-only server data), filtered and grouped list/pivot views, and QWeb PDF reports for period access reviews you can hand to an auditor. Suspicious-activity detection runs as Odoo automated actions / scheduled ir.cron jobs — configurable rules such as N failed logins in M minutes, login from a new IP or outside business hours, or bulk export/read of a protected model — that raise an in-app activity, send an email, or flag the session. Everything is reachable over the standard XML-RPC/JSON-RPC API, so a SIEM or external monitoring stack can pull the audit stream on a schedule.

Because this is build-to-order, you are not downloading a generic binary and hoping it fits. After a short scoping call we confirm exactly which models are audited, your retention and alerting rules, and your Community vs Enterprise baseline (the module targets Odoo 17.0/18.0/19.0; Enterprise-only hooks are used only if you run Enterprise). We build against your version, test on a staging clone, run UAT with you, then install on production with a rollback plan. Typical delivery is one working week from confirmed scope, and you receive the full source and git repository so nothing is locked behind us.

What you get

  • Installable module source code built and pinned to your exact Odoo version (17.0 / 18.0 / 19.0), Community or Enterprise
  • Installation and configuration on your environment: audited-model selection, alert rules, groups, and retention settings
  • Technical documentation: model/field reference, ORM override points, security (`ir.model.access.csv` + record rules), and cron/automated-action config
  • End-user and Audit Manager guide plus a live training session for your security/compliance team
  • UAT on a staging clone of your database with a documented rollback plan before any production change
  • Post-go-live support window for bug fixes and configuration adjustments
  • Full git repository handover — no code locked behind ECOSIRE
  • Sample QWeb access-review report and pre-seeded suspicious-activity rules you can tune

Who this is for

Compliance & Security Administrator

Owns SOC 2 / ISO 27001 / GDPR access-log evidence and needs a defensible, immutable record of who logged in, from where, and what protected data they touched — exportable for auditors.

ERP System Administrator

Runs the Odoo instance and wants alerts on brute-force logins, new-IP or off-hours access, and concurrent sessions, without wading through raw server logs or hand-writing SQL.

Internal Auditor / Risk Manager

Performs periodic access reviews and segregation-of-duties checks and needs pivotable activity data and per-user PDF reports scoped to a date range and model set.

IT Security / SOC Engineer

Wants the Odoo audit stream pulled into an external SIEM over XML-RPC/JSON-RPC so ERP events sit alongside the rest of the monitoring stack.

How User Activity & Login Audit Monitor Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Failed-login loggingCaptured with IP, device, and timestamp even when no session startsPossible, but you build the auth override yourselfOften only successful logins trackedNot recorded in-database
Record read-access loggingOptional per-model read capture on the sensitive models you chooseFeasible but needs careful ORM work to avoid slowdownsRarely offered; usually write-onlyNone — reads leave no trace
IP & session trackingResolved IP, user agent, and session id correlated per loginDepends entirely on your implementationVaries; often partialOnly `login_date` on `res.users`
Tamper resistanceImmutable via access rules + record rules; Audit Manager group onlyOnly as strong as your own security designAccess controls vary by vendorChatter can be pruned; no dedicated protection
Suspicious-activity alertsConfigurable rules via automated actions + `ir.cron` with email/in-app alertsBuildable but time-consuming to design and tuneSometimes fixed, non-configurable rulesNone
Compliance reportingQWeb PDF access-review reports + pivot views per user/model/dateYou design and build the reportsBasic list export at bestNo audit-oriented reports
Version & environment fitBuilt and tested against your exact 17/18/19, Community or EnterpriseFits, but you own all version maintenanceMay lag Odoo releases or assume EnterpriseN/A
Support & source ownershipPost-go-live support window + full git repo handoverYou maintain everythingVendor-locked binary; support variesCommunity support only

Frequently Asked Questions about User Activity & Login Audit Monitor

How long does delivery take?

Because this is build-to-order, we build it for your database rather than shipping a generic binary. Typical delivery is one working week from confirmed scope. The clock starts once we've agreed which models are audited, your alert and retention rules, and your Odoo version — smaller scopes land sooner, broad read-logging across many models sits toward the upper end.

Does it work on Odoo Community, or only Enterprise?

It works on Community. The core audit log, login/failed-attempt capture, record-action history, alerts, dashboard, and reports are all built with standard framework features (ORM overrides, `ir.model.access.csv`, record rules, `ir.cron`, QWeb, OWL). Enterprise-only hooks are used only if you run Enterprise. We target Odoo 17.0, 18.0, and 19.0.

Will read-access logging slow down my database?

Read logging is the heaviest event type, so we don't apply it blanket. During scoping we nominate only sensitive models (e.g. `res.partner`, `account.move`, `hr.payslip`) for read capture, keep write/login logging everywhere it's cheap, and add a scheduled purge/archive job plus indexes so the audit table stays fast. We load-test on staging before go-live.

Can users delete or edit the audit trail to cover their tracks?

No. Audit entries are immutable for normal users — `ir.model.access.csv` grants no write/unlink on the log model, and record rules restrict even read access to a dedicated Audit Manager group. Only the scheduled retention job removes aged records, and that behavior is documented and configurable.

How do the suspicious-activity alerts work?

Detection runs as Odoo automated actions and `ir.cron` jobs against configurable thresholds — for example N failed logins in M minutes, a login from a new IP or outside business hours, or bulk read/export of a protected model. When a rule fires it can raise an in-app activity, send a templated email, or flag the session. You tune the rules; we seed sensible defaults.

Can I feed this into my existing SIEM or monitoring tools?

Yes. The audit stream is exposed over Odoo's standard XML-RPC/JSON-RPC API, so an external SIEM, Splunk-style collector, or custom job can pull events on a schedule and correlate ERP activity with the rest of your security stack. We document the endpoints and a sample pull during handover.

What about support and updates after go-live?

Every build includes a post-go-live support window for bug fixes and configuration tweaks, and you receive the full git repository so your team can maintain it. For future Odoo version upgrades (e.g. moving 18.0 to 19.0) or new audited models and rules, we scope that as a follow-on engagement.

Request a quote

User Activity & Login Audit Monitor

A build-to-order Odoo module that logs every login, session, IP, and record-level action into a searchable audit trail with suspicious-activity alerts and a per-user activity dashboard. ECOSIRE scopes, builds, installs, and supports it for your database.

  • Custom `ecosire.audit.log` model written on create/write/unlink (and optional read) for the specific models you nominate during scoping
  • Login, logout, and failed-attempt logging via overridden auth entry points (`_check_credentials`) — failures captured even when no session is created
  • Per-event capture of resolved client IP (request / `X-Forwarded-For`), user agent, session id, and precise UTC timestamp
  • Record-level action history with old-vs-new field values on tracked models, stored independently of `mail.thread` chatter

Request a Quotation

Tell us about your User Activity & Login Audit Monitor 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.