erp-core/docs/05-user-stories/mgn-009/US-MGN-009-001-002-calificar-lead-scoring.md

3.1 KiB

US-MGN-009-001-002: Calificar Lead con Scoring

RF Asociado: RF-MGN-009-004 Módulo: MGN-009 - CRM Básico Epic: Leads Prioridad: P1 Story Points: 3 Sprint: Sprint 20 Estado: Ready for Development Fecha: 2025-11-24


User Story

Como vendedor, Quiero calificar leads con scoring automático, Para priorizar los leads más prometedores.

Descripción Detallada

Lead scoring asigna puntos basado en criterios:

  • Fuente: Referido (+30), Web (+10), Cold call (+5)
  • Empresa grande (>100 empleados): +20
  • Email corporativo: +10
  • Interacciones: +5 por cada llamada/email
  • Score total: 0-100

Clasificación:

  • Hot (80-100): Alta prioridad
  • Warm (50-79): Media prioridad
  • Cold (0-49): Baja prioridad

Criterios de Aceptación

Escenario 1: Calcular score automático

Dado que lead tiene source=referido (+30), email corporativo (+10), 2 llamadas (+10), Cuando sistema calcula score, Entonces lead.score=50, classification=warm.

Escenario 2: Actualizar score en tiempo real

Dado que lead tiene score=45, Cuando registro nueva llamada (+5), Entonces score se actualiza a 50, classification cambia a warm.

Escenario 3: Filtrar por clasificación

Dado que hay 100 leads: 10 hot, 40 warm, 50 cold, Cuando filtro classification=hot, Entonces veo solo los 10 leads hot.

Escenario 4: Calificación manual override

Dado que lead tiene score automático=45, Cuando vendedor califica manualmente como qualified, Entonces lead.state=qualified, ignora score automático.

Reglas de Negocio

  • RN-1: Score se calcula automáticamente al crear/actualizar lead.
  • RN-2: Score se actualiza al registrar actividades (llamadas, emails).
  • RN-3: Calificación manual override score automático.
  • RN-4: Classification: Hot (80+), Warm (50-79), Cold (0-49).

Tareas Técnicas

Backend

  • Service: LeadScoringService.calculateScore(lead)
  • Service: LeadScoringService.updateScoreOnActivity(lead, activity)
  • Reglas de scoring configurables
  • Unit tests

Frontend

  • Componente: LeadScoreBadge.tsx (badge con score y color)
  • Componente: LeadScoringConfigPanel.tsx (configurar reglas)
  • Filtro por classification
  • Score visual (progress bar)

Database

  • Columna: crm.leads.score (int 0-100)
  • Columna: crm.leads.classification (enum: hot, warm, cold)
  • Tabla: crm.scoring_rules (configuración)

Estimación Detallada

Tarea Horas
Backend 1.5
Frontend 1
Testing 1
TOTAL 3.5 horas = 3 SP

Definition of Done

  • Scoring automático funciona
  • Classification correcta
  • Score actualiza en tiempo real
  • Filtros funcionan
  • Tests >80%
  • QA/PO aprobado

Referencias