2.9 KiB
US-MGN-009-005-001: Convertir Lead en Oportunidad
RF Asociado: RF-MGN-009-005 Módulo: MGN-009 - CRM Básico Epic: Conversión Prioridad: P0 Story Points: 4 Sprint: Sprint 21 Estado: Ready for Development Fecha: 2025-11-24
User Story
Como vendedor, Quiero convertir leads calificados en oportunidades, Para avanzar en el pipeline de ventas.
Descripción Detallada
Conversión Lead → Oportunidad:
- Valida lead está qualified
- Crea partner si no existe (desde lead.company_name y lead.email)
- Crea oportunidad vinculada al partner
- Marca lead como converted
- Copia actividades del lead a la oportunidad
Criterios de Aceptación
Escenario 1: Convertir lead sin partner existente
Dado que lead qualified con company="ABC Corp", email="contact@abc.com", Cuando convierto a oportunidad con amount=50000, Entonces sistema crea partner "ABC Corp", crea oportunidad vinculada, marca lead.state=converted.
Escenario 2: Convertir lead con partner existente
Dado que lead tiene email="juan@abc.com", ya existe partner con email similar, Cuando convierto, Entonces sistema sugiere partner existente, permite seleccionar o crear nuevo.
Escenario 3: Copiar actividades
Dado que lead tiene 5 actividades registradas, Cuando convierto a oportunidad, Entonces sistema copia las 5 actividades a la oportunidad.
Escenario 4: No convertir lead no calificado
Dado que lead está en state=new, Cuando intento convertir, Entonces error 400 "Solo leads calificados pueden convertirse".
Reglas de Negocio
- RN-1: Solo leads en state=qualified pueden convertirse.
- RN-2: Conversión crea partner si no existe.
- RN-3: Lead marca como converted (no se elimina).
- RN-4: Actividades se copian a oportunidad.
- RN-5: lead.converted_to_opportunity_id vincula a oportunidad.
Tareas Técnicas
Backend
- Endpoint:
POST /api/v1/crm/leads/:id/convert - Service:
LeadService.convertToOpportunity(leadId, conversionDto) - Crear/buscar partner
- Crear oportunidad
- Copiar actividades
- Actualizar lead state=converted
- Unit tests
Frontend
- Modal:
ConvertLeadModal.tsx - Formulario: Monto estimado, fecha cierre
- Selector: Partner existente o crear nuevo
- Confirmación conversión
- Navegación a oportunidad creada
Estimación Detallada
| Tarea | Horas |
|---|---|
| Backend | 2.5 |
| Frontend | 1.5 |
| Testing | 2 |
| TOTAL | 6 horas = 4 SP |
Definition of Done
- Conversión funcional
- Partner se crea/vincula correctamente
- Actividades copiadas
- Lead marcado como converted
- Tests >80%
- QA/PO aprobado