- Home
- Apps
- SaaS Tools
- Lost Messages Routing
Illustrative previewA build-to-order Odoo module that catches incoming emails and messages Odoo could not match to a record,
then routes them to the right partner, lead, ticket, or document.
ECOSIRE designs, builds, installs, and supports it for your database.
What is Lost Messages Routing?
A build-to-order Odoo module that catches incoming emails and messages Odoo could not match to a record, then routes them to the right partner, lead, ticket, or document. ECOSIRE designs, 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
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
Every Odoo database quietly loses inbound communication. When a customer replies from a different address, forwards a thread, or emails an alias whose reply token has been stripped by their mail client, Odoo's mail gateway cannot resolve the In-Reply-To/References headers or the catchall reply pattern back to a mail.thread record. The message then bounces, lands in a generic catchall inbox nobody watches, or is silently discarded. Out of the box, mail.thread.message_process() offers only a narrow set of fallbacks (create a new record, or drop it), and there is no operational view of what failed to route or why. For teams that live in Discuss and depend on email-to-record threading across sales, helpdesk, and projects, this means real replies vanish and follow-ups never happen.
Lost Messages Routing is a build-to-order Odoo module that ECOSIRE designs and builds around your exact routing rules. Technically, it hooks the mail gateway pipeline — extending the mail.thread / mail.alias processing path and adding a dedicated lost.message model — to capture every inbound mail.message that Odoo failed to route, preserving the raw RFC 5322 payload, headers, attachments, and the reason it could not be matched. Nothing is discarded before a human or a rule has had a chance to act on it.
On top of that capture layer we build a configurable matching engine using standard models.Model fields and @api.depends computes: it scores candidate records by sender address against res.partner, by prior thread participation, by subject/reference fuzzy matching, and by any domain-specific keys you nominate (order numbers, ticket refs, VAT IDs). Rules are expressed as ordered, condition-based routing entries so a message can be auto-attached to the best-matching crm.lead, helpdesk.ticket, sale.order, or project.task, or parked in a review queue when confidence is low. Actions are driven by Odoo automated actions / server actions, so re-routing, partner creation, or reassignment happen without leaving the framework. Access is controlled with ir.model.access.csv plus record rules so only the right teams see the recovery queue, and a QWeb-based digest report gives supervisors a daily view of what was recovered and what still needs a decision. Everything is exposed through clean XML/OWL views and, where you need it, the XML-RPC/JSON-RPC API so external systems can push or reconcile messages. It targets Odoo 17.0, 18.0, and 19.0, and we adapt to Community or Enterprise (for example, wiring Helpdesk routing only where Enterprise is present, with a sales/project fallback on Community).
Because this is build-to-order, delivery works like a short, scoped engineering engagement rather than a download. We start with a scoping call to map your aliases, teams, and matching keys, agree acceptance criteria, then build, test on a staging copy of your database, and run UAT with you before go-live — typically one working week from confirmed scope. You receive the full source for your version and we support it after launch. Pricing starts from $999 (indicative, single-company base scope); multi-company alias topologies, additional target models, custom matching integrations, and historical message back-fill/migration volume increase the quoted scope.
What you get
- Installable, version-pinned source code for your Odoo version (17.0 / 18.0 / 19.0), delivered as a proper module with `__manifest__.py`, models, views, and security files
- Installation and configuration on your environment, including mail gateway, alias, and routing-rule setup
- Technical documentation covering the data model, matching-rule schema, and extension points
- End-user guide plus a live training session for the teams who work the recovery queue
- Post-go-live support window for defect fixes and routing-rule tuning
- UAT on a staging copy of your database with an agreed acceptance checklist and a documented rollback plan
- Git repository handover with full commit history and tagged release
- Security review of access rules and record rules against your team structure
Who this is for
Sales operations lead
Runs CRM in Odoo and loses inbound replies when prospects answer from a second address or forward a quote thread. Needs those emails to reliably re-attach to the right `crm.lead` so reps follow up in time.
Helpdesk / support manager
Depends on email-to-ticket threading and is bitten by customers replying to old or mangled references. Wants unmatched replies surfaced in a queue and auto-linked to the correct `helpdesk.ticket` instead of spawning duplicates or vanishing.
ERP / IT administrator
Owns the Odoo instance and the catchall mailbox. Needs visibility into what the mail gateway is dropping and why, with routing logic they can audit, secure per team, and maintain across 17/18/19 upgrades.
Operations director at a multi-entity group
Coordinates several companies and shared aliases in one database. Needs company-aware routing so a recovered message lands in the correct entity's records and respects record-rule isolation.
How Lost Messages Routing Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Unmatched-message capture | Dedicated `lost.message` store with raw payload and non-match reason | Whatever you build; easy to miss edge cases | Generic catch bucket, limited reason detail | Bounces or silently discards |
| Routing logic | Ordered, multi-signal scoring tuned to your keys | Fully bespoke but you design and maintain it | Fixed rule set, hard to extend | Create-new-or-drop fallback only |
| Fit to your data | Built around your aliases, teams, and target models | Exact fit if specced and built correctly | Generic; you adapt to its assumptions | No configurable matching beyond references |
| Review queue | Confidence-scored queue with OWL triage views | Only if you design and build it | Basic list, limited triage | None |
| Security model | `ir.model.access.csv` + record rules per team/company | Depends on your implementation | Coarse access, rarely company-aware | Standard mail access, no recovery layer |
| Odoo 17/18/19 & edition support | Version-pinned build, Community/Enterprise-aware | You maintain across versions | Often lags new versions | Ships with core, no recovery features |
| Support & ownership | Post-go-live window + full Git repo handover | In-house team owns it | Vendor support, source often closed | Community/Enterprise support, no custom logic |
| Total cost & risk | Fixed quote from $999 indicative, staged UAT + rollback | High effort; unbounded maintenance | Low license cost, poor fit risk | Free, but lost messages cost you deals |
Frequently Asked Questions about Lost Messages Routing
Is this an existing app I can download and install today?
No. Lost Messages Routing is build-to-order. ECOSIRE designs and builds it around your aliases, teams, and matching keys, then installs and supports it. It is a productized engineering service, not an off-the-shelf apps.odoo.com download.
How long does delivery take?
Typically one working week from confirmed scope. After the scoping call we agree acceptance criteria, build the module, test on a staging copy of your database, and run UAT with you before go-live. Larger multi-company or migration-heavy scopes can extend this, and we confirm the timeline in the fixed quote.
How does pricing and scoping work?
Pricing starts from $999 as an indicative single-company base scope. After a short scoping call we send a fixed quote. Drivers that increase scope include multi-company alias topologies, additional target models, custom matching integrations, and the volume of historical messages to back-fill or migrate.
Do you provide support and updates after go-live?
Yes. Every engagement includes a post-go-live support window for defect fixes and routing-rule tuning. We hand over the full Git repository, and we can provide ongoing maintenance or version upgrades (for example moving from Odoo 17 to 18 or 19) under a separate support arrangement.
Which Odoo versions and editions do you support?
Odoo 17.0, 18.0, and 19.0, on both Community and Enterprise. Where a target like Helpdesk is Enterprise-only, we wire routing to it when present and fall back to a sales/project target on Community, so the recovery flow works either way.
Will it change or risk my existing mail configuration?
The module extends the mail gateway pipeline rather than replacing it; messages Odoo already routes correctly are untouched. We build and test everything on a staging copy first, ship with a documented rollback plan, and only go live after UAT sign-off.
Can it recover messages that were already lost before install?
Optionally, yes. As a scoped add-on we can build a back-fill routine that scans your existing catchall mailbox, applies the same matching rules, and reconciles orphaned messages to records. The volume of history to process is one of the factors in the quote.
Related Modules

LinkedIn Lead Gen Forms Connector
Pipe LinkedIn Lead Gen Form submissions into Odoo CRM with field mapping, campaign attribution, routing, dedup and enrichment.

Mailchimp Two-Way Sync
Two-way sync of Odoo contacts and segments with Mailchimp audiences, pulling campaign opens and clicks back into your CRM.

Maintenance Mode for Odoo
A build-to-order Odoo module that puts your website and/or backend into a controlled maintenance mode during deploys, migrations, and cutovers — with an allowlisted admin bypass, a branded holding page, and scheduled windows. ECOSIRE builds, installs, and supports it for Odoo 17.0, 18.0, and 19.0.
Lost Messages Routing
A build-to-order Odoo module that catches incoming emails and messages Odoo could not match to a record, then routes them to the right partner, lead, ticket, or document. ECOSIRE designs, builds, installs, and supports it for your database.
- Captures every inbound `mail.message` that Odoo's gateway failed to route into a dedicated `lost.message` model, preserving raw RFC 5322 payload, headers, and attachments
- Records the exact non-match reason (missing `In-Reply-To`/`References`, unknown alias, ambiguous catchall, bounced token) for auditability
- Ordered, condition-based routing rules that score candidate records and auto-attach to the best-matching `crm.lead`, `helpdesk.ticket`, `sale.order`, or `project.task`
- Multi-signal matching engine: sender-to-`res.partner` resolution, prior thread participation, subject/reference fuzzy matching, and nominated domain keys (order no., ticket ref, VAT ID)
