Integración con n8n
Automatización de flujos de trabajo auto-alojada con control total sobre tus datos.
Descripción General
n8n es una herramienta de automatización de código abierto y auto-alojable. Mantén los datos de fotos en tu infraestructura mientras automatizas flujos de trabajo con más de 200 integraciones.
Prerrequisitos
- Cuenta de Visiono con acceso a API
- Instancia de n8n (auto-alojada o en la nube)
- Clave de API de Visiono
¿Por Qué n8n?
| Característica | Beneficio |
|---|---|
| Auto-alojado | Control total de datos |
| Código abierto | Inspecciona y modifica el código |
| Sin límites de ejecución | Flujos de trabajo ilimitados |
| Nodos personalizados | Crea integraciones |
| Licencia fair-code | Gratis para la mayoría de usos |
Pasos de Configuración
1. Crear Nodo de Webhook
- Abre el editor de flujos de n8n
- Añade nodo Webhook
- Establece método: POST
- Copia la URL del webhook (Producción o Test)
2. Configurar en Visiono
- Ve a Configuración del Espacio de Trabajo → Webhooks
- Haz clic en Añadir Webhook
- Pega la URL del webhook de n8n
- Selecciona eventos a disparar
- Guarda la configuración
3. Probar la Conexión
- En n8n, haz clic en Listen for Test Event
- Envía una foto de prueba en Visiono
- n8n muestra los datos recibidos
- Haz clic en Stop Listening
4. Construir Tu Flujo de Trabajo
Añade nodos para procesar datos:
[Webhook] → [IF] → [HTTP Request] → [Email]
↘ [Slack]Ejemplos de Flujos de Trabajo
Flujo de Respaldo de Fotos
Guarda fotos en almacenamiento local o S3:
json
{
"nodes": [
{
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"parameters": {
"path": "visiono-photos",
"httpMethod": "POST"
}
},
{
"name": "Loop Photos",
"type": "n8n-nodes-base.splitInBatches",
"parameters": {
"batchSize": 1
}
},
{
"name": "Download Photo",
"type": "n8n-nodes-base.httpRequest",
"parameters": {
"url": "={{$json.url}}",
"responseFormat": "file"
}
},
{
"name": "Save to S3",
"type": "n8n-nodes-base.awsS3",
"parameters": {
"operation": "upload",
"bucketName": "visiono-backups",
"fileName": "={{$json.slot_name}}.jpg"
}
}
]
}Flujo de Notificaciones
Alerta al equipo sobre nuevos envíos:
Nodos:
- Webhook - Recibir evento de Visiono
- Set - Formatear datos del mensaje
- Slack - Enviar al canal
- Email - Enviar resumen
Registro en Base de Datos
Registra envíos en PostgreSQL:
Nodos:
- Webhook - Recibir evento
- Postgres - Insertar registro
- IF - Verificar conteo de fotos
- HTTP Request - Llamar API externa
Configuración de Nodos
Nodo Webhook
yaml
HTTP Method: POST
Path: visiono-webhook
Response Mode: On Received
Response Data: SuccessNodo HTTP Request
Para descargar fotos:
yaml
Method: GET
URL: ={{ $json.data.photos[0].url }}
Response Format: FileNodo IF
Enrutamiento condicional:
yaml
Condition: Number
Value 1: ={{ $json.data.photos.length }}
Operation: Larger
Value 2: 5Referencia de Datos
Accede a datos del webhook en expresiones:
| Expresión | Datos |
|---|---|
{{ $json.event }} | Tipo de evento |
{{ $json.data.smart_link.name }} | Nombre de Enlace Permanente |
{{ $json.data.photos[0].url }} | URL de primera foto |
{{ $json.data.photos.length }} | Conteo de fotos |
{{ $json.data.metadata.full_name }} | Nombre del remitente |
{{ $json.data.metadata.unique_field }} | Identificador |
Bucles e Iteración
Procesar Todas las Fotos
Usa nodo Split In Batches:
- Añade después del Webhook
- Establece items:
{{ $json.data.photos }} - Tamaño de lote: 1
- Conecta nodos de procesamiento
- Añade Merge al final
Agregar Resultados
Recopila datos procesados:
- Nodo Code para agregación
- Almacena en datos estáticos del flujo
- Genera resultados combinados
Manejo de Errores
Reintentar en Fallo
Configura por nodo:
- Continue on Fail: Procesar siguiente elemento
- Retry on Fail: Intentar de nuevo
- Max Retries: 3
Disparador de Error
Captura y maneja errores:
- Añade nodo Error Trigger
- Conecta a nodo de notificación
- Registra o alerta en fallos
Consejos de Auto-Alojamiento
Despliegue con Docker
yaml
version: "3"
services:
n8n:
image: n8nio/n8n
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=contraseña-segura
- WEBHOOK_URL=https://n8n.tudominio.com/
volumes:
- n8n_data:/home/node/.n8nURL de Webhook
Para webhooks de producción:
- Usa URL de producción (no de test)
- Configura variable de entorno
WEBHOOK_URL - Usa HTTPS con certificado válido
Seguridad
- Habilita autenticación
- Usa HTTPS
- Restringe acceso de red
- Respaldos regulares
Características Avanzadas
Código Personalizado
Usa nodo Code para JavaScript:
javascript
const photos = items[0].json.data.photos;
const processed = photos.map(photo => ({
url: photo.url,
name: photo.slot_name,
downloaded: new Date().toISOString()
}));
return [{ json: { photos: processed } }];Credenciales
Almacena claves de API de forma segura:
- Ve a Credentials
- Añade nueva credencial
- Referencia en nodos
Sub-Flujos de Trabajo
Modulariza flujos de trabajo:
- Crea flujo de trabajo reutilizable
- Llama vía nodo Execute Workflow
- Pasa datos entre flujos
Solución de Problemas
Webhook No Recibe
- Verifica que n8n esté ejecutándose
- Comprueba que la URL incluya el puerto si es necesario
- Verifica que el firewall permita el tráfico
- Prueba con curl
Errores de Expresión
- Verifica estructura de datos
- Comprueba rutas de propiedades
- Usa encadenamiento opcional:
$json.data?.photos
Problemas de Ejecución
- Revisa log de ejecución
- Revisa salidas de nodos
- Prueba nodos individuales
- Verifica credenciales
Optimización de Rendimiento
Procesamiento por Lotes
- Agrupa operaciones similares
- Usa llamadas API en masa
- Limita ejecuciones concurrentes
Gestión de Recursos
- Monitorea uso de memoria
- Limita ejecuciones de flujos
- Archiva datos antiguos
Recursos Relacionados
- Webhooks - Configuración de eventos
- Referencia de API - Acceso directo a API
- Integración con Zapier - Alternativa en la nube
- Integración con Make - Constructor visual
