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 $249.00 USD; request a quote for a scoped proposal.
App-Manifest
Auf Ihren Workflow zugeschnitten
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.
Keine Selbsteinrichtung — eine funktionierende App, die von ECOSIRE erstellt, installiert und betreut wird.
Starten Sie mit einem einmaligen Entwicklungspreis. Den Umfang legen wir beim Kickoff gemeinsam fest.
ECOSIRE erstellt, konfiguriert und installiert sie auf Ihrem Odoo.
Sie gehen in etwa 2–4 Wochen live, mit einem Support-Zeitraum nach dem Launch.
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 2–4 weeks from confirmed scope. You receive the full source for your version and we support it after launch. Pricing starts from $249 (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.
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.
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.
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.
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.
| Kriterium | ECOSIRE | Benutzerdefinierter Build | Konkurrent | 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 | |
| Routing logic | Ordered, multi-signal scoring tuned to your keys | Fully bespoke but you design and maintain it | Fixed rule set, hard to extend | |
| 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 | |
| Review queue | Confidence-scored queue with OWL triage views | Only if you design and build it | Basic list, limited triage | |
| Security model | `ir.model.access.csv` + record rules per team/company | Depends on your implementation | Coarse access, rarely company-aware | |
| Odoo 17/18/19 & edition support | Version-pinned build, Community/Enterprise-aware | You maintain across versions | Often lags new versions | |
| Support & ownership | Post-go-live window + full Git repo handover | In-house team owns it | Vendor support, source often closed | |
| Total cost & risk | Fixed quote from $249 indicative, staged UAT + rollback | High effort; unbounded maintenance | Low license cost, poor fit risk |
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.
Typically 2–4 weeks 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.
Pricing starts from $249 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.
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.
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.
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.
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.

A build-to-order Odoo localization that loads Algeria's full wilaya and commune hierarchy with bilingual French and Arabic names, wired into partner addresses and reporting. ECOSIRE builds, installs, and supports it after your quotation.
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.