platform-marketing-content/docs/03-requerimientos/RF-PMC-002-CRM.md

588 lines
13 KiB
Markdown

# Requerimientos Funcionales - PMC-002 CRM
**Módulo:** CRM
**Versión:** 1.0.0
**Fecha:** 2025-12-08
---
## Gestión de Clientes
### RF-PMC-002-001: Crear Cliente
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-001 |
| **Nombre** | Crear Cliente |
| **Prioridad** | P1 |
| **Actor** | Creative, Analyst, Tenant Admin |
**Descripción:**
El sistema debe permitir registrar un nuevo cliente de la agencia.
**Datos de entrada:**
- name: string (requerido)
- legal_name: string (opcional)
- tax_id: string (opcional)
- industry: string (opcional)
- size: enum (opcional)
- website: string (opcional)
- notes: text (opcional)
**Criterios de aceptación:**
- [ ] Cliente se crea con status "prospect"
- [ ] tenant_id se asigna automáticamente
- [ ] Validación de datos funciona
---
### RF-PMC-002-002: Editar Cliente
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-002 |
| **Nombre** | Editar Cliente |
| **Prioridad** | P1 |
| **Actor** | Creative, Analyst, Tenant Admin |
**Descripción:**
El sistema debe permitir modificar datos de un cliente existente.
**Criterios de aceptación:**
- [ ] Todos los campos editables se actualizan
- [ ] Cambio de status registra historial
- [ ] Audit log registra modificaciones
---
### RF-PMC-002-003: Listar Clientes
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-003 |
| **Nombre** | Listar Clientes |
| **Prioridad** | P1 |
| **Actor** | Todos los roles |
**Descripción:**
El sistema debe mostrar lista de clientes con filtros y paginación.
**Filtros disponibles:**
- status: prospect, active, inactive, churned
- industry: string
- size: enum
- search: nombre o legal_name
**Criterios de aceptación:**
- [ ] Paginación funciona correctamente
- [ ] Filtros se combinan con AND
- [ ] Ordenamiento por nombre/fecha
---
### RF-PMC-002-004: Ver Ficha de Cliente
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-004 |
| **Nombre** | Ver Ficha de Cliente |
| **Prioridad** | P1 |
| **Actor** | Todos los roles |
**Descripción:**
El sistema debe mostrar vista detallada del cliente con información relacionada.
**Datos mostrados:**
- Información básica
- Contactos asociados
- Marcas del cliente
- Proyectos activos
- Oportunidades abiertas
- Historial de actividad
**Criterios de aceptación:**
- [ ] Tabs organizan información
- [ ] Datos relacionados cargan correctamente
- [ ] Acciones rápidas disponibles
---
### RF-PMC-002-005: Eliminar Cliente
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-005 |
| **Nombre** | Eliminar Cliente |
| **Prioridad** | P3 |
| **Actor** | Tenant Admin |
**Descripción:**
El sistema debe permitir eliminar un cliente (soft delete).
**Validaciones:**
- No tiene proyectos activos
- Confirmación requerida
**Criterios de aceptación:**
- [ ] Soft delete funciona
- [ ] Validaciones impiden eliminación si hay dependencias activas
---
## Gestión de Contactos
### RF-PMC-002-006: Crear Contacto
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-006 |
| **Nombre** | Crear Contacto |
| **Prioridad** | P1 |
| **Actor** | Creative, Analyst, Tenant Admin |
**Datos de entrada:**
- client_id: UUID (requerido)
- first_name: string (requerido)
- last_name: string (requerido)
- email: string (requerido)
- phone: string (opcional)
- position: string (opcional)
- is_primary: boolean (default false)
**Criterios de aceptación:**
- [ ] Contacto se asocia al cliente
- [ ] Email validado (formato)
- [ ] Solo un contacto primario por cliente
---
### RF-PMC-002-007: Editar Contacto
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-007 |
| **Nombre** | Editar Contacto |
| **Prioridad** | P2 |
| **Actor** | Creative, Analyst, Tenant Admin |
**Criterios de aceptación:**
- [ ] Campos se actualizan correctamente
- [ ] Cambio de is_primary actualiza otros contactos
---
### RF-PMC-002-008: Listar Contactos
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-008 |
| **Nombre** | Listar Contactos |
| **Prioridad** | P2 |
| **Actor** | Todos los roles |
**Descripción:**
Listar contactos del tenant o de un cliente específico.
**Criterios de aceptación:**
- [ ] Filtro por cliente funciona
- [ ] Búsqueda por nombre/email
- [ ] Paginación implementada
---
### RF-PMC-002-009: Marcar Contacto Primario
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-009 |
| **Nombre** | Marcar Contacto Primario |
| **Prioridad** | P2 |
| **Actor** | Creative, Analyst, Tenant Admin |
**Descripción:**
Designar un contacto como principal del cliente.
**Criterios de aceptación:**
- [ ] Solo un contacto primario por cliente
- [ ] Al marcar uno, otros se desmarcan automáticamente
---
## Gestión de Marcas
### RF-PMC-002-010: Crear Marca
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-010 |
| **Nombre** | Crear Marca |
| **Prioridad** | P1 |
| **Actor** | Creative, Tenant Admin |
**Datos de entrada:**
- client_id: UUID (requerido)
- name: string (requerido)
- description: text (opcional)
- identity: object (opcional)
- logo_url
- primary_color
- secondary_colors
- typography
- tone_of_voice
- keywords
- forbidden_words
- visual_style
**Criterios de aceptación:**
- [ ] Marca se asocia al cliente
- [ ] Identity se almacena como JSONB
- [ ] Logo se puede subir o referenciar URL
---
### RF-PMC-002-011: Editar Marca
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-011 |
| **Nombre** | Editar Marca |
| **Prioridad** | P1 |
| **Actor** | Creative, Tenant Admin |
**Criterios de aceptación:**
- [ ] Todos los campos de identity editables
- [ ] Preview de colores en tiempo real
- [ ] Cambios se propagan a nuevas generaciones
---
### RF-PMC-002-012: Definir Identidad Visual
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-012 |
| **Nombre** | Definir Identidad Visual |
| **Prioridad** | P1 |
| **Actor** | Creative, Tenant Admin |
**Descripción:**
Configurar todos los elementos de identidad visual de la marca.
**Campos de identidad:**
- Logo (principal y variaciones)
- Paleta de colores
- Tipografías
- Tono de voz
- Keywords positivas
- Palabras prohibidas
- Estilo visual preferido
**Criterios de aceptación:**
- [ ] Formulario estructurado para cada sección
- [ ] Upload de logos funciona
- [ ] Preview visual de paleta de colores
---
### RF-PMC-002-013: Asociar LoRA a Marca
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-013 |
| **Nombre** | Asociar LoRA a Marca |
| **Prioridad** | P1 |
| **Actor** | Creative, Tenant Admin |
**Descripción:**
Vincular modelos LoRA entrenados con una marca.
**Flujo:**
1. Usuario accede a configuración de marca
2. Selecciona "Modelos IA"
3. Elige LoRA(s) del catálogo del tenant
4. Sistema vincula LoRA con marca
5. LoRA se usa automáticamente en generaciones de la marca
**Criterios de aceptación:**
- [ ] Múltiples LoRAs pueden asociarse
- [ ] LoRA se aplica por defecto en generación
- [ ] Desasociación funciona
---
### RF-PMC-002-014: Listar Marcas
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-014 |
| **Nombre** | Listar Marcas |
| **Prioridad** | P1 |
| **Actor** | Todos los roles |
**Criterios de aceptación:**
- [ ] Filtro por cliente funciona
- [ ] Preview de logo/colores en lista
- [ ] Búsqueda por nombre
---
## Gestión de Productos
### RF-PMC-002-015: Crear Producto
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-015 |
| **Nombre** | Crear Producto |
| **Prioridad** | P1 |
| **Actor** | Creative, Analyst |
**Datos de entrada:**
- brand_id: UUID (requerido)
- name: string (requerido)
- sku: string (opcional)
- description: text (opcional)
- category: string (opcional)
- attributes: object (precio, features, etc.)
- reference_images: array[file] (opcional)
**Criterios de aceptación:**
- [ ] Producto se asocia a marca
- [ ] Imágenes de referencia se almacenan
- [ ] Status inicial "active"
---
### RF-PMC-002-016: Editar Producto
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-016 |
| **Nombre** | Editar Producto |
| **Prioridad** | P2 |
| **Actor** | Creative, Analyst |
**Criterios de aceptación:**
- [ ] Campos se actualizan correctamente
- [ ] Imágenes de referencia pueden agregarse/quitarse
---
### RF-PMC-002-017: Subir Imágenes de Referencia
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-017 |
| **Nombre** | Subir Imágenes de Referencia |
| **Prioridad** | P1 |
| **Actor** | Creative, Analyst |
**Descripción:**
Agregar fotos reales del producto para usar como referencia en generación.
**Criterios de aceptación:**
- [ ] Upload múltiple funciona
- [ ] Formatos: JPG, PNG, WebP
- [ ] Tamaño máximo: 10MB por imagen
- [ ] Thumbnails generados automáticamente
---
### RF-PMC-002-018: Trigger Generación desde Producto
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-018 |
| **Nombre** | Trigger Generación desde Producto |
| **Prioridad** | P1 |
| **Actor** | Creative |
**Descripción:**
Iniciar generación de contenido directamente desde la ficha de producto.
**Flujo:**
1. Usuario ve ficha de producto
2. Selecciona "Generar contenido"
3. Elige workflow template
4. Configura opciones (cantidad, estilo)
5. Sistema crea job de generación
6. Sistema redirige a monitor o muestra progreso
**Criterios de aceptación:**
- [ ] Datos del producto se cargan al job
- [ ] Identidad de marca se incluye
- [ ] LoRAs se aplican automáticamente
---
### RF-PMC-002-019: Listar Productos
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-019 |
| **Nombre** | Listar Productos |
| **Prioridad** | P1 |
| **Actor** | Todos los roles |
**Criterios de aceptación:**
- [ ] Filtro por marca funciona
- [ ] Vista de catálogo con imágenes
- [ ] Búsqueda por nombre/SKU
---
## Gestión de Oportunidades
### RF-PMC-002-020: Crear Oportunidad
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-020 |
| **Nombre** | Crear Oportunidad |
| **Prioridad** | P2 |
| **Actor** | Analyst, Tenant Admin |
**Datos de entrada:**
- client_id: UUID (requerido)
- name: string (requerido)
- description: text (opcional)
- value: decimal (opcional)
- currency: string (default: USD)
- expected_close_date: date (opcional)
**Criterios de aceptación:**
- [ ] Stage inicial "lead"
- [ ] Probability calculada por stage
---
### RF-PMC-002-021: Mover Oportunidad en Pipeline
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-021 |
| **Nombre** | Mover Oportunidad en Pipeline |
| **Prioridad** | P2 |
| **Actor** | Analyst, Tenant Admin |
**Descripción:**
Cambiar stage de una oportunidad mediante drag & drop o acción directa.
**Stages:**
- lead → qualified → proposal → negotiation → won/lost
**Criterios de aceptación:**
- [ ] Drag & drop en vista Kanban
- [ ] Probability se actualiza automáticamente
- [ ] Registro de historial de cambios
---
### RF-PMC-002-022: Cerrar Oportunidad como Ganada
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-022 |
| **Nombre** | Cerrar Oportunidad como Ganada |
| **Prioridad** | P2 |
| **Actor** | Analyst, Tenant Admin |
**Flujo:**
1. Usuario mueve a stage "won"
2. Sistema solicita valor final confirmado
3. Sistema marca como ganada
4. Sistema ofrece crear proyecto
**Criterios de aceptación:**
- [ ] actual_close_date se registra
- [ ] Opción de crear proyecto disponible
---
### RF-PMC-002-023: Cerrar Oportunidad como Perdida
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-023 |
| **Nombre** | Cerrar Oportunidad como Perdida |
| **Prioridad** | P2 |
| **Actor** | Analyst, Tenant Admin |
**Flujo:**
1. Usuario mueve a stage "lost"
2. Sistema solicita motivo de pérdida
3. Sistema registra lost_reason
4. Sistema marca como perdida
**Criterios de aceptación:**
- [ ] lost_reason es requerido
- [ ] Oportunidad no editable después de cerrar
---
### RF-PMC-002-024: Convertir Oportunidad en Proyecto
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-024 |
| **Nombre** | Convertir Oportunidad en Proyecto |
| **Prioridad** | P2 |
| **Actor** | Analyst, Tenant Admin |
**Descripción:**
Crear proyecto automáticamente desde oportunidad ganada.
**Flujo:**
1. Usuario selecciona "Convertir a proyecto"
2. Sistema muestra formulario pre-llenado
3. Usuario confirma/modifica datos
4. Sistema crea proyecto vinculado al cliente
5. Sistema vincula oportunidad con proyecto
**Criterios de aceptación:**
- [ ] Datos del cliente se heredan
- [ ] Descripción de oportunidad se copia a proyecto
- [ ] Relación bidireccional establecida
---
### RF-PMC-002-025: Vista Kanban de Oportunidades
| Campo | Valor |
|-------|-------|
| **ID** | RF-PMC-002-025 |
| **Nombre** | Vista Kanban de Oportunidades |
| **Prioridad** | P2 |
| **Actor** | Analyst, Tenant Admin |
**Descripción:**
Mostrar pipeline de oportunidades en formato Kanban.
**Características:**
- Columnas por stage
- Cards con info resumida
- Drag & drop entre columnas
- Filtros por cliente, fecha, valor
- Totales por columna
**Criterios de aceptación:**
- [ ] Drag & drop funciona
- [ ] Totales se calculan correctamente
- [ ] Filtros se aplican en tiempo real
---
## Resumen
| Prioridad | Cantidad |
|-----------|----------|
| P1 | 14 |
| P2 | 10 |
| P3 | 1 |
| **Total** | **25** |
---
**Documento generado por:** Requirements-Analyst
**Fecha:** 2025-12-08