CRM Pipeline & Lead Scoring
1. What? — Definition and context
Section titled “1. What? — Definition and context”A lead lands in Odoo — web form, Cal.com, manual import. And then? Without automation, it sits in “New” until someone remembers to handle it. Scoring is subjective, follow-ups are forgotten, and lost leads are never reached out to again.
The CRM Pipeline Automation brings together two complementary workflows: a system for scoring and automatic pipeline progression, and AI enrichment of incoming leads.
The two workflows
Section titled “The two workflows”| Workflow | Nodes | Trigger | Role |
|---|---|---|---|
| CRM Pipeline Automation | ~35 | Hourly + daily + webhook + monthly | Scoring, progression, follow-ups, reactivation |
| Lead Enrichment | ~15 | Webhook (lead creation) | AI enrichment via website |
Architecture
Section titled “Architecture”2. Why? — Stakes and motivations
Section titled “2. Why? — Stakes and motivations”Problems solved
Section titled “Problems solved”| Problem | Without automation | With automation |
|---|---|---|
| Subjective scoring | ”This lead looks good” | 0-100 score on objective criteria |
| Forgotten leads | Sit in “New” for weeks | Automatic progression by signals |
| Manual follow-ups | Forget to follow up after 7 days | Claude generates the follow-up email |
| Lost leads | Never recontacted | Monthly reactivation of 3+ month leads |
| Empty leads | No info on the company | Auto enrichment via the website |
3. How? — Technical implementation
Section titled “3. How? — Technical implementation”Scoring (hourly)
Section titled “Scoring (hourly)”Every hour, the workflow recomputes the score of every active lead along five axes:
| Axis | Max points | Criteria |
|---|---|---|
| Profile | 20 | Email (+5), phone (+5), company (+5), role (+5) |
| Source | 15 | Referral (15), Cal.com (12), web form (10), import (5) |
| Budget | 25 | +50k (25), 20-50k (20), 10-20k (15), 5-10k (10), -5k (5) |
| Activity | 15 | Email received within 7d (15), 14d (10), 30d (5) |
| Tags | 10 | Tags “decision-maker” (+5), “budget-confirmed” (+5) |
The score is stored in the x_score field with the calculation date.
Automatic progression
Section titled “Automatic progression”When certain signals are detected, the lead automatically advances in the pipeline:
| Detected signal | Progression |
|---|---|
| Email reply received | New → Qualified |
| Meeting scheduled (Cal.com) | Qualified → Proposition |
| Quote sent in Odoo | Proposition → Negotiation |
| Contract signed | Negotiation → Won |
AI follow-ups (daily, 9 AM)
Section titled “AI follow-ups (daily, 9 AM)”Every morning, the workflow identifies leads with no activity for 7+ days. For each one, Claude (haiku model) generates a personalised follow-up email based on the lead’s activity history. The email is created as a draft in Odoo — it is never sent automatically.
Reactivation (monthly)
Section titled “Reactivation (monthly)”On the first Monday of the month, leads marked “Lost” for more than 3 months are analysed by Claude. The AI excludes “Not interested” or “Competitor won” leads and proposes a re-engagement angle for the others. The x_reactivation_count counter prevents endless reach-outs.
Lead enrichment
Section titled “Lead enrichment”When a new lead is created in Odoo (or when the company name is missing), a webhook triggers enrichment:
- Domain extraction from email (gmail, yahoo etc. are excluded)
- Fetch the website (homepage + /about as fallback)
- Claude analyses the content and extracts: industry, estimated size, products, pain points, estimated budget
- Odoo fields are updated with a confidence score (0-1)
4. What if? — Outlook and limits
Section titled “4. What if? — Outlook and limits”Current limits
Section titled “Current limits”| Limit | Impact | Mitigation |
|---|---|---|
| Free email providers | Enrichment not possible | LinkedIn fallback (DuckDuckGo search) |
| Follow-ups as drafts | No automatic send | Deliberate choice — human validation |
| Static scoring | No learning from conversions | Eventually: adjust weights from history |
Evolution scenarios
Section titled “Evolution scenarios”If lead volume grows:
- Prioritise enrichment by score
- Batch processing instead of per-webhook
- Configurable rate limiting (currently 50/h)
If a sales team is involved:
- Round-robin assignment by score
- Differentiated notifications per salesperson
- Scoring dashboard inside Odoo
Related pages
Section titled “Related pages”Workflows
Section titled “Workflows”- Cal.com → Odoo CRM — Cal.com lead source
- Website Lead Notification — Web-form notifications
- Notification Hub — Alert routing
Infrastructure
Section titled “Infrastructure”- Odoo 18 on Docker — CRM configuration
- AI Stack — Claude for enrichment and follow-ups