Quarantasettesima guida operativa Odoo 19 per PMI italiane. Nella guida precedente abbiamo visto la panoramica AI/ML per Odoo. Adesso scendiamo al concreto: come implementare un primo caso d’uso end-to-end. Scegliamo il lead scoring AI perché è il caso d’uso con miglior rapporto ROI/effort per PMI italiane. In questa guida vediamo step-by-step come implementare un sistema di scoring lead AI in Odoo, dalla raccolta dati al deployment in produzione, con esempi concreti.
Vediamo: requisiti dati, feature engineering, scelta algoritmo, training modello, integrazione Odoo, monitoring, retraining, casi pratici PMI italiane.
Perché iniziare dal lead scoring
Caratteristiche ideali
- Dati già strutturati in Odoo CRM
- Target chiaro (lead convertito vs non convertito)
- ROI quantificabile (conversion rate)
- Bassa complessità tecnica
- Effort tipico: 3-6 settimane end-to-end
Quando lead scoring AI NON serve
- Volume lead < 100/mese (insufficiente per ML)
- Conversion rate > 60% (sales team già efficiente)
- Storico < 18 mesi (dati insufficienti)
- Lead provengono da fonte unica (no diversità per modello)
Step 1: Requisiti dati
Volume minimo
- Almeno 500-1000 lead storici con outcome noto
- 200+ lead “convertiti” per imparare pattern positivi
- 800+ lead “non convertiti” per pattern negativi
- Distribuzione temporale di almeno 12 mesi
Dati necessari per ogni lead
- Fonte (website, fiera, referral, AdWords)
- Dati azienda (settore, dimensione, geo)
- Comportamento (timing risposta, email engagement, pagine visitate)
- Persona contact (ruolo, decisore vs no)
- Timing (quando contattato, quando risposto)
- Storico interazioni (numero email, call)
- Outcome (won, lost, no decision)
Stato pipeline come fonte dati
La pipeline CRM Odoo contiene tutto lo storico di lead progrediti attraverso le stages. È la fonte primaria di dati per addestrare il modello di lead scoring:

- Stage progression (lead → opportunity → quote → won/lost)
- Tempo per stage (proxy di engagement)
- Activity history (chat, mail, calls)
- Probability assegnata manualmente da sales
- Reason di lost (per pattern negativi)
Step 2: Feature engineering
Feature dirette da Odoo
- Source code (categorica)
- Country/region (categorica)
- Industry/settore (categorica)
- Expected revenue (numerica)
- Team_id / salesperson (categorica)
- Day of week creazione lead (categorica)
Feature derivate da behavior
- Tempo medio risposta a email (numerica)
- Numero email inviate/ricevute (numerica)
- Tempo trascorso in ogni stage (numerica)
- Number of activities recorded (numerica)
- Last interaction days ago (numerica)
Feature derivate da master data
L’anagrafica cliente in Odoo contiene informazioni preziose per feature engineering. Settore, regime fiscale, condizioni di pagamento sono tutti indicatori predittivi:

- Esistente cliente (boolean, has_history)
- Total revenue precedente (se cliente esistente)
- Pagamenti puntuali storici (% on time)
- Regime fiscale tipo (categorica)
- Account manager dedicato (boolean)
Feature da fonti esterne (opzionali)
- Sito web aziendale (scraping per traffic, tech stack)
- LinkedIn dell’azienda (employees, growth)
- Visure camerali (fatturato, dipendenti)
- Notizie/sentiment (news API)
Step 3: Scelta algoritmo
Random Forest (raccomandato per iniziare)
- Pro: robusto, gestisce mix categoriche/numeriche, no overfit
- Contro: meno interpretabile di alberi singoli
- Accuracy tipica: 75-85%
- Training time: 1-5 minuti su dataset PMI
XGBoost (per accuracy avanzata)
- Pro: state-of-the-art per dati strutturati, accuracy alta
- Contro: hyperparameter tuning più complesso
- Accuracy tipica: 80-90%
- Training time: 5-20 minuti
Logistic Regression (baseline)
- Pro: super interpretabile, veloce
- Contro: assume linearità (limitante)
- Accuracy tipica: 65-75%
- Useful come baseline per confronto
Neural Network (overkill per PMI tipica)
- Solo se dataset > 100k esempi
- Effort eccessivo per ROI tipico
- Sconsigliato come primo progetto
Step 4: Training del modello
Stack tecnologico raccomandato
- Python + scikit-learn (baseline + Random Forest)
- XGBoost library (per modello avanzato)
- Pandas per data manipulation
- Jupyter notebook per exploration
- MLflow per tracking esperimenti
Workflow tipico
- 1. Export dati Odoo via API (CSV o pandas DataFrame)
- 2. Train/test split (80/20)
- 3. Feature engineering + encoding
- 4. Hyperparameter tuning (GridSearch o Optuna)
- 5. Cross-validation (5-fold tipico)
- 6. Test su holdout set
- 7. Analisi feature importance
- 8. Documentazione + versioning
Metriche da ottimizzare
- Precision: degli high-score lead, quanti veramente convertiti
- Recall: dei lead convertiti, quanti score alto
- F1 score: balance tra precision e recall
- AUC-ROC: discriminative power complessivo
- Target tipico: AUC > 0.75 per essere utile
Step 5: Integrazione Odoo
Architettura raccomandata
- Modello ML servito tramite API REST (Flask, FastAPI)
- Odoo chiama API su create/update lead
- Score salvato in campo custom su
crm.lead - Cron giornaliero per rescore lead esistenti
Esempio integrazione Python in Odoo
import requests
class CrmLead(models.Model):
_inherit = 'crm.lead'
ai_score = fields.Float('AI Score', default=0)
ai_score_updated = fields.Datetime('AI Score Updated')
def compute_ai_score(self):
for lead in self:
features = self._extract_features(lead)
response = requests.post(
'http://ml-api.internal/score',
json=features,
timeout=5,
)
lead.ai_score = response.json()['score']
lead.ai_score_updated = fields.Datetime.now()
Visualizzazione nel form lead

Il dettaglio del lead/opportunità è il posto dove mostrare il punteggio AI in modo contestuale, accanto agli altri dati commerciali. Il sales può vedere immediatamente la priorità suggerita:

- Badge “AI Score: 87” visibile sulla form
- Color-coding (verde > 70, giallo 40-70, rosso < 40)
- Suggested actions basate su score
- Feature importance per spiegare lo score
- Filtro pipeline per “high score only”
Step 6: Deployment in produzione
Infrastructure
- Container Docker per ML API
- Reverse proxy con SSL
- Monitoring (Prometheus + Grafana)
- Log centralizzato per debug
- Backup modello + dataset
Rollout graduale
- Fase 1: shadow mode (score calcolato, non visibile ai sales)
- Fase 2: pilot team (1-2 sales team test) per 4 settimane
- Fase 3: full rollout con training utenti
- Fase 4: enforcement workflow (es. lead < 30 score → low priority)
Change management
- Workshop con sales team su come usare lo score
- Disclaimer su AI: “suggerimento, non oracolo”
- Override sempre possibile
- Feedback loop per migliorare modello
Step 7: Monitoring e retraining
Metriche da monitorare
- Distribuzione score (drift detection)
- Performance modello su nuovi dati (mensile)
- Adoption sales team (% lead reviewed con score)
- Business KPI: conversion rate per score bucket
- ROI tracking continuo
Retraining policy
- Trigger: AUC scende sotto 0.7
- Trigger: distribuzione lead cambia significativamente
- Schedule: minimo ogni 6 mesi anche se non triggered
- Process: full training pipeline + validation + deploy
Feedback loop
- Sales può marcare “score wrong” su lead specifici
- Dati feedback raccolti per next training
- Review trimestrale con sales team sui false positive
Timeline e budget realistici
| Fase | Durata | Effort/Costo |
|---|---|---|
| Discovery + requisiti | 1-2 settimane | 2-4k € |
| Data exploration + cleaning | 2-3 settimane | 3-6k € |
| Feature engineering + training | 2-3 settimane | 4-8k € |
| Integrazione Odoo + API | 1-2 settimane | 3-6k € |
| Test + UAT | 2 settimane | 2-4k € |
| Rollout + training | 2 settimane | 2-4k € |
| Totale | 10-14 settimane | 16-32k € |
Costi ricorrenti annuali
- Hosting ML API: 1-3k €
- Retraining periodico: 3-6k €
- Monitoring + maintenance: 2-4k €
- Feedback loop + tuning: 2-5k €
- Totale ricorrente: 8-18k €/anno
Errori comuni nell’implementazione
“Saltare data quality”
Problema: training su dati con 30% missing, accuracy mediocre.
Soluzione: 50%+ dell’effort iniziale su data cleaning prima di model training.
“Overfitting senza accorgersene”
Problema: accuracy 95% in test, 60% in produzione.
Soluzione: cross-validation rigorosa, test su periodo successivo al training.
“No baseline”
Problema: AI 75% accurate, ma quanto era quello manuale?
Soluzione: baseline esplicita (es. % conversion lead “naturale”) prima di AI deploy.
“Black box senza explainability”
Problema: sales non si fida, ignora lo score.
Soluzione: SHAP/LIME per spiegare ogni score, top 3 driver del punteggio.
“Deploy senza shadow mode”
Problema: produzione diretta, bug catastrofici visibili a sales.
Soluzione: shadow mode minimo 4 settimane prima di esposizione.
Casi pratici PMI italiane
Caso 1 — Manifattura B2B: setup completo
- 1.200 lead/anno, conversion baseline 12%
- Modello XGBoost, AUC 0.81
- Setup: 24k €, ricorrente 12k €/anno
- Risultato: top 30% lead → conversion 28% (+135%)
- Sales team più efficiente, payback 11 mesi
Caso 2 — Servizi B2B: implementazione lean

- 600 lead/anno, partito con Random Forest base
- Setup minimal: 18k €, ricorrente 8k €/anno
- AUC 0.74 (sufficiente per caso d’uso)
- Risultato: tempo qualificazione lead -40%
- Payback 9 mesi
Caso 3 — Distributore: integrazione e-commerce
- 3.500 lead/anno da multiple canali
- Feature engineering ricco (web behavior, email engagement)
- Setup: 35k €, ricorrente 15k €/anno
- AUC 0.86
- Risultato: revenue +12% per allocazione sales su lead high-score
Caso 4 — Software house: fallimento iniziale
- Tentativo con LSTM neural network su 800 lead
- Overfitting massivo, AUC test 0.55
- Refactor a Random Forest, AUC 0.72
- Lesson learned: start simple, complicate solo se necessario
FAQ
Quanti lead servono minimo per training utile?
Soglia minima ragionevole: 500 lead storici con outcome noto. Sotto 500: alto rischio overfitting o accuracy bassa. Ideale: 2.000+ lead distribuiti su 18+ mesi per catturare pattern stagionali.
Posso usare AI lead scoring senza data scientist interno?
Sì, partner Odoo con expertise AI può consegnare progetto chiavi in mano. Per evolution e maintenance: data scientist part-time o consulenza ricorrente sufficient per PMI < 200 utenti.
Quanto è accurato un buon modello?
Per PMI tipica: AUC 0.75-0.85 è realistico. Sopra 0.90 raro e potenzialmente segno di overfitting. Sotto 0.70 marginalmente utile, da migliorare. Comparison sempre con baseline pre-AI.
Devo coinvolgere il sales team da subito?
Sì, ma con timing. Discovery e training: sales team coinvolto. Development tecnico: meno. Rollout: shadow mode prima, poi pilot, poi full. Comunicazione trasparente su capabilities e limiti modello.
Cosa fare se il modello fa errori evidenti?
Per ogni “errore evidente” raccoglierlo come feedback. Trimestralmente: review pattern errori, valutare se data quality, feature engineering, o limit fondamentale del modello. Retraining con dati corretti / nuove feature.
Prossimi passi
Nelle prossime guide vedremo come scalare l’AI da 1 a 5 casi d’uso con governance unitaria, come misurare ROI complessivo AI nel portafoglio, e come integrare AI con strategia digital transformation complessiva della PMI.
Vuoi implementare AI lead scoring nella tua PMI?
G Tech Group sviluppa sistemi AI lead scoring per Odoo PMI italiane: data exploration, feature engineering, modello custom, integrazione, monitoring. Payback tipico 8-14 mesi.
Richiedi un preventivo gratuito oppure prova la nostra demo Odoo 19 live. Oppure prova Odoo direttamente su odoo.com (link partner Brentasoft).
Vuoi una soluzione su misura per la tua azienda?
Brentasoft sviluppa gestionali, CRM e software personalizzati per PMI italiane. Parliamo del tuo progetto.