CRM
Odoo CRM: how leads, the pipeline and quotations fit together
How CRM in Odoo works in practice: leads vs opportunities, the pipeline, activities, email and WhatsApp, quotations into Sales, reports and setup.
13min read
Most people who look into Odoo CRM want to know two things: what the app does with no customisation at all, and whether it will fit the way their team already sells. This guide answers both from the implementer’s side. It is written against Odoo 17, 18 and 19; menu names move a little between versions, but the model underneath has stayed the same.
The short version: Odoo CRM is a pipeline of opportunities, each one a record that holds the conversation, the next step and, once the Sales app is installed, the quotations. Its real strength is not the pipeline screen, which every CRM has. It is that the record carries on into the order, the delivery and the invoice in the same database.
What the CRM app is, and what it is not
The CRM app is part of Odoo Community, so on its own it carries no licence fee. On Enterprise it comes with the subscription like the other apps. Either way, the cost sits in hosting, setup and training.
Its scope is tracking sales. Email campaigns, marketing automation, support tickets and a call centre are separate apps. They all share the same contacts and companies, but installing CRM does not bring them along. Knowing that up front saves the “we bought a CRM and cannot send a newsletter” surprise.
Leads and opportunities
By default Odoo has no leads at all: everything that comes in is an opportunity in the pipeline. Switching on Leads in CRM › Configuration › Settings adds a step before the pipeline. Incoming enquiries land in a separate Leads list, someone screens them, and only the ones worth pursuing are converted into opportunities.
| Lead | Opportunity | |
|---|---|---|
| Where it lives | The Leads list, outside the pipeline | The pipeline, in a stage |
| What it means | Someone made contact; nothing is known yet | There is a real chance of a sale |
| Typical fields | Contact details, source, notes | Expected revenue, closing date, probability, customer |
| How it ends | Converted to an opportunity, or lost | Won or lost |
When should you switch leads on? When lots of raw enquiries arrive (website forms, ad campaigns, a trade-fair list) and one person sorts them before salespeople see them. If most enquiries are already real conversations, leave leads off. An extra step nobody needs is the fastest way to get records stuck.
The Convert to Opportunity button asks two things: should this person be linked to an existing customer or created as a new one, and should any open opportunities for the same contact be merged. Odoo also points out similar records with the same email, phone or company, which is where duplicate enquiries get merged.
The pipeline: stages, probability and expected revenue
The pipeline is a kanban board: each column is a stage and records move by dragging. The stages are entirely yours to add, rename and fold. A stage can be limited to one sales team, so two teams can work two different pipelines in the same database.
Every opportunity has an expected revenue, an expected closing date, priority stars and a probability. Odoo computes the probability from your own history: it looks at opportunities won and lost before, taking the stage into account along with fields you choose in settings, such as country, language or source (predictive lead scoring). You can override it by hand on any record.
Keep the number of stages low. In setups that work it is between four and six, and each stage stands for a concrete piece of work. A typical sequence for a team selling services or wholesale:
- New: the enquiry is in and has an owner.
- Qualified: need and budget have been discussed.
- Proposal sent: the figure is with the customer.
- Negotiation: terms are being worked out.
- Won: flagged as the won stage.
Won is a stage, lost is not
In Odoo, “won” is a stage, flagged as such in its settings. Lost is not a stage: an opportunity marked lost is archived together with a lost reason and leaves the pipeline. You define the lost reasons yourself and report on them later. A lost opportunity can be restored if the deal comes back.
Recording lost reasons consistently is the least talked-about and most useful part of a CRM. If three months later you keep seeing the same reason, you have a problem worth fixing.
Activities: the part that keeps the pipeline honest
An activity is a dated to-do attached to a record: a call, an email, a meeting, a to-do, a document upload, or a type of your own. Everyone sees their own activities from the clock icon in the top bar. On the pipeline each card shows a colour too: green for planned, orange for today, red for overdue.
Activity types can be chained. When a “Send proposal” activity is marked done, a “Follow-up call” three days later can be suggested or created automatically. That is the simplest way to stop follow-ups depending on someone’s memory.
The rule we apply is simple: every open opportunity should have a planned next activity. A weekly look at open opportunities with no activity (a custom filter on the activities field does it) catches the deals that are quietly dying.
Meetings come from the Calendar app: they are scheduled from the opportunity and can be synced with Google Calendar or Outlook.
Email, WhatsApp and the website form
Every opportunity has a chatter underneath it. Emails sent from there go out from Odoo and replies come back to the same record, so the whole thread lives on the opportunity rather than in one person’s inbox. This depends on the mail setup: on Odoo’s cloud it works out of the box, on your own server you configure incoming and outgoing mail and a domain.
Each sales team can have an email alias, such as sales@yourdomain. Every message sent to it opens a lead or opportunity for that team. With the Website app installed, the contact form on the site writes leads straight into CRM; in the form builder you set the form’s action to create an opportunity. If you use Live Chat, an operator can type /lead in the conversation to turn it into a lead.
For WhatsApp, Odoo Enterprise has a WhatsApp app that connects to Meta’s WhatsApp Business Platform. Messages are sent from the record and replies appear in the chatter. Two rules come from Meta, not Odoo: you need a business account set up with Meta, and a conversation you start can only open with an approved template. Once the customer has written to you, free text works within a 24-hour window. A personal WhatsApp number cannot be connected this way. On Community the same needs a third-party module or a custom integration.
Phone calls can be made and logged from the record with Odoo’s VoIP app (Enterprise). With any other phone system, a call is logged by hand as a completed call activity.
From opportunity to quotation to order
This is where Odoo differs from a standalone CRM. With the Sales app installed, an opportunity gets a New Quotation button. The quotation opens with the customer and the opportunity already linked, and the opportunity shows how many quotations and orders hang off it.
- The salesperson opens a new quotation from the opportunity; customer, salesperson and sales team carry across.
- Products and prices come from the catalogue and pricelists, optionally starting from a quotation template with standard lines, terms and optional products.
- The quotation goes out by email with a link to the customer portal, where the customer can sign it online and, if you allow it, pay.
- A signed or confirmed quotation becomes a sales order. The warehouse sees the delivery and the invoice is created from the order.
- Marking the opportunity won is a separate step. Teams that want it to happen on order confirmation add a small automation rule.
In a company running a separate CRM, at this point someone retypes the deal into the ERP or an integration does it for them. Odoo needs neither, because the quotation and the order are the next links in the same chain. How sales, stock and accounting share one database is on our Odoo ERP page.
If you sell recurring services, the Recurring Revenues option in CRM settings adds recurring amount fields to the opportunity, so one-off deals and subscriptions can be tracked separately in the same pipeline.
Reports worth opening
- Pipeline analysis: open opportunities by stage, salesperson, team or source, as a graph, pivot or list.
- Forecast: expected revenue by expected closing month. It is only as good as the closing dates people enter.
- Activities: who made how many calls, meetings and emails, and what is overdue.
- Lost reasons: lost opportunities are archived, so add the lost filter and group by lost reason.
- Won by source: every record has source, medium and campaign (UTM) fields, which show which channel turns into sales.
CRM reports show the pipeline, not money collected. If you want revenue from orders, the till and the online shop on one screen, there is our sales dashboard module.
When the standard app is enough, and when it is not
Standard CRM covers more than most teams use. We customise when one of these is true:
| Need | Standard Odoo | What it takes |
|---|---|---|
| Pipeline, activities, lost reasons, quotations | Yes | Configuration only |
| Separate pipelines per team or product line | Yes, with stages per team | Configuration only |
| Enquiries from a website form and an email address | Yes | Mail and alias setup |
| Fields specific to your trade | Studio on Enterprise; a small module on Community | Light development |
| Enquiries from Meta lead ads, marketplaces or a call-centre system | Not out of the box | An integration |
| Approval steps, such as a manager signing off a large discount | Not part of CRM | An automation rule or a small module |
| WhatsApp in the chatter | WhatsApp app on Enterprise | A Meta business account; an integration on Community |
Our rule: configure first, run it for a month, then customise where the team actually trips up. Most fields requested in the first meeting turn out to be fields nobody fills in a month later. Where customisation is needed, our automation and integration work comes in.
Setting it up, step by step
- Install CRM, and Sales if you send quotations. Install Website or Live Chat only if those channels will feed the pipeline.
- Create sales teams and add their members. One team is fine to start with.
- Decide on leads: switch them on only if someone screens raw enquiries before salespeople see them.
- Write four to six stages, each tied to a piece of work, and flag the won stage.
- Define lost reasons and a few tags. Short lists get used; long ones do not.
- Connect the channels: incoming and outgoing mail, a team alias, the website form.
- Import customers and open deals from your spreadsheet after removing duplicates. Odoo’s import tool takes CSV and Excel files.
- Set up activity types and their follow-ups, and in Sales the products and quotation templates.
- Train the team on their own data, and review the pipeline together every week for the first two months.
The last step decides everything. The software is the easy part; a CRM that is not updated after each conversation is an address book. How we run these steps is on our Odoo CRM implementation page. If CRM is part of a larger move to Odoo, see all our services and the Odoo apps we publish.
Frequently asked
Is Odoo CRM free?
The CRM app is part of Odoo Community, which has no licence fee. On Enterprise it comes with the subscription. Either way, the cost is in hosting, setup and training.
What is the difference between a lead and an opportunity in Odoo?
A lead is an unscreened enquiry kept outside the pipeline. An opportunity is a real chance of a sale, sitting in the pipeline with an expected revenue and closing date. Leads are optional and off by default; switch them on in CRM settings if someone screens enquiries before salespeople see them.
Can Odoo CRM send and receive WhatsApp messages?
Yes, through the WhatsApp app on Odoo Enterprise, which connects to Meta’s WhatsApp Business Platform. A conversation you start needs an approved template; messages and replies appear on the record. Personal WhatsApp numbers cannot be connected.
Does Odoo CRM work without the Sales app?
Yes: the pipeline, activities and reports all work. There is no quotation button, though, so prices and documents stay outside Odoo.
Can we import our existing customers and deals?
Yes, from CSV or Excel files. Clean out duplicates before importing; merging them afterwards takes longer.
Which Odoo version should we use for CRM?
The CRM model has stayed stable across 17, 18 and 19, so the choice usually depends on the other apps and third-party modules you need. Odoo supports its three most recent major versions.