Skip to content

CRM Pipeline & Lead Scoring

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.

WorkflowNodesTriggerRole
CRM Pipeline Automation~35Hourly + daily + webhook + monthlyScoring, progression, follow-ups, reactivation
Lead Enrichment~15Webhook (lead creation)AI enrichment via website

CRM Pipeline Automation · hourly schedule

Score 0-100

Auto stage

AI follow-up

Monthly reactivation

Lead Enrichment · creation webhook

Fetch website

Claude analysis

Update Odoo · industry, size, budget

New Odoo lead


ProblemWithout automationWith automation
Subjective scoring”This lead looks good”0-100 score on objective criteria
Forgotten leadsSit in “New” for weeksAutomatic progression by signals
Manual follow-upsForget to follow up after 7 daysClaude generates the follow-up email
Lost leadsNever recontactedMonthly reactivation of 3+ month leads
Empty leadsNo info on the companyAuto enrichment via the website

Every hour, the workflow recomputes the score of every active lead along five axes:

AxisMax pointsCriteria
Profile20Email (+5), phone (+5), company (+5), role (+5)
Source15Referral (15), Cal.com (12), web form (10), import (5)
Budget25+50k (25), 20-50k (20), 10-20k (15), 5-10k (10), -5k (5)
Activity15Email received within 7d (15), 14d (10), 30d (5)
Tags10Tags “decision-maker” (+5), “budget-confirmed” (+5)

The score is stored in the x_score field with the calculation date.

When certain signals are detected, the lead automatically advances in the pipeline:

Detected signalProgression
Email reply receivedNew → Qualified
Meeting scheduled (Cal.com)Qualified → Proposition
Quote sent in OdooProposition → Negotiation
Contract signedNegotiation → Won

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.

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.

When a new lead is created in Odoo (or when the company name is missing), a webhook triggers enrichment:

  1. Domain extraction from email (gmail, yahoo etc. are excluded)
  2. Fetch the website (homepage + /about as fallback)
  3. Claude analyses the content and extracts: industry, estimated size, products, pain points, estimated budget
  4. Odoo fields are updated with a confidence score (0-1)

LimitImpactMitigation
Free email providersEnrichment not possibleLinkedIn fallback (DuckDuckGo search)
Follow-ups as draftsNo automatic sendDeliberate choice — human validation
Static scoringNo learning from conversionsEventually: adjust weights from history

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