Skip to content

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ísticaBeneficio
Auto-alojadoControl total de datos
Código abiertoInspecciona y modifica el código
Sin límites de ejecuciónFlujos de trabajo ilimitados
Nodos personalizadosCrea integraciones
Licencia fair-codeGratis para la mayoría de usos

Pasos de Configuración

1. Crear Nodo de Webhook

  1. Abre el editor de flujos de n8n
  2. Añade nodo Webhook
  3. Establece método: POST
  4. Copia la URL del webhook (Producción o Test)

2. Configurar en Visiono

  1. Ve a Configuración del Espacio de TrabajoWebhooks
  2. Haz clic en Añadir Webhook
  3. Pega la URL del webhook de n8n
  4. Selecciona eventos a disparar
  5. Guarda la configuración

3. Probar la Conexión

  1. En n8n, haz clic en Listen for Test Event
  2. Envía una foto de prueba en Visiono
  3. n8n muestra los datos recibidos
  4. 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:

  1. Webhook - Recibir evento de Visiono
  2. Set - Formatear datos del mensaje
  3. Slack - Enviar al canal
  4. Email - Enviar resumen

Registro en Base de Datos

Registra envíos en PostgreSQL:

Nodos:

  1. Webhook - Recibir evento
  2. Postgres - Insertar registro
  3. IF - Verificar conteo de fotos
  4. HTTP Request - Llamar API externa

Configuración de Nodos

Nodo Webhook

yaml
HTTP Method: POST
Path: visiono-webhook
Response Mode: On Received
Response Data: Success

Nodo HTTP Request

Para descargar fotos:

yaml
Method: GET
URL: ={{ $json.data.photos[0].url }}
Response Format: File

Nodo IF

Enrutamiento condicional:

yaml
Condition: Number
Value 1: ={{ $json.data.photos.length }}
Operation: Larger
Value 2: 5

Referencia de Datos

Accede a datos del webhook en expresiones:

ExpresiónDatos
{{ $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:

  1. Añade después del Webhook
  2. Establece items: {{ $json.data.photos }}
  3. Tamaño de lote: 1
  4. Conecta nodos de procesamiento
  5. Añade Merge al final

Agregar Resultados

Recopila datos procesados:

  1. Nodo Code para agregación
  2. Almacena en datos estáticos del flujo
  3. 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:

  1. Añade nodo Error Trigger
  2. Conecta a nodo de notificación
  3. 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/.n8n

URL 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:

  1. Ve a Credentials
  2. Añade nueva credencial
  3. Referencia en nodos

Sub-Flujos de Trabajo

Modulariza flujos de trabajo:

  1. Crea flujo de trabajo reutilizable
  2. Llama vía nodo Execute Workflow
  3. Pasa datos entre flujos

Solución de Problemas

Webhook No Recibe

  1. Verifica que n8n esté ejecutándose
  2. Comprueba que la URL incluya el puerto si es necesario
  3. Verifica que el firewall permita el tráfico
  4. Prueba con curl

Errores de Expresión

  1. Verifica estructura de datos
  2. Comprueba rutas de propiedades
  3. Usa encadenamiento opcional: $json.data?.photos

Problemas de Ejecución

  1. Revisa log de ejecución
  2. Revisa salidas de nodos
  3. Prueba nodos individuales
  4. 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

Plataforma Profesional de Documentación Fotográfica