Skip to main content
AK Ankush Kaura

Odoo CRM Sales Mistakes You Can Spot in Your Own Data

Common Odoo CRM sales mistakes and how to find each one in your own data with filters, groupings and reports in Odoo 19, plus how to clean up.

Published on 29 Oct 2026 · 5 min read

Animated portrait of Ankush Kaura

Short answer: most CRM mistakes leave a trace you can query. Deals with no next step, expected closing dates in the past, lost deals with no reason, duplicate contacts and open cards that have not moved in weeks are all visible with the standard Odoo 19 filters. I would run through these five checks once a month before changing any setting, because the data tells you which habit has slipped.

Applies to

  • Odoo version: 19. I read the lost opportunities, merge, stages and unattended leads pages in the 20.0 documentation as well. The text I rely on is the same.
  • Edition: Community and Enterprise. All the filters below are standard search features.
  • Apps: CRM, and Contacts for the cleanup.

Which mistakes show up in the data?

Check 1: open cards with no dated next step

The cause is usually a pipeline that doubles as a notebook. The cure is activities. Odoo’s documentation says an activity should be marked Done as soon as the interaction happens, so the next one can be scheduled.

To find the gap, open CRM ‣ Reporting ‣ Pipeline, remove the default filters and use Custom Filter to look at Activities. The unattended leads page shows the same builder in use, with an activity due date at or before today and a salesperson that is set. Flip the logic to look for cards with nothing planned at all.

Check 2: expected closing dates in the past

Expected Closing is a plain date field on the opportunity. When it is stale, the Forecast report puts deals in the wrong month. In Pipeline Analysis, the measure Exceeded Closing Days shows how far past the date each deal has slipped, and the Forecast report lets you drag cards into a new month.

I would ask the team to update the date whenever they talk to the customer, not once a quarter.

Check 3: cards that never leave a stage

Set Days to rot on the stages where deals should not wait. The stages documentation says cards past the threshold turn red and the stage shows how many are rotting.

Treat red cards as a prompt for a question to the owner, not as a verdict. Some deals are legitimately waiting on the customer, and the right fix is a dated activity that says so.

Check 4: lost with no reason

Open Pipeline Analysis, filter to Lost and group by Lost Reason. A large group with no value means the pop-up is being skipped. The documentation keeps the reason optional but recommends it for traceability and reporting.

If the list is long and half the entries say something vague, shorten it. The 19.0 data ships three starter reasons: “Too expensive”, “We don’t have people/skills” and “Not enough stock”. They are a starting point to edit, not a standard.

Check 5: duplicates and half-empty contacts

Odoo compares email address and phone number to flag Similar Leads. The Contacts app can also deduplicate on email, name, company flag, VAT and parent company, with a choice of manual check or automatic merge.

Both documentation pages carry the same warning: merging cannot be undone. Merge only the pairs you have looked at, and leave alone records that share a company but belong to different people.

What should I fix first?

Start with dates and activities, not contacts. A tidy contact list with no next steps still loses deals. After that, tackle lost reasons, because they cost nothing and change what you can learn.

When it fits and when it doesn’t

A monthly check suits a team with a live pipeline and someone who owns it. It is quick, and every check uses a standard filter.

It is a poor fit when the pipeline is mostly empty or brand new. With no history there is nothing to audit, so spend the time on the first habits. It also should not become a witch hunt. If a manager uses these checks to name and shame, people will edit the field and not the behaviour.

Worked example: a landscaping company

The owner opens Pipeline Analysis on the first Monday of the month. Several cards show an expected closing date from last month. The owner asks the estimator which are still alive, archives the dead ones with a lost reason, and gives the rest a new date and a call.

Then they group lost deals by reason and find “Other” at the top. The owner replaces it with three clear reasons and tells the team why. Last, they run a Similar Leads check on contacts from the website form, merging only the pairs with the same email address and name.

Common mistakes in the cleanup itself

  • Merging on name alone.
  • Deleting lost deals instead of keeping them with a reason.
  • Changing stages before fixing dates, which rewrites the history you wanted to read.
  • Doing it once a year, when the backlog is too big to face.

How the stages, probabilities and won/lost states are stored is in how Odoo CRM pipelines work. The report side is in which Odoo CRM report answers which question. For the habits behind activity logging, see getting your team to use the CRM. A shorter, non-technical list is on sajjalbajaj.in.

Official references

How this article was checked: I read the 19.0 documentation pages above, compared them with 20.0, and checked the default lost reasons in the 19.0 source. I did not run a live database, so the exact filter wording may differ slightly on screen.

If your pipeline needs a clean-up and a routine to keep it clean, see my portfolio and get in touch.

Frequently asked questions

How do I find opportunities with no next step in Odoo CRM?

Use a custom filter on Activities in the Pipeline Analysis or pipeline list. The documented unattended leads report uses the same filter builder to find due and overdue activities, and you can invert the idea to find records with none.

Is it safe to merge duplicate contacts in Odoo?

Only when you are sure they are the same person or company. The Odoo documentation warns that merging is irreversible, and the same warning applies to merging similar leads and opportunities.

Why does my pipeline total look too high?

Common causes are old opportunities that were never closed, expected revenue that was never updated and probabilities edited by hand. All three feed the prorated revenue in the Forecast.