Lead Scoring
Lead Scoring
Automatización diaria que convierte el campo
expected_revenuedel CRM en un número accionable: refleja cuánto vale hoy trabajar esa oportunidad, no solo cuánto vale el contrato si cierra.
¿Qué problema resuelve?
En un CRM sin scoring, dos leads con expected_revenue = $15,000 se ven idénticos aunque uno llegó ayer y el otro lleva cuatro meses sin moverse. El vendedor no tiene señal clara de dónde poner su energía.
Lead Scoring hace que ese número cambie todos los días. Un lead fresco vale más que uno viejo. Uno que avanzó a Propuesta vale más que uno que sigue en Nuevo. Uno que vino de un referido vale más que uno de una fuente fría.
La fórmula
score = max(CAC, base × time_decay × stage_mult × source_mult)
| Factor | Qué mide | Ejemplo |
|---|---|---|
base |
Valor original del lead (guardado al primer cálculo en x_base_revenue) |
$15,000 |
time_decay |
Cuánto se ha enfriado — decrece exponencialmente con los días | 0.79 a los 10 días |
stage_mult |
Bonus por avanzar etapas — señal de interés real | ×1.4 en Propuesta |
source_mult |
Ajuste por probabilidad de cierre según fuente | ×2.0 si Google cierra el doble que el promedio |
CAC |
Piso — nunca baja de aquí; es lo que costó adquirir el lead | $5,000 |
Time decay en detalle
time_decay = 0.5 ^ (días_transcurridos / avg_days)
A avg_days días el lead vale la mitad de su base. No llega a cero — se aplana hacia el CAC. Esto refleja que los leads se enfrían, pero un lead muy viejo todavía vale algo si lo rescatas.
Día 0 Día 30 Día 60 Día 90
100% → 50% → 25% → 12.5% (con avg_days=30)
Parámetros que configura el wizard
| Pregunta | Variable | Para qué sirve |
|---|---|---|
| Ticket promedio | ticket_promedio |
Base del CAC |
| ROAS objetivo | roas_objetivo |
CAC = ticket / ROAS |
| Días promedio a cierre | avg_days |
Velocidad del decay |
| Días máximo razonable | max_days |
Referencia del umbral |
| % bonus por etapa | stage_mult |
Ajuste por avance en pipeline |
| Tasa de cierre global | tasa_global |
Base para normalizar fuentes |
| Tasa de cierre por fuente | source_mult |
= tasa_fuente / tasa_global |
El CAC y los source_mult no se piden directamente — se derivan de las métricas de negocio. Eso evita adivinar porcentajes y hace que los números tengan fundamento real.
Ejemplo concreto
Parámetros: ticket=$15,000, ROAS=3×, CAC=$5,000, avg_days=30, tasa_global=10%. Google cierra al 20% → source_mult=2.0. Meta al 8% → source_mult=0.8.
| Lead | Días | Fuente | Etapa (×) | Score |
|---|---|---|---|---|
| A | 5 | Propuesta (×1.4) | $15,000 × 0.89 × 1.4 × 2.0 = $37,380 | |
| B | 45 | Meta | Nuevo (×1.0) | $15,000 × 0.35 × 1.0 × 0.8 = $4,200 → piso CAC = $5,000 |
El kanban muestra la diferencia en tiempo real. Lead A merece atención urgente. Lead B merece una última llamada de rescate — no más.
Qué crea en Odoo
| Artefacto | Descripción |
|---|---|
Campo x_base_revenue en crm.lead |
Guarda el valor original del lead. Inmutable una vez establecido. |
ir.cron diario |
Recorre todos los leads activos y actualiza expected_revenue. Corre todos los días a la hora configurada. |
Logs en ir.logging |
Un registro INFO de resumen + un registro ERROR por cada lead que falle. Visible en Odoo → Ajustes → Técnico → Registro del servidor. |