| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
CRM (crm)
• Calendar (calendar) • Contacts (contacts) • Discuss (mail) |
| Lines of code | 91 |
| Technical Name |
no_lost_reason_required |
| License | LGPL-3 |
| Website | https://www.oudayet.com |
| Versions | 18.0 19.0 |
Lost Reason Required
Stop losing deals to nothing.
Mandatory Lost Reason · Block silent losses · Clean loss reports · Zero config
Odoo 19 Free · LGPL-3 9 Languages For Sales Managers"Why we lose deals" is empty again.
Out of the box, Odoo treats the Lost Reason as optional. Salespeople click Mark as Lost, skip the reason, and move on. So when you finally open the loss report to see why deals keep slipping away, most of them sit in one bucket labelled None — no reason, no pattern, nothing to act on. This module asks for the reason at the one moment it matters.
Without this module
Click Mark as Lost, skip the reason — the deal is archived, but the "why" is blank. Half your lost deals carry no reason, so the loss analysis can't tell you what's actually costing you business.
With this module
Click Mark as Lost with no reason and the action is blocked with a clear message. The salesperson picks a reason, the deal is lost — and every loss now shows up correctly in the report.
What it does
Enforced exactly when a deal is marked Lost — not on every save. Day-to-day edits stay friction-free; only the loss itself needs a reason.
The form button, the bulk action on the pipeline list, and the Mark-as-Lost dialog are all covered. There's no back-door that slips a loss through without a reason.
A one-click report under CRM → Reporting → Lost Analysis: lost deals grouped by reason, already filtered for you — no digging through archived records, no empty charts to wrestle into shape.
It reuses Odoo's standard CRM Lost Reasons list. No parallel config and no new model to learn — manage your reasons exactly where you already do.
The report measures the Lost Revenue behind each reason — the real money that walked out, which Odoo's standard pipeline charts count as zero. Now you know price cost you more than timing did.
No new menus, no settings, no migration. Install it and the rule is live immediately; uninstall it and it's cleanly gone.
How it works
Install the module. There is nothing to configure — the rule is active immediately for every lead and opportunity.
A salesperson opens a deal and clicks Mark as Lost. If no reason is chosen, the action is blocked with a clear prompt.
They pick one of your Lost Reasons and confirm. Open CRM → Reporting → Lost Analysis any time to see why — and how much — you lose.
See It In Action
Finally see why you lose. The built-in Lost Analysis report — every lost deal grouped by reason and measured in real Lost Revenue, not the zero-value blanks Odoo shows by default.
Then act on it. Drill into any reason to see the exact deals and customers behind it — so you can revisit pricing, counter a rival, or re-engage the deals worth chasing.
And it's one click for your team. When a deal is marked Lost they pick a reason from your existing list before confirming — the only change to the daily workflow, and what powers every insight above.
Available in 9 Languages
Lost Reason Required speaks your team's language. The blocking message and field labels appear in each user's own Odoo language setting - no extra setup.
FAQ
No. Only when a deal is actually marked Lost. Every other edit on the lead or opportunity saves normally.
That counts. If the deal already has a Lost Reason, Mark as Lost goes straight through. The rule only blocks a loss with no reason at all.
No. It uses Odoo's standard CRM Lost Reasons, so you keep your existing ones and manage them in the usual place.
No. The bulk action on the pipeline list is covered too, so a whole selection can't be lost without reasons.
Honest scope
It enforces a reason when a CRM lead or opportunity is marked Lost. It does not touch other apps, or other status changes such as marking a deal Won.
It makes sure a reason is chosen — it does not decide which reasons you offer. You stay fully in control of the Lost Reasons list.
Technical Details
| Odoo Version | 19.0 Community + Enterprise |
| Module Version | 19.0.1.1.0 |
| License | LGPL-3 (Free) |
| Dependencies | crm |
| Adds | CRM → Reporting → Lost Analysis |
| Languages | EN, FR, ES, DE, NL, PT-BR, IT, ZH-CN, AR |
| Override point | models/crm_lead.py |
Installation
1. Download from the Odoo App Store.
2. Extract to your Odoo addons directory.
3. Apps → Update Apps List → Install Lost Reason Required.
4. CRM → Configuration → Lost Reasons → make sure at least one reason exists. The rule is then live everywhere Mark-as-Lost is used.
Found a bug?
Reach out via the Odoo App Store contact form.
Lost Reason Required — Free, Odoo 19
© Naim OUDAYET — oudayet.com — LGPL-3 license
Please log in to comment on this module