erp-core/docs/08-epicas/EPIC-MGN-014-crm.md

181 lines
6.1 KiB
Markdown

# EPICA: EPIC-MGN-014 - CRM Basico
## Metadata
| Campo | Valor |
|-------|-------|
| **ID** | EPIC-MGN-014 |
| **Nombre** | CRM Basico |
| **Modulo** | crm |
| **Fase** | Fase 3 - Extended |
| **Prioridad** | P2 |
| **Estado** | Backlog |
| **Story Points** | 34 |
| **Sprint(s)** | Sprint 15-17 |
---
## Descripcion
Sistema CRM basico que incluye gestion de leads, oportunidades, pipeline de ventas visual (Kanban), actividades de seguimiento, conversion a cliente y reportes de funnel y forecast. Diseñado para equipos comerciales pequeños y medianos.
---
## Objetivo de Negocio
Proveer CRM que:
- Capture y califique leads de multiples fuentes
- Gestione pipeline de ventas visualmente
- Facilite seguimiento de oportunidades con recordatorios
- Mejore tasa de conversion con scoring
- Analice desempeno comercial con metricas clave
---
## Stakeholders
| Rol | Nombre/Equipo | Responsabilidad |
|-----|---------------|-----------------|
| Product Owner | Equipo Producto | Definicion de funcionalidades comerciales |
| Tech Lead | Equipo Backend | Arquitectura y performance |
| Gerente Comercial | Ventas | Definicion de pipeline y metricas |
| Vendedores | Ventas | Uso diario, feedback UX |
---
## Historias de Usuario
| ID | Historia | Prioridad | SP | Estado |
|----|----------|-----------|-----|--------|
| US-MGN014-001 | Como vendedor, quiero capturar leads desde formularios web para alimentar el pipeline | P0 | 5 | Backlog |
| US-MGN014-002 | Como vendedor, quiero calificar leads con scoring para priorizar seguimiento | P0 | 3 | Backlog |
| US-MGN014-003 | Como vendedor, quiero crear oportunidades desde leads calificados para gestionar el proceso de venta | P0 | 5 | Backlog |
| US-MGN014-004 | Como vendedor, quiero gestionar pipeline en vista Kanban para visualizar el estado de mis oportunidades | P0 | 5 | Backlog |
| US-MGN014-005 | Como vendedor, quiero registrar actividades de seguimiento para no perder contacto con prospectos | P0 | 3 | Backlog |
| US-MGN014-006 | Como vendedor, quiero convertir lead a cliente/partner para iniciar operaciones comerciales | P0 | 3 | Backlog |
| US-MGN014-007 | Como gerente, quiero ver reporte de funnel para analizar conversion por etapa | P1 | 5 | Backlog |
| US-MGN014-008 | Como gerente, quiero ver forecast de ventas para planificar recursos | P1 | 5 | Backlog |
**Total Story Points:** 34 SP
---
## Criterios de Aceptacion de la Epica
**Funcionales:**
- [ ] Captura de leads desde formularios web y API
- [ ] Scoring de leads configurable (criterios personalizables)
- [ ] Pipeline visual (Kanban) con drag & drop
- [ ] Etapas configurables por tenant
- [ ] Actividades con tipos (llamada, email, reunion) y recordatorios
- [ ] Conversion lead -> partner (cliente/proveedor)
- [ ] Conversion oportunidad ganada -> cotizacion
- [ ] Reportes de funnel y forecast
**No Funcionales:**
- [ ] Performance: Kanban carga en < 1s con 500+ oportunidades
- [ ] UX: Drag & drop fluido sin lag
- [ ] Responsive: Funcional en tablets
**Tecnicos:**
- [ ] Cobertura de tests > 80%
- [ ] API documentada para integraciones
- [ ] Webhooks para eventos (lead creado, oportunidad ganada)
---
## Dependencias
**Esta epica depende de:**
| Epica/Modulo | Estado | Bloqueante |
|--------------|--------|------------|
| EPIC-MGN-005 Catalogs (Partners) | Backlog | Si |
| EPIC-MGN-001 Auth | Ready | Si |
| EPIC-MGN-004 Tenants | Ready | Si |
**Esta epica bloquea:**
| Epica/Modulo | Razon |
|--------------|-------|
| Integracion con EPIC-MGN-013 Sales | Conversion oportunidad a cotizacion |
| Integracion con EPIC-MGN-018 WhatsApp | Canal de comunicacion con leads |
---
## Desglose Tecnico
**Database:**
- [ ] Schema: `core_crm`
- [ ] Tablas: 8 (leads, opportunities, stages, activities, activity_types, tags, sources, scoring_rules)
- [ ] Funciones: calcular_score, obtener_forecast
- [ ] RLS Policies: Si (por tenant y por vendedor asignado)
**Backend:**
- [ ] Modulo: `crm`
- [ ] Entities: 8 (Lead, Opportunity, Stage, Activity, ActivityType, Tag, Source, ScoringRule)
- [ ] Endpoints: 20+
- [ ] Services: LeadService, OpportunityService, ActivityService, PipelineService
- [ ] Tests: 30+
**Frontend:**
- [ ] Paginas: 6 (Leads, LeadDetail, Opportunities, Pipeline, Activities, Reports)
- [ ] Componentes: KanbanBoard, LeadCard, OpportunityCard, ActivityTimeline, FunnelChart, ForecastChart
- [ ] Stores: 1 (crmStore con slices: leads, opportunities, activities)
---
## Riesgos
| Riesgo | Probabilidad | Impacto | Mitigacion |
|--------|--------------|---------|------------|
| Performance Kanban con muchos datos | Media | Alto | Virtualizacion, paginacion server-side |
| Adopcion por usuarios | Media | Medio | UX intuitivo, capacitacion |
| Integracion con ventas compleja | Baja | Alto | API clara, documentacion |
---
## Definition of Ready (DoR)
- [x] Historias de usuario definidas
- [x] Criterios de aceptacion claros
- [x] Dependencias identificadas
- [x] Estimacion completada
- [ ] Etapas default del pipeline definidas
- [ ] Criterios de scoring default definidos
- [x] Sin bloqueadores activos
## Definition of Done (DoD)
- [ ] Codigo implementado y revisado
- [ ] Tests pasando (unit, integration, e2e)
- [ ] Kanban funcional con drag & drop
- [ ] Reportes generandose correctamente
- [ ] Documentacion actualizada
- [ ] Inventarios actualizados
- [ ] Trazas registradas
- [ ] Demo realizada
- [ ] Product Owner aprobo
---
## Documentacion Relacionada
- Requerimientos: `docs/03-requerimientos/RF-crm/`
- User Stories: `docs/05-user-stories/mgn-014/`
- DDL Spec: `docs/04-modelado/database-design/DDL-SPEC-core_crm.md`
- Especificaciones: `docs/04-modelado/especificaciones-tecnicas/backend/mgn-014/`
---
## Historial
| Fecha | Cambio | Autor |
|-------|--------|-------|
| 2025-12-05 | Creacion de epica | Requirements-Analyst |
| 2025-12-05 | Completado con Stakeholders, Riesgos, DoR/DoD | Requirements-Analyst |
---
**Creada por:** Requirements-Analyst
**Fecha:** 2025-12-05
**Ultima actualizacion:** 2025-12-05