# Requerimientos Funcionales - PMC-005 Automation **Módulo:** Automation **Versión:** 1.0.0 **Fecha:** 2025-12-08 --- ## Gestión de Flujos ### RF-PMC-005-001: Listar Flujos de Automatización | Campo | Valor | |-------|-------| | **ID** | RF-PMC-005-001 | | **Nombre** | Listar Flujos de Automatización | | **Prioridad** | P1 | | **Actor** | Creative, Tenant Admin | **Datos de salida:** - Lista de flujos disponibles - Estado (activo/inactivo) - Tipo (trigger_based, scheduled, manual) - Última ejecución - Conteo de ejecuciones **Criterios de aceptación:** - [ ] Flujos de sistema y custom listados - [ ] Filtro por tipo y estado - [ ] Ordenamiento por nombre/última ejecución --- ### RF-PMC-005-002: Ver Detalle de Flujo | Campo | Valor | |-------|-------| | **ID** | RF-PMC-005-002 | | **Nombre** | Ver Detalle de Flujo | | **Prioridad** | P1 | | **Actor** | Creative, Tenant Admin | **Datos de salida:** - Descripción completa - Evento trigger - Configuración - Historial de ejecuciones recientes **Criterios de aceptación:** - [ ] Toda la información visible - [ ] Link a workflow en n8n (admin) --- ### RF-PMC-005-003: Activar Flujo | Campo | Valor | |-------|-------| | **ID** | RF-PMC-005-003 | | **Nombre** | Activar Flujo | | **Prioridad** | P1 | | **Actor** | Tenant Admin | **Descripción:** Habilitar un flujo para que procese eventos. **Criterios de aceptación:** - [ ] is_active cambia a true - [ ] Flujo comienza a procesar eventos - [ ] Registro en audit log --- ### RF-PMC-005-004: Desactivar Flujo | Campo | Valor | |-------|-------| | **ID** | RF-PMC-005-004 | | **Nombre** | Desactivar Flujo | | **Prioridad** | P1 | | **Actor** | Tenant Admin | **Descripción:** Deshabilitar un flujo sin eliminarlo. **Criterios de aceptación:** - [ ] is_active cambia a false - [ ] Eventos son ignorados - [ ] Configuración preservada --- ### RF-PMC-005-005: Configurar Flujo | Campo | Valor | |-------|-------| | **ID** | RF-PMC-005-005 | | **Nombre** | Configurar Flujo | | **Prioridad** | P2 | | **Actor** | Tenant Admin | **Datos de entrada:** - config: object - retry_on_failure: boolean - max_retries: number - timeout_seconds: number - custom_params: object **Criterios de aceptación:** - [ ] Configuración se guarda - [ ] Valores aplicados en ejecuciones - [ ] Validación de rangos --- ### RF-PMC-005-006: Ejecutar Flujo Manualmente | Campo | Valor | |-------|-------| | **ID** | RF-PMC-005-006 | | **Nombre** | Ejecutar Flujo Manualmente | | **Prioridad** | P2 | | **Actor** | Tenant Admin | **Descripción:** Disparar ejecución manual de un flujo con datos de prueba. **Datos de entrada:** - flow_id: UUID - test_data: object (opcional) **Criterios de aceptación:** - [ ] Ejecución inicia inmediatamente - [ ] Datos de prueba inyectados - [ ] Resultado visible al completar --- ## Ejecuciones ### RF-PMC-005-007: Ver Historial de Ejecuciones | Campo | Valor | |-------|-------| | **ID** | RF-PMC-005-007 | | **Nombre** | Ver Historial de Ejecuciones | | **Prioridad** | P2 | | **Actor** | Tenant Admin | **Datos de salida:** - Lista de ejecuciones con: - Timestamp - Status - Duración - Trigger data (resumen) **Criterios de aceptación:** - [ ] Paginación implementada - [ ] Filtro por status y fecha - [ ] Click para ver detalle --- ### RF-PMC-005-008: Ver Detalle de Ejecución | Campo | Valor | |-------|-------| | **ID** | RF-PMC-005-008 | | **Nombre** | Ver Detalle de Ejecución | | **Prioridad** | P2 | | **Actor** | Tenant Admin | **Datos de salida:** - Datos del trigger completos - Output data - Error message (si falló) - Duración - Timestamps **Criterios de aceptación:** - [ ] JSON viewer para datos complejos - [ ] Error stack visible en fallos --- ### RF-PMC-005-009: Cancelar Ejecución en Curso | Campo | Valor | |-------|-------| | **ID** | RF-PMC-005-009 | | **Nombre** | Cancelar Ejecución en Curso | | **Prioridad** | P3 | | **Actor** | Tenant Admin | **Precondiciones:** - Ejecución en status "running" **Criterios de aceptación:** - [ ] Ejecución marcada como "cancelled" - [ ] n8n notificado para cancelar --- ## Webhooks ### RF-PMC-005-010: Crear Endpoint de Webhook | Campo | Valor | |-------|-------| | **ID** | RF-PMC-005-010 | | **Nombre** | Crear Endpoint de Webhook | | **Prioridad** | P2 | | **Actor** | Tenant Admin | **Datos de entrada:** - name: string - target_flow_id: UUID **Datos de salida:** - slug generado - URL completa - secret_key generado **Criterios de aceptación:** - [ ] URL única generada - [ ] Secret para validación - [ ] Endpoint activo inmediatamente --- ### RF-PMC-005-011: Listar Webhooks | Campo | Valor | |-------|-------| | **ID** | RF-PMC-005-011 | | **Nombre** | Listar Webhooks | | **Prioridad** | P2 | | **Actor** | Tenant Admin | **Criterios de aceptación:** - [ ] Lista de endpoints del tenant - [ ] URL copiable - [ ] Estado y última llamada visible --- ### RF-PMC-005-012: Eliminar Webhook | Campo | Valor | |-------|-------| | **ID** | RF-PMC-005-012 | | **Nombre** | Eliminar Webhook | | **Prioridad** | P3 | | **Actor** | Tenant Admin | **Criterios de aceptación:** - [ ] Confirmación requerida - [ ] Endpoint deja de funcionar - [ ] Registro eliminado --- ### RF-PMC-005-013: Regenerar Secret de Webhook | Campo | Valor | |-------|-------| | **ID** | RF-PMC-005-013 | | **Nombre** | Regenerar Secret de Webhook | | **Prioridad** | P3 | | **Actor** | Tenant Admin | **Descripción:** Generar nuevo secret invalidando el anterior. **Criterios de aceptación:** - [ ] Nuevo secret generado - [ ] Anterior invalidado - [ ] Integradores deben actualizar --- ### RF-PMC-005-014: Recibir Webhook Externo | Campo | Valor | |-------|-------| | **ID** | RF-PMC-005-014 | | **Nombre** | Recibir Webhook Externo | | **Prioridad** | P2 | | **Actor** | Sistema Externo | **Flujo:** 1. Sistema externo hace POST a /hooks/{tenant_slug}/{webhook_slug} 2. Sistema valida firma HMAC 3. Sistema busca flujo asociado 4. Sistema crea ejecución 5. Sistema responde 202 Accepted **Criterios de aceptación:** - [ ] Validación HMAC funciona - [ ] Payload parseado correctamente - [ ] Ejecución disparada --- ## Eventos del Sistema ### RF-PMC-005-015: Emitir Eventos Internos | Campo | Valor | |-------|-------| | **ID** | RF-PMC-005-015 | | **Nombre** | Emitir Eventos Internos | | **Prioridad** | P1 | | **Actor** | Sistema | **Descripción:** El sistema debe emitir eventos cuando ocurren acciones relevantes. **Eventos a emitir:** - CRM: client.created, brand.created, product.created - Projects: campaign.created, campaign.status_changed, campaign.approved - Generation: job.completed, job.failed - Assets: asset.approved, all_assets.approved **Criterios de aceptación:** - [ ] Eventos emitidos en cada acción - [ ] Payload incluye datos relevantes - [ ] Flujos suscritos son notificados --- ### RF-PMC-005-016: Suscribir Flujo a Evento | Campo | Valor | |-------|-------| | **ID** | RF-PMC-005-016 | | **Nombre** | Suscribir Flujo a Evento | | **Prioridad** | P1 | | **Actor** | Sistema | **Descripción:** Asociar un flujo con un evento específico. **Criterios de aceptación:** - [ ] Flujo se activa cuando evento ocurre - [ ] Datos del evento pasados al flujo - [ ] Múltiples flujos pueden suscribirse al mismo evento --- ## Notificaciones ### RF-PMC-005-017: Enviar Notificación por Email | Campo | Valor | |-------|-------| | **ID** | RF-PMC-005-017 | | **Nombre** | Enviar Notificación por Email | | **Prioridad** | P1 | | **Actor** | Sistema (vía n8n) | **Descripción:** Enviar emails como parte de flujos automatizados. **Datos de entrada:** - to: string (email) - subject: string - body: string (HTML) - template_id: string (opcional) **Criterios de aceptación:** - [ ] Email enviado vía SMTP/SendGrid - [ ] Templates soportados - [ ] Variables interpoladas --- ### RF-PMC-005-018: Enviar Notificación a Slack | Campo | Valor | |-------|-------| | **ID** | RF-PMC-005-018 | | **Nombre** | Enviar Notificación a Slack | | **Prioridad** | P3 | | **Actor** | Sistema (vía n8n) | **Descripción:** Enviar mensajes a canales de Slack. **Datos de entrada:** - channel: string - message: string - blocks: array (opcional, formato Slack) **Criterios de aceptación:** - [ ] Mensaje enviado al canal - [ ] Formato Slack soportado - [ ] Webhook configurable por tenant --- ## Resumen | Prioridad | Cantidad | |-----------|----------| | P1 | 7 | | P2 | 7 | | P3 | 4 | | **Total** | **18** | --- **Documento generado por:** Requirements-Analyst **Fecha:** 2025-12-08