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