- Home
- Apps
- SaaS Tools
- Sale Invoice – Exclude Salesperson
Illustrative previewA build-to-order Odoo module that prevents the salesperson linked to a sales order or customer from being
automatically subscribed as a follower on the resulting invoice. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17.0, 18.0, or 19.0 instance.
What is Sale Invoice – Exclude Salesperson?
A build-to-order Odoo module that prevents the salesperson linked to a sales order or customer from being automatically subscribed as a follower on the resulting invoice. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17.0, 18.0, or 19.0 instance. 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
In stock Odoo, whenever an invoice (account.move) is created from a sales order or against a customer, the salesperson on the record (user_id / the partner's assigned user_id) is silently pushed into the invoice's follower list via the mail.thread auto-subscription machinery. That means every posting, payment reminder, chatter note, and status change on that invoice fires a notification to a salesperson who has usually already handed the deal off to finance. Multiply that across hundreds of invoices a month and the sales team's Inbox becomes noise, accountants lose a clean audit trail of who is genuinely watching a document, and — in shared or brokered scenarios — a salesperson can end up seeing financial correspondence they should not. Odoo exposes no configuration switch to turn this behaviour off; the subscription is baked into the model's _creation_subtype, _track_subtype, and the message_auto_subscribe / _message_auto_subscribe_followers chain, so the only correct fix is code.
ECOSIRE builds a small, surgical module that intercepts exactly that auto-subscription path on account.move (and, where you invoice from sales, the propagation from sale.order). Rather than crudely stripping followers after the fact, we override _message_auto_subscribe_followers / message_auto_subscribe so the salesperson's partner is never enrolled in the first place, keeping the rest of Odoo's tracking intact — customers, accounting managers, and anyone manually added stay subscribed and keep getting the notifications they need. The behaviour is made configurable through a res.config.settings toggle (and, if you want finer control, a company-level or invoice-type-level flag) so administrators decide the scope without touching source again. Everything is delivered against your Odoo edition: on Community we work with the base account and sale modules; on Enterprise we account for the additional accounting and subscription flows so the exclusion holds consistently.
Technically, the build ships as a proper addon: a __manifest__.py declaring dependencies (account, and sale where relevant), a thin Python model layer using models.Model inheritance and @api.depends only where a computed helper is genuinely needed, ir.model.access.csv plus record rules so any new setting respects your security groups, and an XML settings view wired into the Invoicing configuration page. We include an optional automated-action / server-action variant for edge cases where invoices are generated by third-party integrations over XML-RPC or JSON-RPC, so records created outside the standard UI are covered too. The logic is idempotent and side-effect-free: it changes who is subscribed, never the invoice's amounts, sequence, or posting state, and it is written to survive standard Odoo upgrades within a major version.
Because this is a made-to-order build and not an existing download, delivery follows a short, predictable path. We start with a scoping call to confirm your edition, version, invoicing flows (sale-driven vs. manual vs. subscription vs. integration-created), and exactly which roles you want excluded. We then build against a copy of your configuration, validate on a staging database with UAT, and deploy with a rollback plan. Typical delivery is one working week from confirmed scope. Pricing starts from $999 (indicative, single-company base scope); multi-company rollout, additional invoicing sources (subscriptions, integrations, imported invoices), or migrating existing follower data increases the quoted scope. You receive a fixed written quote after the scoping call — never a surprise.
What you get
- Installable, version-pinned source code for your Odoo edition (17.0, 18.0, or 19.0), packaged as a standard addon
- Installation and configuration on your target instance, including the settings toggle wired into the Invoicing page
- Technical documentation covering the manifest, model overrides, settings, and security rules
- End-user guide plus a live training session for administrators and the finance team
- Post-go-live support window for defect fixes and questions after deployment
- UAT on a staging database with a documented, tested rollback plan before production cutover
- Private git repository handover with full commit history and tagged release
- Optional logged data-cleanup script to unsubscribe salespeople from existing historical invoices
Who this is for
Finance / Accounting Manager
Owns the invoicing process and wants a clean, trustworthy follower list on every `account.move` so notifications and the audit trail reflect who is genuinely responsible for a document, not whoever originally sold the deal.
Odoo Administrator / ERP Lead
Runs the Odoo instance and needs the behaviour changed the correct way — a maintainable addon with a settings toggle and proper security — rather than a hack that breaks on the next upgrade or leaks into other modules.
Sales Operations Manager
Tired of the sales team's Inbox filling with post-handoff invoice, payment, and dunning notifications, and wants salespeople focused on selling instead of muting accounting chatter document by document.
Multi-Company / Brokerage Controller
Operates several companies or handles brokered deals where a salesperson must not see another entity's financial correspondence, and needs the exclusion scoped per company and per invoice type.
How Sale Invoice – Exclude Salesperson Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Fit to your invoicing flows | Built against your exact edition, version, and sale/manual/integration sources | Depends entirely on your in-house developer's depth | Generic behaviour assumed for a typical customer | No option — salesperson always auto-subscribed |
| Configurability | Settings toggle plus optional per-company and per-invoice-type flags | Whatever you specify and pay to build | Usually a single fixed on/off with little scope control | None |
| Handling of API/integration-created invoices | Optional server-action variant covers XML-RPC/JSON-RPC records | Must be designed and tested in-house | Rarely addressed; often only the UI path | Not applicable — behaviour is always on |
| Security and access control | `ir.model.access.csv` and record rules aligned to your groups | Only as rigorous as your team makes it | Generic defaults, may not match your groups | Standard Odoo, unchanged |
| Upgrade safety | Clean model inheritance, no core monkey-patching, survives minor upgrades | Risk varies with developer discipline | Unknown; abandoned modules are common | N/A — you keep the unwanted behaviour |
| Delivery and validation | Staging UAT, documented rollback, training, git handover | You own the whole QA and delivery burden | Download and self-install, self-support | Nothing to deliver |
| Support after go-live | Defined support window plus full repository handover | Internal only | Best-effort forum or ticket queue | Community/Enterprise support won't change core behaviour |
| Total cost predictability | Indicative from $999, fixed written quote after scoping | Open-ended developer time | Low sticker price, hidden fit and maintenance cost | Free, but the problem persists |
Frequently Asked Questions about Sale Invoice
How long does delivery take?
This is a build-to-order module, not an instant download. After a short scoping call to confirm your edition, version, and invoicing flows, typical delivery is one working week from confirmed scope. That covers the build, staging UAT, and production deployment with a rollback plan.
How does pricing and scoping work?
Pricing starts from $999 as an indicative single-company base-scope figure. The exact cost depends on your edition, how many invoicing sources exist (sale-driven, manual, subscriptions, integrations), and whether you want historical follower data cleaned up. You receive a fixed written quote after the scoping call — no surprises.
What about support and future updates?
Every build includes a post-go-live support window for defect fixes and questions, and you get the full git repository so your team can maintain it. The module is written to survive standard minor upgrades within a major Odoo version; a move across major versions (e.g. 18.0 to 19.0) is a separate, quotable migration.
Will this remove legitimate followers or break my audit trail?
No. The module only prevents the salesperson from being auto-subscribed at invoice creation. Customers, accounting managers, and anyone manually added stay subscribed, and all chatter, message tracking, and audit history on the invoice remain fully intact.
Does it work on Odoo Community as well as Enterprise?
Yes. On Community we work with the base `account` and `sale` modules; on Enterprise we additionally account for the extra accounting and subscription flows so the exclusion holds consistently. We build against your specific edition and version — 17.0, 18.0, or 19.0.
What if invoices are created by an integration rather than in the Odoo UI?
We can include a server-action / automated-action variant so invoices generated over the XML-RPC or JSON-RPC API are covered too, not just those created through the standard interface. Tell us your integration sources at the scoping call and we scope for them.
Can you also clean up salespeople already following old invoices?
Yes, as an optional deliverable. We provide a controlled, logged batch script that unsubscribes salespeople from existing historical invoices, run against staging first and then production so the effect is reviewed before it touches live data.
Related Modules

Role & Group Access Designer
A build-to-order Odoo module that turns raw security groups into job-based business roles, assigns them across users in a bulk matrix, and clones one user's access onto many. ECOSIRE designs, builds, and installs it to your access model — it is not an off-the-shelf download.

Romania e-Factura + SAF-T D406
A made-to-order Odoo compliance app that submits CIUS-RO e-Factura invoices to ANAF SPV and exports the SAF-T D406 declaration from the same data. ECOSIRE builds, installs, and supports it for your Odoo 17, 18, or 19.

Sale Order Line Images
A build-to-order Odoo module that renders each product's image directly on the sale order line and inside the printed sale quotation, so reps and customers recognize what is being sold at a glance. ECOSIRE scopes, builds, installs, and supports it for your database.

Sale Order Payment Status
A made-to-order Odoo module that surfaces live payment status, paid/due amounts, and linked transactions directly on the sale order — no digging through the accounting back office. ECOSIRE builds, installs, and supports it for your Odoo 17/18/19.
Sale Invoice
A build-to-order Odoo module that prevents the salesperson linked to a sales order or customer from being automatically subscribed as a follower on the resulting invoice. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17.0, 18.0, or 19.0 instance.
- Overrides `_message_auto_subscribe_followers` / `message_auto_subscribe` on `account.move` so the salesperson partner is never enrolled as a follower at creation time
- Blocks propagation of the salesperson from `sale.order.user_id` into invoices generated via the Create Invoice / down-payment flow
- Preserves all legitimate followers — customer contact, accounting managers, and anyone manually subscribed — so no genuine notifications are lost
- Admin-facing `res.config.settings` toggle wired into the Invoicing settings page to enable, disable, or scope the exclusion without code changes