platform-marketing-content/docs/03-requerimientos/RF-PMC-005-AUTOMATION.md
rckrdmrd 74b5ed7f38 feat: Complete documentation update and orchestration configuration
- Update vision, architecture and technical documentation
- Update module definitions (PMC-001 to PMC-008)
- Update requirements documentation
- Add CONTEXT-MAP.yml and ENVIRONMENT-INVENTORY.yml
- Add orchestration guidelines and references

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 05:38:31 -06:00

429 lines
8.6 KiB
Markdown

---
id: "RF-PMC-005"
title: "Automation Module"
type: "Requirement"
status: "Done"
priority: "Media"
module: "automation"
project: "platform_marketing_content"
version: "1.0"
rf_count: 10
created_date: "2025-12-08"
updated_date: "2026-01-04"
---
# 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