Skip to content

Integrazione n8n

Automazione workflow self-hosted con controllo completo sui tuoi dati.

Panoramica

n8n è uno strumento di automazione open-source e self-hostabile. Mantieni i dati foto sulla tua infrastruttura automatizzando workflow con 200+ integrazioni.

Prerequisiti

  • Account Visiono con accesso API
  • Istanza n8n (self-hosted o cloud)
  • Chiave API da Visiono

Perché n8n?

FunzionalitàBeneficio
Self-hostedControllo completo dati
Open sourceIspeziona e modifica codice
Nessun limite esecuzioniWorkflow illimitati
Nodi personalizzatiCostruisci integrazioni
Licenza fair-codeGratuito per la maggior parte degli usi

Passaggi di Setup

1. Creare Nodo Webhook

  1. Apri editor workflow n8n
  2. Aggiungi nodo Webhook
  3. Imposta metodo: POST
  4. Copia l'URL webhook (Production o Test)

2. Configurare in Visiono

  1. Vai a Impostazioni WorkspaceWebhook
  2. Clicca Aggiungi Webhook
  3. Incolla URL webhook n8n
  4. Seleziona eventi da attivare
  5. Salva configurazione

3. Testare la Connessione

  1. In n8n, clicca Listen for Test Event
  2. Invia una foto di test in Visiono
  3. n8n visualizza i dati ricevuti
  4. Clicca Stop Listening

4. Costruire il Tuo Workflow

Aggiungi nodi per elaborare i dati:

[Webhook] → [IF] → [HTTP Request] → [Email]
                 ↘ [Slack]

Esempi Workflow

Workflow Backup Foto

Salva foto su storage locale 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"
      }
    }
  ]
}

Workflow Notifica

Avvisa il team sui nuovi invii:

Nodi:

  1. Webhook - Ricevi evento Visiono
  2. Set - Formatta dati messaggio
  3. Slack - Invia a canale
  4. Email - Invia riepilogo

Logging Database

Registra invii su PostgreSQL:

Nodi:

  1. Webhook - Ricevi evento
  2. Postgres - Inserisci record
  3. IF - Controlla conteggio foto
  4. HTTP Request - Chiama API esterna

Configurazione Nodi

Nodo Webhook

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

Nodo HTTP Request

Per scaricare foto:

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

Nodo IF

Routing condizionale:

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

Riferimento Dati

Accedi ai dati webhook nelle espressioni:

EspressioneDati
{{ $json.event }}Tipo evento
{{ $json.data.smart_link.name }}Nome Link Permanente
{{ $json.data.photos[0].url }}URL prima foto
{{ $json.data.photos.length }}Conteggio foto
{{ $json.data.metadata.full_name }}Nome mittente
{{ $json.data.metadata.unique_field }}Identificatore

Loop e Iterazione

Elaborare Tutte le Foto

Usa nodo Split In Batches:

  1. Aggiungi dopo Webhook
  2. Imposta items: {{ $json.data.photos }}
  3. Batch size: 1
  4. Connetti nodi elaborazione
  5. Aggiungi Merge alla fine

Aggregare Risultati

Raccogli dati elaborati:

  1. Nodo Code per aggregazione
  2. Archivia in dati statici workflow
  3. Output risultati combinati

Gestione Errori

Retry su Fallimento

Configura per-nodo:

  • Continue on Fail: Elabora item successivo
  • Retry on Fail: Tenta di nuovo
  • Max Retries: 3

Error Trigger

Cattura e gestisci errori:

  1. Aggiungi nodo Error Trigger
  2. Connetti a nodo notifica
  3. Log o avviso su fallimenti

Suggerimenti Self-Hosting

Deploy 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=secure-password
      - WEBHOOK_URL=https://n8n.tuodominio.com/
    volumes:
      - n8n_data:/home/node/.n8n

URL Webhook

Per webhook di produzione:

  • Usa URL produzione (non test)
  • Configura variabile ambiente WEBHOOK_URL
  • Usa HTTPS con certificato valido

Sicurezza

  • Abilita autenticazione
  • Usa HTTPS
  • Restringi accesso rete
  • Backup regolari

Funzionalità Avanzate

Codice Personalizzato

Usa nodo Code per 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 } }];

Credenziali

Archivia chiavi API in modo sicuro:

  1. Vai a Credentials
  2. Aggiungi nuova credenziale
  3. Riferiscila nei nodi

Sub-Workflow

Modularizza workflow:

  1. Crea workflow riutilizzabile
  2. Chiama via nodo Execute Workflow
  3. Passa dati tra workflow

Risoluzione Problemi

Webhook Non Riceve

  1. Controlla che n8n sia in esecuzione
  2. Verifica che URL includa porta se necessario
  3. Controlla che firewall permetta traffico
  4. Testa con curl

Errori Espressione

  1. Verifica struttura dati
  2. Controlla percorsi proprietà
  3. Usa optional chaining: $json.data?.photos

Problemi Esecuzione

  1. Controlla log esecuzione
  2. Rivedi output nodi
  3. Testa nodi individuali
  4. Verifica credenziali

Ottimizzazione Performance

Elaborazione Batch

  • Raggruppa operazioni simili
  • Usa chiamate API bulk
  • Limita esecuzioni concorrenti

Gestione Risorse

  • Monitora utilizzo memoria
  • Limita esecuzioni workflow
  • Archivia dati vecchi

Risorse Correlate

Piattaforma Professionale per Documentazione Fotografica