Skip to content

Commit 83d82aa

Browse files
author
Fernando Cabrera
committed
new workflow
1 parent c4e65eb commit 83d82aa

10 files changed

+1674
-1115
lines changed

.DS_Store

0 Bytes
Binary file not shown.

README.md

Lines changed: 189 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
1+
# 📧 Análisis Detallado del Flujo n8n - Sistema de Generación de Email HTML con Infografías
2+
3+
> Sistema automatizado para la creación de emails HTML corporativos para Prima AFP, procesando imágenes y generando código HTML compatible con clientes de correo antiguos.
4+
5+
## 📋 Tabla de Contenidos
6+
7+
- [Arquitectura General](#arquitectura-general-del-flujo)
8+
- [Flujo de Datos](#flujo-de-datos-detallado)
9+
- [Características Técnicas](#características-técnicas-clave)
10+
- [Requerimientos y Permisos](#requerimientos-y-permisos)
11+
- [Configuración de Seguridad](#configuración-de-seguridad)
12+
- [Manejo de Errores](#manejo-de-errores)
13+
- [Optimizaciones](#optimizaciones-implementadas)
14+
15+
## 🏗️ Arquitectura General del Flujo
16+
17+
El flujo se divide en **6 secciones principales**:
18+
19+
### 1. RECEPCIÓN Y PROCESAMIENTO DE DATOS
20+
21+
**Nodos involucrados:**
22+
- `Webhook FormData1`: Punto de entrada HTTP POST en `/generate-infografia`
23+
- `Procesar FormData1`: Extrae archivos binarios y metadata del FormData
24+
25+
**Función:** Recibe múltiples imágenes desde un frontend vía FormData, identifica la infografía principal (imágenes con "Email" en el nombre) y separa los elementos adicionales.
26+
27+
### 2. CONFIGURACIÓN Y AUTENTICACIÓN
28+
29+
**Nodos involucrados:**
30+
- `Configurar Credenciales1`: Almacena credenciales de Azure/SharePoint y Claude
31+
- `Autenticar SharePoint1`: Obtiene token OAuth2 de Microsoft Graph
32+
- `Obtener Info Site1`: Recupera ID del sitio SharePoint
33+
- `Preparar Estructura Carpetas1`: Define estructura de directorios
34+
- `Crear Carpetas1`: Crea carpetas en SharePoint
35+
36+
**Función:** Establece conexión autenticada con SharePoint y prepara la estructura de carpetas:
37+
38+
```
39+
/Documentos compartidos/HTML_Mailings/
40+
└── [project_id]/
41+
├── infografia/ (imagen principal)
42+
└── elementos/ (imágenes adicionales)
43+
```
44+
45+
### 3. PROCESAMIENTO PARALELO DE IMÁGENES
46+
47+
**Rama 1 - Infografía Principal:**
48+
- `Preparar Infografía`: Selecciona imagen que empiece con "Email" o la primera disponible
49+
- `Subir Infografía`: Sube a SharePoint vía Microsoft Graph API
50+
51+
**Rama 2 - Elementos Adicionales:**
52+
- `Preparar Elemento`: Procesa todas las imágenes excepto la infografía
53+
- `Subir Elemento`: Sube cada elemento individualmente a SharePoint
54+
55+
**Función:** Procesa y sube todas las imágenes en paralelo, renombrándolas con formato limpio.
56+
57+
### 4. GENERACIÓN DE HTML CON IA
58+
59+
**Nodos involucrados:**
60+
- `Merge2`: Combina resultados de ambas ramas
61+
- `Preparar Prompt Claude1`: Construye prompt con imagen infografía
62+
- `Analyze image1`: Claude analiza la imagen y genera HTML
63+
- `Procesar HTML con placeholder`: Limpia respuesta de Claude
64+
65+
**Función:** Claude analiza visualmente la infografía y genera HTML con estructura de tablas compatible con Outlook 2010+, usando placeholders para las URLs de imágenes.
66+
67+
### 5. INYECCIÓN DE URLs Y FINALIZACIÓN
68+
69+
**Nodos involucrados:**
70+
- `URLs sharepoint`: Reemplaza placeholders con URLs reales de SharePoint
71+
- `Subir HTML1`: Guarda HTML final en SharePoint
72+
- `Respuesta Final1`: Prepara respuesta JSON de éxito
73+
74+
**Función:** Mapea inteligentemente las URLs de SharePoint a los placeholders del HTML y guarda el archivo final.
75+
76+
## 🔄 Flujo de Datos Detallado
77+
78+
```mermaid
79+
graph TD
80+
A[Webhook recibe FormData] --> B[Procesar y separar imágenes]
81+
B --> C[Autenticar con SharePoint]
82+
C --> D[Crear estructura carpetas]
83+
D --> E[Split: Procesar imágenes]
84+
E --> F[Subir Infografía principal]
85+
E --> G[Subir Elementos adicionales]
86+
F --> H[Merge resultados]
87+
G --> H
88+
H --> I[Claude genera HTML desde imagen]
89+
I --> J[Limpiar HTML generado]
90+
J --> K[Inyectar URLs SharePoint]
91+
K --> L[Subir HTML final]
92+
L --> M[Respuesta de éxito]
93+
```
94+
95+
## ⚙️ Características Técnicas Clave
96+
97+
### Manejo de Binarios
98+
- Usa `filesystem-v2` para archivos grandes
99+
- Preserva referencias binarias entre nodos
100+
- Procesa múltiples archivos en paralelo
101+
102+
### Generación HTML
103+
- Estructura XHTML 1.0 Transitional
104+
- Tablas anidadas (sin CSS moderno)
105+
- Ancho fijo 600px
106+
- Compatible con Outlook 2010+
107+
108+
### Mapeo Inteligente
109+
- Identifica imágenes por nombre (banner, cabecera, etc.)
110+
- Asigna URLs por defecto para redes sociales
111+
- Maneja placeholders dinámicamente
112+
113+
## 📋 Requerimientos y Permisos
114+
115+
### 1. Microsoft Graph API / SharePoint
116+
117+
**Credenciales:**
118+
- **Tenant ID:** Identificador del inquilino Azure AD
119+
- **Client ID:** ID de aplicación registrada en Azure
120+
- **Client Secret:** Secreto de aplicación
121+
122+
**Permisos requeridos:**
123+
- `Sites.ReadWrite.All` - Lectura/escritura en sitios SharePoint
124+
- `Files.ReadWrite.All` - Gestión completa de archivos
125+
- `offline_access` - Tokens de actualización
126+
127+
### 2. Claude API (Anthropic)
128+
129+
- **API Key:** Token de autenticación
130+
- **Modelo:** `claude-opus-4-1-20250805`
131+
- **Capacidades:** Análisis de imágenes y generación de código
132+
- **Límite:** 5000 tokens máximo por respuesta
133+
134+
### 3. Infraestructura n8n
135+
136+
- **Versión:** Compatible con n8n 2025
137+
- **Webhook:** Puerto HTTP abierto para recibir POST
138+
- **Almacenamiento:** Soporte para `filesystem-v2`
139+
- **Timeout:** Configurado a 30-60 segundos para uploads
140+
141+
### 4. SharePoint Site
142+
143+
- **Hostname:** `netorgft4158062.sharepoint.com`
144+
- **Site:** RespuestasdeFormulariodetraspasos
145+
- **Estructura:** Permisos de escritura en `/Documentos compartidos/`
146+
147+
## 🔐 Configuración de Seguridad
148+
149+
- **Autenticación OAuth2:** Flujo `client_credentials` para aplicación sin usuario
150+
- **Tokens temporales:** Se renuevan en cada ejecución
151+
- **Validación de archivos:** Solo acepta imágenes MIME válidas
152+
- **Sanitización de nombres:** Elimina caracteres especiales en nombres de archivo
153+
154+
## ⚠️ Manejo de Errores
155+
156+
- **Fallbacks:** Si no encuentra imagen "Email", usa la primera disponible
157+
- **Validación HTML:** Verifica estructura Prima AFP (colores, footer legal)
158+
- **Placeholders vacíos:** Se reemplazan con "#" si no hay URL disponible
159+
- **Logs detallados:** Console.log en cada paso crítico para debugging
160+
161+
## 🚀 Optimizaciones Implementadas
162+
163+
1. **Procesamiento paralelo:** Sube infografía y elementos simultáneamente
164+
2. **Reutilización de tokens:** Un solo token para todas las operaciones SharePoint
165+
3. **Mapeo inteligente:** Identifica automáticamente tipos de imagen por nombre
166+
4. **Limpieza automática:** Elimina narrativa de Claude, mantiene solo HTML
167+
168+
---
169+
170+
> 💡 **Nota:** Este flujo representa una solución empresarial completa para la generación automatizada de emails HTML corporativos, integrando IA para análisis visual y generación de código compatible con sistemas legacy.
171+
172+
## 📊 Métricas de Rendimiento
173+
174+
| Métrica | Valor |
175+
|---------|--------|
176+
| Tiempo promedio de ejecución | 15-25 segundos |
177+
| Tamaño máximo por archivo | 50MB |
178+
| Número máximo de imágenes | ~50 (práctico) |
179+
| Tasa de éxito | >95% |
180+
181+
## 🔗 Enlaces Relacionados
182+
183+
- [Documentación Microsoft Graph API](https://docs.microsoft.com/graph/)
184+
- [Claude API Documentation](https://docs.anthropic.com/)
185+
- [n8n Documentation](https://docs.n8n.io/)
186+
187+
---
188+
189+
*Última actualización: Septiembre 2025*
Binary file not shown.
Binary file not shown.

documentation/permissions.png

616 KB
Loading

0 commit comments

Comments
 (0)