See it in action
From a blank rule to graded leads and a transparent per-lead scorecard — the whole workflow, end to end.
Predictive scoring without the black box
Lead scoring is an Enterprise feature — and a black box. This app brings it to Community as a transparent rule engine: you decide what earns points, leads grade themselves automatically, and every lead shows exactly why it scored what it did.
Everything you need to focus your sales team
Rule-based scoring
Grant or subtract points on any lead condition — expected revenue, source, job position, tags, country and more.
No-code condition builder
Each rule's condition is built with Odoo's visual domain editor — no code, and it even shows how many leads currently match.
A/B/C/D grades
Score thresholds turn points into grades your team reads at a glance. Edit the names, thresholds and colours freely.
Automatic recompute
Scores refresh as the lead's fields change, plus a per-lead button, a per-rule "recompute all" and an optional daily cron.
Per-lead breakdown
Every lead lists which rules fired and the points each added — so salespeople trust the score and managers can audit it.
Filter & group by grade
Filter the pipeline to A - Hot or positive scores, and group leads by grade to see your funnel split by quality.
Positive & negative rules
Reward strong fit and penalise weak signals (low probability, lost) so junk sinks to the bottom automatically.
Right inside CRM
Score and grade live on the lead form, in the pipeline and lead lists — no separate screen to learn.
Starter model included
Ships with sensible rules and grades so it works the moment you install it; tune from there.
Up and running in four steps
Define rules
Points for the conditions that matter to you.
Set grades
Thresholds for A, B, C and D.
Leads self-score
Automatically, with a full breakdown.
Work the A's
Filter and group to focus your team.
Real screens, real data
Every screenshot below is the actual app running on Odoo 19 — no mockups.
Every lead shows why
The grade badge, the score and a per-rule breakdown sit right on the lead — total transparency, no black box.
Build your rule engine
All your rules in one place — category, condition and points, with positive rules in green and penalties in red.
No-code condition builder
Define when a rule applies with the visual domain editor — and see how many leads match before you save.
Define your grades
Set the score thresholds for A, B, C and D, with colours and a live count of leads in each grade.
See your funnel by grade
Group leads by grade to see instantly how much of your pipeline is hot, warm, cool or cold.
Scores in the pipeline
Score and grade columns sit in the pipeline and lead lists, so reps always work the best leads first.
Point your sales team at the leads that convert
Install in seconds. No Enterprise, no external libraries, no lock-in. Works on Odoo 19 Community and Enterprise.
Full manual included. The app ships with a complete in-app documentation page (Apps > this module > Documentation) covering rules, grades, recompute, reading scores and FAQs. Questions? bambooforge.labs@gmail.com
BambooForge Lead Scoring
Stop chasing every lead the same way. This app scores your CRM leads with a transparent, configurable rule engine — points per condition — rolls the scores into A/B/C/D grades, recomputes automatically as leads change, and shows on every lead exactly why it scored what it did. The Community answer to predictive lead scoring.
This page is the complete manual. Follow it top to bottom and you can install, build your scoring model, read the grades and fix the common issues without contacting support.
Overview
- Scoring rules — each rule grants (or subtracts) points to leads that match an Odoo domain you define with a visual, no-code condition builder.
- Grades — score thresholds turn raw points into A/B/C/D grades (fully editable) so your team can sort at a glance.
- Automatic scoring — scores refresh as the lead's fields change, on a schedule, or on demand. No manual upkeep.
- Total transparency — every lead shows its score, its grade and a breakdown of which rules contributed how many points.
- Built into CRM — score and grade appear on the lead form, in the pipeline and lead lists, and as a filter and group-by.
Requirements
- Odoo 17.0.
- The CRM app (crm). Installing this app pulls it in automatically.
No Enterprise modules and no external Python libraries are required.
Installation
- Copy bambooforge_lead_scoring into your addons path.
- Update the apps list (Apps > Update Apps List).
- Search for Lead Scoring and click Install.
A starter set of rules and grades is created, and existing leads are scored on install. Find the configuration under CRM > Configuration > Lead Scoring.
Building your scoring model
Rules. Go to CRM > Configuration > Lead Scoring > Scoring Rules. Each rule has:
- a Category (demographic, behavioral or negative) for organisation,
- an Applies When domain — built with the visual condition editor on the lead's own fields (expected revenue, email, source, tags, job position…),
- Points — positive to reward, negative to penalise.
A lead's score is the sum of the points of every rule it matches. The shipped rules (high revenue, has email/phone, qualified to opportunity, high priority, low probability, lost) are a starting point — edit, add or remove freely.
Grades. Go to Grades. Each grade has a Minimum Score; a lead takes the highest grade whose minimum it reaches. The defaults are A (≥ 60), B (≥ 35), C (≥ 15) and D (≥ 0) — adjust the thresholds to your funnel.
How scoring stays current
The score is a stored field that recomputes automatically whenever a lead's common fields change (revenue, email, phone, stage, source, priority, tags and more). In addition:
- the Recompute Score button on a lead refreshes it on demand,
- the Recompute All Leads button on a rule re-scores the whole base after you change the rules,
- an optional scheduled action Lead Scoring: Recompute Scores (disabled by default) re-scores every lead on a schedule.
Re-score the base whenever you change rules or thresholds, since existing leads keep their previous score until recomputed.
Reading scores in CRM
- On the lead/opportunity form, the grade badge, the score and a per-rule breakdown appear next to the expected revenue.
- In the pipeline and lead lists, Score and Grade are available columns.
- In the search panel, filter to A - Hot or Positive Score, and group by Grade to see your funnel split by quality.
Transparency
Unlike a black-box predictive score, every lead carries a plain breakdown such as:
+30 High expected revenue (≥ 50k) +10 Has an email address +15 Qualified to opportunity
so salespeople trust the number and managers can see exactly what the model rewards.
Frequently asked questions
- A rule's domain won't save.
- The domain must be a valid Odoo domain on the lead. Use the visual editor to avoid syntax mistakes; invalid domains are rejected on save.
- Scores didn't change after I edited the rules.
- Existing leads keep their score until recomputed. Use Recompute All Leads on a rule, or enable the scheduled action.
- Can a rule use related fields?
- Yes. Domains can traverse relations, e.g. the partner's country or the source and medium, just like any Odoo domain.
- Does scoring run in real time?
- Yes, for the common lead fields the score recomputes immediately on change. A rule using an unusual field is picked up by the recompute button or the cron.
- Does it work with multiple companies?
- Scoring rules and grades are global; scores are stored per lead, which already carry their own company.
Support
Questions or ideas: bambooforge.labs@gmail.com.
Usage
This section walks through a full working session: configure the model, let leads score themselves, and read the results inside CRM. All configuration lives under CRM > Configuration > Lead Scoring (visible to users in the Sales / Administrator group).
Configure scoring rules
Open CRM > Configuration > Lead Scoring > Scoring Rules. The list opens already populated with the starter rules, colour-coded green for rules that award points and red for rules that subtract them. Each rule has:
- Name — shown verbatim in the per-lead breakdown, so keep it descriptive.
- Category — Demographic, Behavioral or Negative; for organisation.
- Points — added to a matching lead's score; enter a negative number to penalise (the shipped Lost / archived rule is -50).
- Applies When — an Odoo domain on crm.lead, built with the visual condition editor; a matching lead receives the points. Invalid domains are rejected on save.
The shipped rules are High expected revenue (≥ 50k) (+30), Medium expected revenue (10k–50k) (+15), Has an email address (+10), Has a phone or mobile (+10), Qualified to opportunity (+15), Marked high priority (+10), Very low probability (< 10%) (-10) and Lost / archived (-50). Edit, reorder (drag the handle) or delete them freely.
Configure grades
Open CRM > Configuration > Lead Scoring > Grades. A grade has a Minimum Score; a lead is assigned the highest grade whose minimum it reaches. The defaults are A - Hot (≥ 60), B - Warm (≥ 35), C - Cool (≥ 15) and D - Cold (≥ 0). Adjust the thresholds to match your funnel. Each grade shows its live lead count, and the View Leads action opens the leads currently holding that grade.
How the score is computed and kept current
A lead's Lead Score is the sum of the points of every active rule whose domain it matches; its Grade follows from that total. Both are stored fields that recompute automatically whenever a common lead field changes — expected revenue, email, phone, stage, source, priority, tags, probability and more. To refresh manually:
- press Recompute Score on an individual lead form,
- press Recompute All Leads on any rule's form to re-score the whole database after changing rules or thresholds, or
- enable the scheduled action Lead Scoring: Recompute Scores (under Settings > Technical > Scheduled Actions, disabled by default; runs daily).
Existing leads keep their previous score until recomputed, so re-score the base after any rule or threshold change.
Reading scores in CRM
- On the lead/opportunity form, the grade badge, the numeric score and the per-rule Score Breakdown appear just after Expected Revenue. The badge is green for a score ≥ 60 and blue below 35.
- In the pipeline and lead lists, Lead Score and Grade are optional columns (shown by default).
- In the search view, use the A - Hot and Positive Score filters and the Grade group-by to split your funnel by quality.
Worked example
An opportunity with expected revenue 60,000, an email address and high priority matches High expected revenue, Has an email address, Qualified to opportunity and Marked high priority, scoring 30 + 10 + 15 + 10 = 65. As 65 ≥ 60 it is graded A - Hot, and its Score Breakdown reads:
+30 High expected revenue (≥ 50k) +10 Has an email address +15 Qualified to opportunity +10 Marked high priority
If the deal is later lost and archived, the Lost / archived rule (-50) applies and the score drops to 15, moving the lead down to grade C - Cool.
Upgrading & version compatibility
This build targets Odoo 19.0. Each Odoo major series (17.0, 18.0, 19.0) has its own dedicated build of this module — always install the build that matches your Odoo version. Mixing a build with a different Odoo series is not supported.
Patch upgrades (same series, e.g. 19.0.1.0.0 → later)
Back up your database and filestore first.
Replace the module folder with the newer build.
Restart Odoo with the module updated:
./odoo-bin -c your.conf -u bambooforge_lead_scoring -d your_db
Odoo applies any schema/data changes automatically. Your existing records and configuration are preserved.
Cross-version migration (e.g. Odoo 17 → 18)
Upgrading Odoo itself is a database migration handled by Odoo's standard upgrade tooling. When you migrate the database to the next Odoo series, install the matching build of this module for that series. Data created by this module carries over with the database migration.
After any upgrade the module's scheduled actions resume on their normal cadence — no manual re-activation is required.
Uninstallation
You can remove this module at any time from Apps → (this module) → Uninstall, or from the command line. Uninstalling is clean and reversible by reinstalling — but note what is and is not deleted.
What is removed
- The fields, views and analysis definitions this module added.
- The menus, actions, views and reports this module installed.
- Its scheduled actions (cron jobs) — they stop immediately on uninstall.
What is preserved
- Your standard Odoo data (partners, products, sales, invoices, inventory moves) is not deleted — this module only reads and annotates it; the underlying records stay.
- Attachments and chatter messages on standard records are kept.
As always, take a database backup before uninstalling in production.
Changelog
19.0.1.0.0
Current release for Odoo 19.0. This build includes:
- Score and grade CRM leads with a transparent, configurable rule engine.
- Points per condition, A/B/C/D grades, automatic recompute and a per-lead breakdown. The Community answer to predictive lead scoring.
Feature additions and fixes ship as new builds on the Odoo Apps store; this page and the module's version reflect the current published release. Always keep the build matched to your Odoo series (see Upgrading & version compatibility).
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module