Vai al contenuto principale
Intermedio Automazione

Corso Automazioni con N8N e AI

Impara a creare workflow automatizzati con N8N e AI. Dall'installazione ai workflow avanzati con OpenAI e Claude integrati.

8 Moduli
Lezioni
7 ore
Durata
Intermedio
Livello

Cosa Imparerai

Installare e configurare N8N
Creare workflow automatizzati complessi
Integrare API di OpenAI e Claude
Automatizzare email, documenti e social media
Monitorare e ottimizzare le automazioni

Per Chi è Questo Corso

  • Imprenditori e freelance tech-savvy
  • Sviluppatori e tecnici
  • Team che vogliono automatizzare processi

Programma del Corso

Introduzione

Ogni azienda, indipendentemente dalla dimensione, accumula nel tempo decine di micro-processi ripetitivi: email da smistare e classificare, dati da copiare tra applicazioni, report da compilare a cadenza settimanale, notifiche da inviare quando si verifica un evento, documenti da generare partendo da template, file da archiviare nelle cartelle corrette. Presi singolarmente, ciascuno di questi compiti richiede pochi minuti. Sommati su base mensile, rappresentano centinaia di ore di lavoro manuale a basso valore aggiunto, ore che un professionista o un team potrebbe dedicare a strategia, creatività e relazioni con i clienti.

N8N (pronunciato "nodemation") e una piattaforma di automazione open source che permette di collegare applicazioni, servizi e API attraverso workflow visivi. A differenza di alternative proprietarie come Zapier o Make, N8N puo essere installato sui propri server, offre il pieno controllo sui dati, non impone limiti artificiali sul numero di esecuzioni e consente di estendere le funzionalita con codice personalizzato quando i nodi standard non bastano. Quando si aggiunge l'intelligenza artificiale a questa infrastruttura di automazione, le possibilita si espandono radicalmente: non si automatizzano piu solo operazioni meccaniche (sposta questo dato da A a B) ma operazioni intelligenti (leggi questa email, comprendi il contenuto, classifica la richiesta in base a criteri semantici, genera una risposta appropriata nella lingua del mittente e inviala al canale corretto).

Questo corso e progettato per chi ha una mentalita tecnica ma non e necessariamente uno sviluppatore professionista. Costruiremo workflow reali passo dopo passo, partendo dall'installazione di N8N fino a sistemi complessi che integrano OpenAI e Claude per processare documenti, gestire email in modo intelligente, automatizzare la produzione di contenuti per i social media e monitorare tutto con sistemi di error handling professionali. Ogni modulo include configurazioni dettagliate con i JSON esatti da inserire nei nodi, prompt completi da copiare e incollare, e istruzioni passo-passo per replicare ogni workflow nel proprio ambiente.

Al termine del corso avrai costruito almeno sei workflow funzionanti e avrai le competenze per progettarne di nuovi in autonomia.


Modulo 1: Introduzione a N8N e al Mondo dell'Automazione

Lezione 1.1: Cos'e N8N e perche sta cambiando il panorama dell'automazione

N8N nasce nel 2019 come progetto open source del developer Jan Oberhauser, con un'idea precisa: l'automazione dei workflow non dovrebbe richiedere abbonamenti costosi con limiti artificiali e non dovrebbe significare affidare i propri dati aziendali a piattaforme terze senza alcun controllo. Oggi N8N conta oltre 400 integrazioni native (chiamate "nodi"), una community globale di oltre 40.000 sviluppatori attivi, un marketplace di template condivisi dalla comunita e un modello di business che combina la versione self-hosted completamente gratuita con un'offerta cloud a pagamento per chi preferisce non gestire l'infrastruttura.

Il paradigma visivo di N8N e la sua caratteristica distintiva. Invece di scrivere codice per collegare servizi, si costruiscono workflow trascinando nodi su una canvas e collegandoli con connessioni visive. Ogni nodo rappresenta un'operazione: leggere un'email, chiamare un'API, applicare una condizione logica, inviare un messaggio Slack. I dati fluiscono da un nodo all'altro come oggetti JSON, visibili e ispezionabili in ogni passaggio. Questo rende il debugging intuitivo: si puo letteralmente vedere dove i dati si trasformano e dove qualcosa va storto.

Ma N8N non sacrifica la potenza per la semplicita. Per gli utenti avanzati, offre un nodo "Code" che permette di eseguire JavaScript o Python arbitrario, un nodo "HTTP Request" per chiamare qualsiasi API REST, e la possibilita di creare nodi custom per integrazioni non disponibili nel catalogo standard. Questa combinazione di accessibilita visiva e potenza tecnica e cio che rende N8N unico nel mercato.

Lezione 1.2: N8N vs Zapier vs Make — confronto dettagliato con prezzi

Per scegliere la piattaforma giusta serve un confronto onesto. Ecco le differenze principali tra le tre piattaforme di automazione piu diffuse nel 2026.

Pricing a confronto:

| Caratteristica | N8N Cloud | N8N Self-Hosted | Zapier | Make | |---|---|---|---|---| | Piano gratuito | No | Si (illimitato) | 100 task/mese | 1.000 ops/mese | | Piano base | 24 EUR/mese | 0 EUR (server ~5-10 EUR/mese) | 29,99 USD/mese (750 task) | 10,59 EUR/mese (10.000 ops) | | Piano professionale | 60 EUR/mese | 0 EUR (server ~10-20 EUR/mese) | 73,50 USD/mese (2.000 task) | 18,82 EUR/mese (10.000 ops) | | Piano team/business | 100 EUR/mese | 0 EUR (server ~20-50 EUR/mese) | 103,50 USD/mese (5.000 task) | 34,12 EUR/mese (10.000 ops) | | Esecuzioni incluse | Illimitate (fino a 2.500 nel base) | Illimitate | Limitate al piano | Limitate al piano | | Self-hosting | No | Si | No | No | | Nodi/integrazioni | 400+ | 400+ | 7.000+ | 1.800+ | | Codice custom | Si (JS/Python) | Si (JS/Python) | Limitato | Si (JS) | | AI nativi | Si (OpenAI, Anthropic) | Si (OpenAI, Anthropic) | Si (AI by Zapier) | Si (OpenAI) |

Quando scegliere cosa:

Zapier e la scelta giusta se hai bisogno di integrazioni con software di nicchia (ha il catalogo piu ampio con oltre 7.000 app), se i tuoi workflow sono semplici (trigger-azione lineare) e se non hai competenze tecniche per il self-hosting. Il costo per esecuzione e il piu alto, ma la semplicita d'uso e imbattibile.

Make (ex Integromat) e ideale per workflow di media complessita con un buon rapporto qualita-prezzo. L'interfaccia visiva e eccellente per workflow con branching e loop, e il pricing basato su operazioni lo rende economico per workflow con molti passaggi ma poche esecuzioni.

N8N e la scelta per chi vuole il massimo controllo, ha workflow complessi che richiedono logica custom, vuole integrare pesantemente l'AI nei processi, e preferisce non avere limiti sulle esecuzioni. Il self-hosting elimina qualsiasi vincolo di pricing legato al volume, rendendo N8N l'opzione piu economica per volumi alti.

Lezione 1.3: Perche l'open source conta davvero

La natura open source di N8N non e solo una questione ideologica. Ha implicazioni pratiche concrete per chi lo usa in contesti aziendali.

La prima e la proprieta dei dati. In un workflow di automazione passano spesso dati sensibili: email dei clienti, documenti riservati, credenziali API, informazioni finanziarie. Con N8N self-hosted, questi dati non lasciano mai il tuo server. Non c'e una terza parte che li processa, li conserva o potrebbe (teoricamente) accedervi. Per aziende soggette a normative stringenti come il GDPR, questa e una differenza sostanziale.

La seconda e la continuita del servizio. Se Zapier decidesse di triplicare i prezzi domani, saresti costretto a pagare o a migrare (un processo doloroso). Se N8N Cloud aumentasse i prezzi, potresti semplicemente spostare i tuoi workflow sulla versione self-hosted senza perdere nulla. Il codice e tuo, i workflow sono esportabili in JSON, non c'e vendor lock-in.

La terza e l'estensibilita. Se hai bisogno di un'integrazione che non esiste, puoi crearla. La community ha sviluppato centinaia di nodi custom disponibili su npm, e creare un nodo personalizzato richiede conoscenze base di TypeScript. Con piattaforme proprietarie, sei limitato a cio che il vendor decide di offrire.

Lezione 1.4: Casi d'uso reali e potenziale di automazione

Caso Studio: Agenzia di Comunicazione MilanoDigital

MilanoDigital e un'agenzia con 12 dipendenti che gestiva manualmente la maggior parte dei processi operativi. Il team spendeva collettivamente circa 120 ore settimanali in attivita ripetitive: smistamento email dei clienti, creazione di report social media, generazione di brief creativi, invio di fatture, aggiornamento del CRM.

Dopo aver implementato N8N con 14 workflow automatizzati in tre mesi, il risultato e stato una riduzione dell'80% delle attivita manuali ripetitive: da 120 ore settimanali a 24. I workflow principali includono: classificazione automatica delle email in arrivo con instradamento al reparto corretto (risparmio: 15 ore/settimana), generazione automatica di report social media settimanali partendo dai dati delle API di Meta e Google (risparmio: 20 ore/settimana), creazione di bozze di brief creativi basati sulle richieste dei clienti analizzate dall'AI (risparmio: 10 ore/settimana), fatturazione automatica a fine mese basata sulle ore registrate nel project management tool (risparmio: 8 ore/settimana).

Costo dell'implementazione: un VPS da 15 EUR/mese per N8N + circa 40 EUR/mese di API OpenAI. ROI: le 96 ore settimanali risparmiate equivalgono a circa 3 dipendenti full-time, un risparmio di oltre 10.000 EUR/mese in costo del lavoro riallocato ad attivita a maggior valore.

Le categorie di automazione piu comuni sono: gestione email e comunicazioni (classificazione, risposta automatica, instradamento), processamento documenti (estrazione dati, generazione, archiviazione), sincronizzazione dati tra sistemi (CRM, gestionale, fatturazione), marketing e social media (pubblicazione, reporting, lead nurturing), notifiche e monitoraggio (alert su eventi critici, report periodici).

Esercizio Pratico

Fai un inventario dei processi ripetitivi nella tua attivita. Per una settimana, ogni volta che esegui un'attivita che segue sempre la stessa logica, annotala in una tabella con queste colonne:

Template per l'inventario dei processi:

| Attivita | Frequenza (volte/settimana) | Tempo medio (minuti) | Ore/mese totali | Strumenti coinvolti | Automatizzabile? | |---|---|---|---|---|---| | Smistare email clienti | 25 | 5 | 8,3 | Gmail, CRM | Si | | Generare report vendite | 1 | 60 | 4 | Excel, CRM | Si | | Postare sui social | 5 | 30 | 10 | Canva, LinkedIn | Parzialmente | | ... | ... | ... | ... | ... | ... |

Alla fine della settimana, ordina la tabella per "Ore/mese totali" in ordine decrescente. Le prime tre voci sono i candidati ideali per i tuoi primi workflow N8N.

Per ciascun candidato, rispondi a queste domande:

Prompt di valutazione per ChatGPT:

Ho identificato questo processo come candidato per l'automazione:
[descrivi il processo passo-passo]

Valuta su una scala 1-10:
- Ripetitivita: quanto e standardizzato il processo?
- Volume: quante volte viene eseguito al mese?
- Complessita tecnica dell'automazione: quanto e difficile automatizzarlo?
- Impatto: quanto tempo/valore si risparmia?

Suggerisci: quali nodi N8N servirebbero? Stima il tempo
per costruire il workflow. Identifica i rischi.

Modulo 2: Installazione e Configurazione di N8N

Lezione 2.1: Le tre opzioni di deployment a confronto

N8N offre tre modalita di installazione, ciascuna adatta a un profilo diverso.

Opzione 1: N8N Cloud (la via rapida)

Il servizio gestito ufficiale e la scelta per chi vuole iniziare in cinque minuti senza toccare server. Si visita n8n.cloud, si crea un account, si sceglie il piano (a partire da 24 EUR/mese per il piano Starter) e si ha un'istanza N8N completamente funzionante con URL dedicato, SSL automatico, backup gestiti e aggiornamenti automatici. Il piano Starter include 2.500 esecuzioni al mese, 5 workflow attivi e 3 credenziali. Il piano Pro a 60 EUR/mese offre esecuzioni illimitate, workflow illimitati e supporto prioritario.

Il vantaggio e la semplicita assoluta. Lo svantaggio e che i dati dei workflow passano attraverso i server di N8N (con data center in EU per conformita GDPR) e i costi sono superiori al self-hosting per volumi alti.

Opzione 2: Docker Self-Hosted (la scelta consigliata)

Per chi vuole il pieno controllo, l'installazione su un proprio VPS con Docker e la via maestra. Un server con 2 GB di RAM e 2 vCPU e sufficiente per gestire decine di workflow simultanei. I costi tipici del server sono:

  • Hetzner Cloud CX22: 4,35 EUR/mese (2 vCPU, 4 GB RAM)
  • Contabo Cloud VPS S: 5,99 EUR/mese (4 vCPU, 8 GB RAM)
  • DigitalOcean Basic: 6 USD/mese (1 vCPU, 2 GB RAM)

Il risultato: un'istanza N8N con esecuzioni illimitate, workflow illimitati, pieno controllo sui dati, per meno di 10 EUR/mese.

Opzione 3: N8N Desktop (per test e sviluppo)

N8N Desktop e un'applicazione Electron disponibile per Windows, Mac e Linux. Si scarica dal sito ufficiale e si installa come qualsiasi applicazione. E perfetta per sviluppare e testare workflow in locale prima di deployarli sul server di produzione. Non e adatta per workflow in produzione perche richiede che il computer sia acceso e non offre accesso webhook dall'esterno.

Lezione 2.2: Installazione con Docker passo-passo

Partiamo dal presupposto di avere un VPS fresco con Ubuntu 22.04 o 24.04. Ecco la procedura completa.

Passo 1: Installare Docker e Docker Compose

# Aggiornare il sistema
sudo apt update && sudo apt upgrade -y

# Installare Docker
curl -fsSL https://get.docker.com | sh

# Aggiungere il proprio utente al gruppo docker
sudo usermod -aG docker $USER

# Verificare l'installazione
docker --version
docker compose version

Passo 2: Creare la directory del progetto

mkdir -p /opt/n8n
cd /opt/n8n

Passo 3: Creare il file docker-compose.yml

# /opt/n8n/docker-compose.yml
version: '3.8'

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n:latest
    container_name: n8n
    restart: always
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=n8n.tuodominio.com
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://n8n.tuodominio.com/
      - N8N_ENCRYPTION_KEY=una-chiave-segreta-lunga-almeno-32-caratteri
      - GENERIC_TIMEZONE=Europe/Rome
      - TZ=Europe/Rome
      - N8N_DEFAULT_LOCALE=it
      - N8N_METRICS=true
      - N8N_DIAGNOSTICS_ENABLED=false
      - EXECUTIONS_DATA_PRUNE=true
      - EXECUTIONS_DATA_MAX_AGE=168
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  n8n_data:
    driver: local

Passo 4: Avviare N8N

cd /opt/n8n
docker compose up -d

# Verificare che il container sia in esecuzione
docker compose logs -f n8n

Dopo qualche secondo, N8N sara accessibile all'indirizzo http://IP-DEL-SERVER:5678. Al primo accesso, verra chiesto di creare un account amministratore.

Lezione 2.3: Configurare SSL con Nginx e Let's Encrypt

Per l'accesso sicuro via HTTPS (necessario per i webhook e per la sicurezza in generale), configuriamo un reverse proxy con Nginx.

# Installare Nginx e Certbot
sudo apt install nginx certbot python3-certbot-nginx -y
# /etc/nginx/sites-available/n8n
server {
    listen 80;
    server_name n8n.tuodominio.com;

    location / {
        proxy_pass http://127.0.0.1:5678;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_buffering off;
        proxy_cache off;
        chunked_transfer_encoding off;
    }
}
# Abilitare il sito e ottenere il certificato SSL
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
sudo certbot --nginx -d n8n.tuodominio.com

Certbot configurera automaticamente HTTPS e il rinnovo automatico del certificato.

Lezione 2.4: Variabili d'ambiente e sicurezza avanzata

Le variabili d'ambiente critiche da conoscere:

| Variabile | Descrizione | Valore consigliato | |---|---|---| | N8N_ENCRYPTION_KEY | Chiave per cifrare le credenziali salvate | Stringa random di 32+ caratteri | | WEBHOOK_URL | URL pubblico per i webhook | https://n8n.tuodominio.com/ | | N8N_METRICS | Abilita metriche Prometheus | true | | EXECUTIONS_DATA_PRUNE | Cancella esecuzioni vecchie | true | | EXECUTIONS_DATA_MAX_AGE | Ore di retention delle esecuzioni | 168 (7 giorni) | | N8N_DIAGNOSTICS_ENABLED | Telemetria anonima | false | | N8N_TEMPLATES_ENABLED | Accesso ai template della community | true |

Misure di sicurezza essenziali:

  • Non esporre mai la porta 5678 direttamente su internet: usa sempre il reverse proxy Nginx
  • Configura un firewall (ufw) per consentire solo le porte 80, 443 e SSH
  • Imposta una password robusta per l'account N8N (almeno 16 caratteri con numeri e simboli)
  • Abilita l'autenticazione a due fattori se disponibile nel tuo piano
  • Esegui backup regolari del volume Docker
# Configurare il firewall
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

# Backup del volume N8N
docker compose stop n8n
docker run --rm -v n8n_n8n_data:/data -v /opt/n8n/backups:/backup alpine \
  tar czf /backup/n8n-backup-$(date +%Y%m%d).tar.gz /data
docker compose start n8n

Lezione 2.5: Configurare le prime credenziali

Dopo l'installazione, il primo passo operativo e configurare le credenziali per i servizi che userai nei workflow. In N8N, le credenziali vengono salvate in modo sicuro e cifrato con la N8N_ENCRYPTION_KEY.

Configurare Gmail/Google:

Per usare i nodi Google (Gmail, Sheets, Drive, Calendar) serve un account di servizio OAuth2:

  1. Vai su console.cloud.google.com
  2. Crea un nuovo progetto (es. "N8N Automazioni")
  3. Abilita le API necessarie: Gmail API, Google Sheets API, Google Drive API
  4. In "Credenziali", crea un "ID client OAuth 2.0" di tipo "Applicazione web"
  5. Aggiungi come URI di reindirizzamento autorizzato: https://n8n.tuodominio.com/rest/oauth2-credential/callback
  6. Copia Client ID e Client Secret
  7. In N8N: Settings > Credentials > New > Google OAuth2 API
  8. Inserisci Client ID e Client Secret, clicca "Connect" e autorizza

Configurare Slack:

  1. Vai su api.slack.com/apps e crea una nuova app
  2. In "OAuth & Permissions", aggiungi gli scope: chat:write, channels:read, files:write
  3. Installa l'app nel tuo workspace
  4. Copia il Bot User OAuth Token (inizia con xoxb-)
  5. In N8N: Settings > Credentials > New > Slack API > inserisci il token

Configurare OpenAI:

  1. Vai su platform.openai.com > API Keys > Create new secret key
  2. Copia la chiave (inizia con sk-)
  3. In N8N: Settings > Credentials > New > OpenAI API > inserisci la chiave
  4. Importante: ricarica credito nella sezione Billing (minimo 5 USD)

Esercizio Pratico

Installa N8N seguendo una delle tre opzioni. Se scegli Docker, replica esattamente il docker-compose.yml fornito (sostituendo il dominio con il tuo) e completa la configurazione SSL. Se preferisci iniziare rapidamente, attiva un account N8N Cloud con il trial gratuito di 14 giorni.

Checklist di verifica:

  1. N8N e accessibile via browser all'URL configurato
  2. Hai creato un account amministratore con password robusta
  3. L'interfaccia mostra la canvas vuota per creare workflow
  4. Nella sezione Settings > Community Nodes, verifica che il marketplace sia raggiungibile
  5. Configura almeno 3 credenziali: Google OAuth2, Slack e OpenAI
  6. Crea un workflow di test con un nodo "Manual Trigger" e un nodo "Set" che imposta un campo "messaggio" con valore "Installazione completata". Eseguilo e verifica che l'output sia corretto.
  7. Aggiungi un nodo Slack al workflow di test e invia il messaggio "N8N installato e funzionante" al tuo canale di test. Questo verifica sia l'installazione che le credenziali.

Modulo 3: Il Primo Workflow — Trigger, Azioni e Flusso di Dati

Lezione 3.1: I tipi di trigger disponibili in N8N

Ogni workflow inizia con un trigger, il nodo che determina quando e perche il workflow si attiva. N8N offre diverse categorie di trigger.

Trigger basati sul tempo (Schedule Trigger): il workflow si attiva a intervalli regolari. Si puo configurare con precisione da "ogni minuto" a "ogni mese", con supporto per espressioni cron per scheduling complesso. Esempio: "Ogni lunedi alle 9:00" si configura con la cron expression 0 9 * * 1.

Trigger webhook: il workflow si attiva quando un URL specifico viene chiamato da un sistema esterno. Quando crei un nodo Webhook, N8N genera un URL unico (es. https://n8n.tuodominio.com/webhook/abc123) che qualsiasi servizio puo chiamare via HTTP POST o GET. Ideale per integrazioni con form sul sito, pagamenti, notifiche da servizi esterni.

Trigger per servizio specifico: N8N offre trigger dedicati per centinaia di servizi. Il nodo "Email Trigger (IMAP)" monitora una casella email, il nodo "Google Sheets Trigger" si attiva quando una riga viene aggiunta o modificata, il nodo "Telegram Trigger" riceve messaggi da un bot Telegram, e cosi via.

Trigger manuale: il workflow si attiva solo quando lo esegui manualmente dall'interfaccia. Utile per workflow on-demand come la generazione di report o l'elaborazione batch di dati.

Lezione 3.2: I nodi azione fondamentali

Dopo il trigger, i nodi azione eseguono le operazioni concrete. I piu importanti da conoscere sono:

HTTP Request: il nodo piu versatile. Permette di chiamare qualsiasi API REST configurando metodo (GET, POST, PUT, DELETE), URL, header, query parameters e body. E il nodo che userai per integrare servizi che non hanno un nodo dedicato in N8N.

Set: crea o modifica i dati che fluiscono nel workflow. Essenziale per trasformare l'output di un nodo nel formato richiesto dal nodo successivo.

IF / Switch: nodi di logica condizionale. IF ha due uscite (true/false), Switch puo avere uscite multiple basate su condizioni diverse. Permettono di creare workflow che si comportano diversamente in base ai dati.

Code: esegue codice JavaScript o Python. Per quando le espressioni inline non bastano e serve logica complessa.

Merge: combina dati da due rami paralleli del workflow. Supporta diverse modalita: append (unisci tutto), merge by position, merge by key.

Lezione 3.3: Il concetto di flusso dati — come i JSON viaggiano tra i nodi

In N8N, i dati fluiscono come array di oggetti JSON. Ogni nodo riceve un array di "items" in input e produce un array di items in output. Ogni item e un oggetto JSON con campi arbitrari.

Esempio concreto: un nodo HTTP Request che chiama un'API meteo potrebbe produrre questo output:

[
  {
    "json": {
      "city": "Milano",
      "temperature": 22,
      "condition": "soleggiato",
      "humidity": 45
    }
  }
]

Il nodo successivo puo accedere a questi dati usando le espressioni N8N:

{{ $json.city }}           -> "Milano"
{{ $json.temperature }}    -> 22
{{ $json.condition }}      -> "soleggiato"

Per accedere ai dati di un nodo specifico (non il precedente immediato):

{{ $node["Nome Nodo"].json.city }}

Per manipolare i dati con JavaScript inline:

{{ $json.temperature > 30 ? "caldo" : "mite" }}
{{ $json.city.toUpperCase() }}
{{ DateTime.now().toFormat('dd/MM/yyyy') }}

Lezione 3.4: Costruire il workflow passo-passo — News AI su Slack

Costruiamo il primo workflow completo: ogni lunedi alle 9:00, il workflow recupera le ultime notizie sull'intelligenza artificiale, le riassume con ChatGPT e invia il riassunto su un canale Slack.

Nodo 1: Schedule Trigger

Configurazione:

  • Trigger Times: Weekly
  • Day of Week: Monday
  • Hour: 9
  • Minute: 0
  • Timezone: Europe/Rome

Nodo 2: HTTP Request (recupera notizie)

Configurazione:

  • Method: GET
  • URL: https://newsapi.org/v2/everything
  • Query Parameters:
    • q: artificial intelligence
    • language: it
    • sortBy: publishedAt
    • pageSize: 5
    • apiKey: LA_TUA_API_KEY_NEWSAPI
  • Authentication: None (la key e nel query parameter)

Nota: NewsAPI offre un piano gratuito con 100 richieste al giorno su newsapi.org.

Nodo 3: Code (formatta le notizie)

// Estrae titoli e descrizioni dalle notizie
const articles = $input.first().json.articles;
const newsList = articles.map((a, i) =>
  `${i + 1}. ${a.title}\n   ${a.description || 'Nessuna descrizione'}\n   Fonte: ${a.source.name}`
).join('\n\n');

return [{
  json: {
    newsText: newsList,
    articleCount: articles.length,
    fetchDate: new Date().toISOString()
  }
}];

Nodo 4: OpenAI (riassumi con ChatGPT)

Configurazione:

  • Resource: Message
  • Operation: Send
  • Model: gpt-4o-mini
  • System Message:
    Sei un analista di tecnologia italiano. Ricevi una lista di notizie
    sull'intelligenza artificiale e produci un briefing mattutino conciso
    e informativo. Per ogni notizia: un titolo breve, un riassunto di
    2 righe e il potenziale impatto per le aziende italiane.
    Concludi con una sezione "Da tenere d'occhio" con un trend emergente.
    Formatta con emoji per facilitare la lettura su Slack.
    
  • User Message: {{ $json.newsText }}
  • Temperature: 0.7
  • Max Tokens: 1500

Nodo 5: Slack (invia il briefing)

Configurazione:

  • Resource: Message
  • Operation: Send
  • Channel: #ai-news (oppure l'ID del canale)
  • Text: {{ $json.message.content }}

Caso Studio: Studio Legale AssociatoLex

Lo studio legale AssociatoLex (18 avvocati) ha implementato un workflow simile per monitorare le novita normative rilevanti per i propri clienti. Ogni mattina, il workflow raccoglie notizie da tre fonti (Gazzetta Ufficiale via RSS, Il Sole 24 Ore, sito dell'AGCM), le filtra per pertinenza usando GPT-4o-mini, e genera un briefing personalizzato per ciascun dipartimento dello studio (societario, tributario, lavoro).

Risultato: il tempo dedicato al monitoraggio normativo e passato da 5 ore/settimana per partner a zero, con una copertura delle fonti aumentata del 300%. Il costo e di circa 8 EUR/mese di API OpenAI.

Lezione 3.5: Debugging del primo workflow — cosa puo andare storto

Quando esegui il workflow per la prima volta, e probabile che qualcosa non funzioni. Ecco i problemi piu comuni e come risolverli.

Errore: "401 Unauthorized" sul nodo HTTP Request

La API key non e valida o non e stata inserita correttamente. Verifica che la chiave non contenga spazi extra all'inizio o alla fine. Per NewsAPI, verifica che il piano gratuito sia ancora attivo.

Errore: "No items" dopo il nodo Code

L'API ha restituito risultati ma il formato e diverso da quello atteso. Clicca sul nodo HTTP Request e ispeziona l'output nella tab "Output". Verifica che il campo "articles" esista e contenga dati. Se la struttura e diversa, adatta il codice JavaScript.

Errore: "429 Too Many Requests" su OpenAI

Hai superato il rate limit. Soluzione: aggiungi un nodo "Wait" di 2 secondi prima del nodo OpenAI, oppure verifica che il tuo account OpenAI abbia credito sufficiente.

Errore: "channel_not_found" su Slack

Il canale specificato non esiste o il bot non ha accesso. Verifica che il nome del canale sia corretto (senza il #) e che il bot sia stato invitato nel canale con /invite @nomebot.

Tecnica di debugging fondamentale: in N8N, puoi eseguire i nodi uno alla volta cliccando sul singolo nodo e premendo "Execute Node". Questo permette di isolare esattamente quale nodo fallisce e con quali dati.

Esercizio Pratico

Replica il workflow "News AI su Slack" nel tuo ambiente N8N. Se non hai Slack, sostituisci il nodo finale con un nodo "Email Send" per ricevere il briefing via email, oppure con un nodo "Telegram" per riceverlo sul telefono.

Variazione consigliata da provare:

Modifica il workflow per monitorare notizie specifiche del tuo settore. Sostituisci la query "artificial intelligence" con i termini rilevanti per il tuo business. Aggiungi un nodo IF che controlla se il numero di notizie e superiore a zero prima di chiamare OpenAI, per evitare costi API in giorni senza notizie pertinenti.

Sfida avanzata: aggiungi un secondo nodo OpenAI che, dopo il riassunto, genera 3 domande provocatorie basate sulle notizie, del tipo "Cosa significherebbe per la tua azienda se...". Invia queste domande in un messaggio Slack separato nel canale #brainstorming per stimolare la discussione nel team.


Modulo 4: Integrare le API di OpenAI e Claude

Lezione 4.1: Configurare le credenziali AI in N8N

Per integrare i modelli AI nei workflow, servono le chiavi API dei rispettivi servizi.

OpenAI:

  1. Vai su platform.openai.com e crea un account
  2. In API Keys, genera una nuova chiave
  3. Ricarica il credito prepagato (minimo 5 USD)
  4. In N8N: Settings > Credentials > New Credential > OpenAI API
  5. Inserisci la API Key

Anthropic (Claude):

  1. Vai su console.anthropic.com
  2. Crea un account e genera una API key
  3. Ricarica il credito (minimo 5 USD)
  4. In N8N: Settings > Credentials > New Credential > Anthropic (o HTTP Header Auth per il nodo HTTP Request)

Costi indicativi delle API (prezzi 2026):

| Modello | Input (per 1M token) | Output (per 1M token) | Uso tipico | |---|---|---|---| | GPT-4o-mini | 0,15 USD | 0,60 USD | Task semplici, classificazione | | GPT-4o | 2,50 USD | 10,00 USD | Task complessi, ragionamento | | Claude 3.5 Haiku | 0,25 USD | 1,25 USD | Task semplici, veloce | | Claude 3.5 Sonnet | 3,00 USD | 15,00 USD | Task complessi, scrittura | | Claude Opus 4 | 15,00 USD | 75,00 USD | Task di massima complessita |

Regola pratica per il controllo dei costi: usa GPT-4o-mini o Claude 3.5 Haiku per tutto cio che non richiede ragionamento complesso (classificazione, estrazione dati, riassunti brevi). Riserva GPT-4o, Claude Sonnet o Opus per task che richiedono qualita di scrittura elevata, ragionamento multi-step o analisi di documenti complessi.

Imposta un budget mensile nelle dashboard di OpenAI e Anthropic:
- OpenAI: Settings > Billing > Usage Limits > Set monthly budget
- Anthropic: Settings > Spend Limits > Set monthly limit
Suggerimento: inizia con 20 EUR/mese e aumenta quando hai chiaro il consumo.

Lezione 4.2: Il nodo OpenAI — configurazione dettagliata

Il nodo OpenAI in N8N espone diversi parametri. Vediamo una configurazione completa per un task di classificazione.

Esempio: classificare i feedback dei clienti

Configurazione del nodo OpenAI:

  • Resource: Message
  • Operation: Send
  • Model: gpt-4o-mini
  • System Message:
    Sei un analista di customer experience. Classifichi i feedback dei
    clienti in categorie predefinite. Rispondi SEMPRE e SOLO con un
    oggetto JSON valido, senza testo prima o dopo. Lo schema e:
    {
      "categoria": "prodotto|servizio|spedizione|pagamento|altro",
      "sentiment": "positivo|neutro|negativo",
      "urgenza": "alta|media|bassa",
      "riassunto": "max 20 parole",
      "azione_suggerita": "max 30 parole"
    }
    
  • User Message: Feedback del cliente: {{ $json.feedback_text }}
  • Temperature: 0 (per output deterministico)
  • Max Tokens: 300

Il parametro temperatura spiegato:

  • 0: output deterministico, identico a ogni esecuzione. Ideale per classificazione e estrazione dati
  • 0.3-0.5: leggera variazione, buon compromesso per la maggior parte dei task
  • 0.7-1.0: output creativo e vario, ideale per generazione di contenuti
  • 1.0-2.0: output molto creativo, rischio di incoerenza

Lezione 4.3: Il nodo AI Agent — agenti autonomi in N8N

N8N include un sistema di AI Agent che va oltre la semplice chiamata API. Un AI Agent puo decidere autonomamente quali "tool" usare per completare un compito, simulando un ragionamento multi-step.

Configurazione base di un AI Agent:

  • Nodo: AI Agent
  • Chat Model: OpenAI GPT-4o (o Anthropic Claude Sonnet)
  • System Message:
    Sei un assistente aziendale. Hai accesso ai seguenti strumenti:
    - Cerca nel CRM (per trovare informazioni sui clienti)
    - Invia email (per comunicare con i clienti)
    - Crea task (per aggiungere attivita al project management)
    Analizza la richiesta dell'utente e usa gli strumenti appropriati
    per completare il compito. Se hai bisogno di piu informazioni,
    chiedi prima di procedere.
    
  • Tools collegati: nodi N8N che l'agente puo invocare

Gli AI Agent sono potenti ma vanno usati con cautela nei workflow automatici: il loro comportamento e meno prevedibile di un workflow deterministico. Sono ideali per interfacce conversazionali (chatbot) dove un umano supervisiona il risultato.

Lezione 4.4: Usare Claude via HTTP Request per massima flessibilita

Se preferisci Claude o hai bisogno di funzionalita non esposte dal nodo nativo, puoi usare il nodo HTTP Request per chiamare direttamente l'API di Anthropic.

Configurazione del nodo HTTP Request per Claude:

  • Method: POST
  • URL: https://api.anthropic.com/v1/messages
  • Headers:
    x-api-key: LA_TUA_CHIAVE_ANTHROPIC
    anthropic-version: 2023-06-01
    content-type: application/json
    
  • Body (JSON):
    {
      "model": "claude-sonnet-4-20250514",
      "max_tokens": 1024,
      "system": "Sei un assistente che analizza email aziendali. Rispondi sempre in JSON.",
      "messages": [
        {
          "role": "user",
          "content": "Classifica questa email per urgenza e categoria:\n\nOggetto: {{ $json.subject }}\nCorpo: {{ $json.body }}"
        }
      ]
    }
    

Questo approccio offre accesso completo a tutti i parametri dell'API, inclusi quelli non esposti dal nodo nativo.

Lezione 4.5: Gestire le risposte AI — parsing e structured output

Le risposte dei modelli AI sono testo libero. Per usarle in un workflow automatizzato, servono dati strutturati. Ecco tre approcci in ordine di affidabilita.

Approccio 1: JSON nel prompt (base)

Chiedi al modello di rispondere in JSON nel system message. Poi usa un nodo Code per il parsing:

// Nodo Code dopo il nodo AI
const aiResponse = $input.first().json.message.content;
const parsed = JSON.parse(aiResponse);
return [{ json: parsed }];

Approccio 2: Structured Output di OpenAI (raccomandato)

OpenAI supporta il parametro response_format che forza l'output in JSON schema-compliant:

{
  "model": "gpt-4o-mini",
  "response_format": {
    "type": "json_schema",
    "json_schema": {
      "name": "email_classification",
      "schema": {
        "type": "object",
        "properties": {
          "categoria": { "type": "string", "enum": ["prodotto", "servizio", "spedizione"] },
          "sentiment": { "type": "string", "enum": ["positivo", "neutro", "negativo"] },
          "urgenza": { "type": "string", "enum": ["alta", "media", "bassa"] }
        },
        "required": ["categoria", "sentiment", "urgenza"]
      }
    }
  },
  "messages": [...]
}

Approccio 3: Retry con validazione (robusto)

Per workflow critici, aggiungi un nodo Code che valida il JSON e, se non e valido, ritenta la chiamata AI:

const response = $input.first().json.message.content;
try {
  const parsed = JSON.parse(response);
  if (!parsed.categoria || !parsed.sentiment) {
    throw new Error('Campi mancanti');
  }
  return [{ json: { ...parsed, valid: true } }];
} catch (e) {
  return [{ json: { valid: false, raw: response, error: e.message } }];
}

Collegando l'uscita "valid: false" a un secondo tentativo con il nodo AI, si crea un sistema auto-correttivo.

Lezione 4.6: Pattern avanzati — catene di prompt e multi-step reasoning

Per task complessi, un singolo prompt spesso non basta. La tecnica delle catene di prompt usa piu nodi AI in sequenza, ciascuno specializzato in un sotto-compito.

Esempio: analisi completa di un lead commerciale

Primo nodo AI (Ricerca): "Basandoti sul nome dell'azienda {{ $json.company }}, descrivi in 100 parole: settore, dimensione stimata, prodotti/servizi principali."

Secondo nodo AI (Analisi): "Dato il profilo dell'azienda [output nodo 1] e la loro richiesta [dati originali], classifica: probabilita di conversione (alta/media/bassa), valore stimato del deal, servizi piu adatti dalla nostra offerta."

Terzo nodo AI (Azione): "Genera un'email di primo contatto personalizzata per {{ $json.contact_name }} di {{ $json.company }} basata sull'analisi [output nodo 2]. Menziona specificamente come i nostri servizi risolvono i loro probabili problemi."

Questo approccio multi-step produce risultati significativamente migliori rispetto a un unico prompt che cerca di fare tutto.

Implementazione in N8N:

Nodo 1: OpenAI (ricerca) - output: $json.company_profile
    |
Nodo 2: OpenAI (analisi) - input: $node["Nodo 1"].json + dati originali
    |                        output: $json.lead_analysis
Nodo 3: OpenAI (email) - input: $node["Nodo 1"].json + $node["Nodo 2"].json
                         output: $json.personalized_email

Il costo totale di tre chiamate GPT-4o-mini per un singolo lead e circa 0,001-0,002 USD. Per 100 lead al mese, il costo e inferiore a 0,20 USD, ma la qualita della personalizzazione e incomparabilmente superiore a un singolo prompt generico.

Esercizio Pratico

Costruisci un workflow che classifica i feedback dei clienti. Crea un foglio Google Sheets con una colonna "Feedback" contenente almeno 10 feedback di esempio (inventa feedback realistici positivi, negativi e neutri). Configura un workflow che legge ogni riga, la classifica con GPT-4o-mini e scrive i risultati nelle colonne adiacenti (Categoria, Sentiment, Urgenza, Riassunto).

Prompt esatto da usare nel nodo OpenAI:

System Message:

Sei un analista di customer experience per un'azienda italiana.
Classifichi i feedback dei clienti. Rispondi SOLO con JSON valido.
Schema: {"categoria":"prodotto|servizio|assistenza|spedizione|prezzo|altro",
"sentiment":"positivo|neutro|negativo","urgenza":"alta|media|bassa",
"riassunto":"max 15 parole","azione":"max 20 parole"}

User Message:

Classifica questo feedback: {{ $json.Feedback }}

Temperature: 0 Model: gpt-4o-mini

Verifica: dopo l'esecuzione, controlla il Google Sheet. Ogni riga dovrebbe avere le colonne Categoria, Sentiment, Urgenza, Riassunto e Azione compilate correttamente. Se qualche riga ha errori di parsing JSON, aggiungi il nodo di validazione con retry descritto nella Lezione 4.5.


Modulo 5: Workflow Completo — Automazione Email Intelligente

Lezione 5.1: Architettura del workflow di email management

In questo modulo costruiamo un sistema completo di gestione email automatizzata. Il workflow riceve le email in arrivo, le classifica con AI, genera bozze di risposta, instrada al team corretto e registra tutto in un log. Ecco l'architettura completa:

Email IMAP Trigger
    |
    v
OpenAI: Classificazione
    |
    v
Switch (per categoria)
    |--- Richiesta preventivo --> Genera risposta AI --> Slack #vendite --> Log
    |--- Supporto tecnico --> Genera risposta AI --> Slack #supporto --> Log
    |--- Collaborazione --> Genera risposta AI --> Slack #marketing --> Log
    |--- Spam --> Archivia --> Log
    |--- Altro --> Slack #generale --> Log

Lezione 5.2: Configurare il trigger IMAP

Il nodo Email Trigger (IMAP) monitora una casella email e si attiva quando arriva un nuovo messaggio.

Configurazione del nodo Email Trigger (IMAP):

  • Mailbox: INBOX
  • Host: imap.gmail.com (per Gmail) o il tuo server IMAP
  • Port: 993
  • SSL/TLS: true
  • Credentials: configura in Settings > Credentials > IMAP con:
    • User: la tua email
    • Password: per Gmail, usa una "App Password" (non la password dell'account)
    • Host: imap.gmail.com
    • Port: 993
  • Options:
    • Force reconnect after (minutes): 5
    • Mark as read: true

L'output del nodo contiene: from (mittente), to (destinatario), subject (oggetto), text (corpo in testo), html (corpo HTML), date (data), attachments (allegati).

Lezione 5.3: La classificazione AI dettagliata

Il nodo OpenAI analizza ogni email e produce una classificazione strutturata.

Configurazione del nodo OpenAI per la classificazione:

  • Model: gpt-4o-mini
  • Temperature: 0
  • System Message:
    Sei il sistema di classificazione email di un'azienda di consulenza
    tecnologica italiana. Per ogni email ricevuta, produci un JSON con:
    
    {
      "categoria": una tra ["richiesta_preventivo", "supporto_tecnico",
        "collaborazione", "fatturazione", "spam", "newsletter", "altro"],
      "priorita": una tra ["critica", "alta", "media", "bassa"],
      "lingua": codice ISO (es. "it", "en", "de"),
      "sentiment": una tra ["positivo", "neutro", "negativo", "arrabbiato"],
      "riassunto": "riassunto in massimo 25 parole",
      "entita_menzionate": ["lista di nomi di persone, aziende o prodotti"],
      "richiede_risposta": true/false,
      "risposta_suggerita_tipo": una tra ["conferma_ricezione",
        "richiesta_info", "proposta_incontro", "risoluzione_problema",
        "nessuna"],
      "urgenza_motivazione": "perche hai assegnato questa priorita, max 15 parole"
    }
    
    Rispondi SOLO con il JSON, senza testo aggiuntivo.
    
  • User Message:
    Da: {{ $json.from }}
    Oggetto: {{ $json.subject }}
    Data: {{ $json.date }}
    Corpo: {{ $json.text.substring(0, 3000) }}
    
  • Max Tokens: 500

Il substring(0, 3000) limita il corpo dell'email per evitare di superare i limiti di token e tenere i costi sotto controllo.

Lezione 5.4: Instradamento condizionale con Switch

Dopo la classificazione, il nodo Switch instrada l'email al flusso corretto.

Configurazione del nodo Switch:

  • Mode: Rules
  • Data Type: String
  • Value: {{ $json.message.content }} (parsato come JSON, campo "categoria")
  • Rules:
    • Output 0: "richiesta_preventivo" -> porta al ramo vendite
    • Output 1: "supporto_tecnico" -> porta al ramo supporto
    • Output 2: "collaborazione" -> porta al ramo marketing
    • Output 3: "spam" o "newsletter" -> porta al ramo archiviazione
    • Fallback: tutto il resto -> porta al ramo generico

Per far funzionare lo Switch con il JSON della classificazione, inserisci un nodo Code tra OpenAI e Switch che parsa il JSON:

const classification = JSON.parse($input.first().json.message.content);
const emailData = $('Email Trigger (IMAP)').first().json;
return [{
  json: {
    ...classification,
    original_from: emailData.from,
    original_subject: emailData.subject,
    original_text: emailData.text,
    original_date: emailData.date
  }
}];

Lezione 5.5: Generazione automatica delle risposte

Per ogni categoria che richiede risposta, un nodo OpenAI genera una bozza.

Configurazione per le risposte alle richieste di preventivo:

  • Model: gpt-4o
  • Temperature: 0.4
  • System Message:
    Sei l'assistente commerciale di [Nome Azienda], azienda di consulenza
    tecnologica specializzata in AI e automazione.
    
    Genera una risposta email professionale in {{ $json.lingua }}.
    Tono: professionale ma caloroso, mai burocratico.
    Lunghezza: 100-200 parole massimo.
    
    La risposta deve:
    1. Ringraziare per l'interesse
    2. Confermare la ricezione della richiesta
    3. Menzionare brevemente che il team commerciale rispondera
       entro 24 ore con una proposta personalizzata
    4. Se l'email e vaga, chiedere cortesemente dettagli specifici
       (budget indicativo, tempistiche, obiettivi)
    5. Chiudere con un invito a fissare una call conoscitiva
    
    Firma: [Nome], Team Commerciale - [Nome Azienda]
    
  • User Message:
    Email ricevuta:
    Da: {{ $json.original_from }}
    Oggetto: {{ $json.original_subject }}
    Contenuto: {{ $json.original_text.substring(0, 2000) }}
    Riassunto AI: {{ $json.riassunto }}
    

Lezione 5.6: Approvazione su Slack e invio

Invece di inviare automaticamente la risposta (rischioso per email commerciali), la inviamo su Slack per approvazione.

Configurazione nodo Slack:

  • Channel: #email-approvazioni
  • Text:
    :email: *Nuova email da gestire*
    *Da:* {{ $json.original_from }}
    *Oggetto:* {{ $json.original_subject }}
    *Categoria:* {{ $json.categoria }} | *Priorita:* {{ $json.priorita }}
    *Sentiment:* {{ $json.sentiment }}
    
    *Riassunto AI:* {{ $json.riassunto }}
    
    ---
    
    *Bozza di risposta generata:*
    {{ $json.risposta_generata }}
    
    ---
    :white_check_mark: Reagisci con :+1: per approvare l'invio
    :pencil2: Rispondi al thread per modificare
    

Per completare il circuito di approvazione, un secondo workflow separato monitora le reazioni Slack. Quando qualcuno reagisce con il pollice su, il workflow recupera l'email di risposta e la invia tramite SMTP.

Lezione 5.7: Logging su Google Sheets

Ogni email processata viene registrata in un Google Sheet per tracciabilita.

Configurazione nodo Google Sheets:

  • Operation: Append Row
  • Document: "Email Log 2026"
  • Sheet: "Log"
  • Columns mapping:
    • Data: {{ $now.toFormat('dd/MM/yyyy HH:mm') }}
    • Da: {{ $json.original_from }}
    • Oggetto: {{ $json.original_subject }}
    • Categoria: {{ $json.categoria }}
    • Priorita: {{ $json.priorita }}
    • Sentiment: {{ $json.sentiment }}
    • Risposta generata: Si/No
    • Stato: In attesa di approvazione

Caso Studio: E-commerce FashionStore.it

FashionStore.it riceve una media di 180 email al giorno: richieste di reso, domande sui prodotti, reclami per spedizioni, richieste B2B. Prima dell'automazione, tre persone del customer care dedicavano l'intera giornata allo smistamento e alle risposte. Con il workflow N8N:

  • Il 65% delle email viene classificato e risposto automaticamente (conferme di reso, stato spedizione, risposte FAQ)
  • Il 25% viene classificato e instradato al team corretto con bozza di risposta pre-generata
  • Il 10% viene segnalato come critico per gestione manuale immediata

Risultato: il team customer care e passato da 3 a 1 persona full-time sulle email, con un tempo medio di risposta ridotto da 4 ore a 18 minuti. Il costo dell'automazione e circa 35 EUR/mese (server N8N + API OpenAI).

Lezione 5.8: Metriche e ottimizzazione del workflow email

Una volta che il workflow e in produzione, e fondamentale monitorarne le prestazioni e ottimizzarlo nel tempo.

Metriche da tracciare settimanalmente:

  • Numero di email processate al giorno
  • Distribuzione per categoria (quale categoria e piu frequente?)
  • Accuratezza della classificazione (verificata a campione su 20 email/settimana)
  • Tempo medio di risposta (dall'arrivo dell'email alla risposta inviata)
  • Percentuale di risposte approvate senza modifiche vs modificate vs rifiutate
  • Costo API OpenAI per il workflow email

Template Google Sheets per il monitoraggio:

Crea un foglio "Dashboard Email AI" con queste tab:

Tab 1 - "Raw Log": ogni email processata (popolata dal workflow) Tab 2 - "Daily Summary": formula COUNTIF per contare email/giorno/categoria Tab 3 - "Weekly Metrics": grafici automatici con le metriche chiave Tab 4 - "Accuracy Check": campione settimanale per verificare la qualita

Se l'accuratezza scende sotto il 90%, e il momento di rivedere il system message del nodo di classificazione. Spesso basta aggiungere esempi delle categorie che vengono classificate male.

Esercizio Pratico

Costruisci il workflow completo di email management. Se non vuoi usare la tua email personale, crea un account Gmail dedicato per i test.

Step-by-step:

  1. Configura il nodo IMAP Trigger con un account email di test
  2. Aggiungi il nodo OpenAI con il system message di classificazione fornito sopra
  3. Aggiungi il nodo Code per il parsing del JSON
  4. Aggiungi il nodo Switch con almeno 3 regole (preventivo, supporto, altro)
  5. Per il ramo "preventivo": aggiungi un nodo OpenAI per la risposta e un nodo Slack
  6. Per gli altri rami: aggiungi nodi Slack con canali diversi
  7. Aggiungi il nodo Google Sheets per il logging
  8. Invia 5 email di test al tuo account: una richiesta di preventivo, una di supporto, una di spam, una in inglese, una vaga. Verifica che la classificazione e l'instradamento funzionino correttamente.
  9. Dopo i test, lascia il workflow attivo per 3 giorni. Alla fine, analizza il log e calcola: quante email processate, distribuzione per categoria, eventuali errori di classificazione.

Modulo 6: Workflow Completo — Processamento Documenti con AI

Lezione 6.1: Trigger su Google Drive per nuovi documenti

Questo modulo costruisce un workflow che monitora una cartella Google Drive, analizza automaticamente ogni nuovo documento caricato, ne estrae informazioni strutturate e le salva in un foglio di calcolo.

Architettura del workflow:

Google Drive Trigger (nuova cartella "Da Analizzare")
    |
    v
Google Drive: Download file
    |
    v
Extract Text (da PDF/DOCX)
    |
    v
OpenAI: Analisi del documento
    |
    v
Code: Parse JSON risultato
    |
    v
Google Sheets: Salva dati estratti
    |
    v
Slack: Notifica completamento
    |
    v
Google Drive: Sposta file in "Analizzati"

Nodo 1: Google Drive Trigger

Configurazione:

  • Trigger On: File Created
  • Folder: "Da Analizzare" (crea questa cartella in Google Drive)
  • Poll Times: Every 5 minutes
  • Credentials: Google Drive OAuth2

Nodo 2: Google Drive (Download)

Configurazione:

  • Operation: Download
  • File ID: {{ $json.id }} (dall'output del trigger)
  • Binary Property: data

Lezione 6.2: Estrazione testo da PDF e documenti

Per analizzare un PDF con l'AI, prima bisogna estrarne il testo. N8N offre diversi approcci.

Approccio 1: Extract from File (nodo nativo)

Configurazione:

  • Operation: Text
  • Input Binary Field: data
  • Questo nodo estrae il testo da PDF, DOCX, TXT e altri formati comuni

Approccio 2: per PDF complessi o scansionati, usa un servizio OCR esterno

Nodo HTTP Request per OCR.space (piano gratuito: 25.000 richieste/mese):

  • Method: POST
  • URL: https://api.ocr.space/parse/image
  • Body Type: Form-Data
  • Parameters:
    • file: (binary, dal download Google Drive)
    • language: ita
    • isOverlayRequired: false
    • apikey: LA_TUA_API_KEY_OCRSPACE

Lezione 6.3: Analisi AI del documento con prompt strutturato

Il cuore del workflow e il nodo AI che analizza il contenuto estratto.

Esempio 1: Analisi fatture

System Message per il nodo OpenAI:

Sei un sistema di data extraction per fatture italiane.
Dal testo fornito, estrai TUTTI i seguenti campi e restituisci
un JSON valido:

{
  "tipo_documento": "fattura|nota_credito|proforma|ricevuta",
  "numero_documento": "stringa",
  "data_emissione": "YYYY-MM-DD",
  "fornitore": {
    "ragione_sociale": "stringa",
    "partita_iva": "stringa",
    "indirizzo": "stringa"
  },
  "cliente": {
    "ragione_sociale": "stringa",
    "partita_iva": "stringa"
  },
  "righe": [
    {
      "descrizione": "stringa",
      "quantita": numero,
      "prezzo_unitario": numero,
      "totale_riga": numero
    }
  ],
  "imponibile": numero,
  "aliquota_iva": numero,
  "importo_iva": numero,
  "totale_documento": numero,
  "modalita_pagamento": "stringa",
  "data_scadenza": "YYYY-MM-DD o null se non presente",
  "note": "eventuali note o condizioni, null se assenti"
}

Se un campo non e presente nel documento, usa null.
I numeri devono essere senza simbolo di valuta.
Rispondi SOLO con il JSON.

User Message:

Testo del documento:
{{ $json.text.substring(0, 6000) }}

Temperature: 0 Model: gpt-4o

Esempio 2: Analisi contratti

System Message alternativo per contratti:

Sei un assistente legale che analizza contratti italiani.
Estrai le informazioni chiave e restituisci un JSON:

{
  "tipo_contratto": "stringa (es. fornitura, servizi, NDA, locazione)",
  "parti": [
    {"ruolo": "fornitore|cliente|parte_a|parte_b", "nome": "stringa"}
  ],
  "oggetto": "descrizione in max 50 parole",
  "durata": "stringa (es. 12 mesi, indeterminato)",
  "data_decorrenza": "YYYY-MM-DD",
  "data_scadenza": "YYYY-MM-DD o null",
  "valore_economico": numero o null,
  "clausole_critiche": [
    {
      "tipo": "penale|recesso|riservatezza|esclusiva|garanzia",
      "sintesi": "max 30 parole"
    }
  ],
  "termini_pagamento": "stringa",
  "foro_competente": "stringa",
  "rischi_identificati": ["lista di potenziali problematiche, max 3"]
}

Lezione 6.4: Salvataggio strutturato in Google Sheets

Dopo l'analisi AI, i dati estratti vengono salvati in un foglio di calcolo strutturato.

Configurazione nodo Google Sheets:

  • Operation: Append Row
  • Document: "Registro Documenti Analizzati"
  • Sheet: "Fatture" (o "Contratti" a seconda del tipo)
  • Columns:
    • Data analisi: {{ $now.toFormat('dd/MM/yyyy HH:mm') }}
    • Nome file: {{ $node["Google Drive Trigger"].json.name }}
    • Tipo: {{ $json.tipo_documento }}
    • Numero: {{ $json.numero_documento }}
    • Fornitore: {{ $json.fornitore.ragione_sociale }}
    • P.IVA: {{ $json.fornitore.partita_iva }}
    • Totale: {{ $json.totale_documento }}
    • Scadenza: {{ $json.data_scadenza }}
    • Note: {{ $json.note }}

Lezione 6.5: Notifica e archiviazione

Il workflow si completa con una notifica e lo spostamento del file nella cartella "Analizzati".

Nodo Slack:

  • Channel: #documenti
  • Text:
    :page_facing_up: Nuovo documento analizzato
    *File:* {{ $node["Google Drive Trigger"].json.name }}
    *Tipo:* {{ $json.tipo_documento }}
    *Fornitore:* {{ $json.fornitore.ragione_sociale }}
    *Totale:* EUR {{ $json.totale_documento }}
    *Scadenza:* {{ $json.data_scadenza || 'Non specificata' }}
    Dati salvati nel registro documenti.
    

Nodo Google Drive (Move):

  • Operation: Move
  • File ID: {{ $node["Google Drive Trigger"].json.id }}
  • Destination Folder: "Analizzati"

Caso Studio: Studio Commercialista RossiPartners

Lo studio RossiPartners gestisce la contabilita di 85 clienti e riceve circa 400 fatture al mese via email e upload su Drive. Prima dell'automazione, un collaboratore dedicava 3 giorni al mese alla registrazione manuale delle fatture nel gestionale.

Con il workflow N8N di analisi documenti:

  • Le fatture vengono analizzate in media in 8 secondi (vs 5 minuti manuali)
  • L'accuratezza dell'estrazione dati e del 94% (verificata su un campione di 200 fatture)
  • Il 6% di errori riguarda principalmente fatture con layout non standard o scansioni di bassa qualita
  • Il tempo di registrazione e passato da 24 ore/mese a 4 ore/mese (inclusa la revisione umana dei dati estratti)

Costo: circa 25 EUR/mese di API OpenAI per l'analisi di 400 documenti.

Lezione 6.6: Gestione dei documenti lunghi — la tecnica del chunking

Per documenti che superano il limite di token del modello AI (circa 12.000 parole per GPT-4o-mini, circa 100.000 per GPT-4o e Claude Sonnet), serve la tecnica del chunking: suddividere il documento in sezioni gestibili.

Implementazione del chunking in N8N:

// Nodo Code: divide il testo in chunk di 3000 parole
const text = $input.first().json.extractedText;
const words = text.split(/\s+/);
const chunkSize = 3000;
const chunks = [];

for (let i = 0; i < words.length; i += chunkSize) {
  chunks.push({
    json: {
      chunkIndex: Math.floor(i / chunkSize),
      totalChunks: Math.ceil(words.length / chunkSize),
      text: words.slice(i, i + chunkSize).join(' '),
      wordCount: Math.min(chunkSize, words.length - i)
    }
  });
}

return chunks;

Dopo il chunking, usa un nodo "Loop Over Items" per processare ogni chunk con l'AI. Poi un nodo "Merge" raccoglie tutti i riassunti parziali, e un ultimo nodo AI produce il riassunto finale dei riassunti.

Questo pattern e riutilizzabile per qualsiasi tipo di documento lungo: report annuali, contratti complessi, manuali tecnici, trascrizioni di riunioni prolungate.

Lezione 6.7: Generazione automatica di documenti da template

Il flusso inverso e altrettanto potente: generare documenti a partire da dati strutturati. Un workflow che riceve i dati di una vendita chiusa dal CRM e genera automaticamente la proposta commerciale personalizzata in formato strutturato.

System Message per la generazione documenti:

Sei un esperto di comunicazione aziendale. Genera documenti
professionali basati sui dati forniti.

Il documento deve seguire questa struttura:
1. Intestazione con logo (placeholder)
2. Executive summary (50 parole)
3. Corpo del documento con sezioni numerate
4. Tabella riepilogativa (se applicabile)
5. Call to action o prossimi passi
6. Firma

Formatta in Markdown. Usa tabelle dove utile.
Tono: professionale, specifico, orientato al valore.

Esercizio Pratico

Costruisci il workflow di analisi fatture. Prepara tre fatture PDF di esempio (puoi generarle con servizi gratuiti come invoice-generator.com) e caricale nella cartella "Da Analizzare" di Google Drive.

Verifica che il workflow:

  1. Rilevi il nuovo file entro 5 minuti
  2. Estragga il testo correttamente
  3. Produca un JSON con tutti i campi richiesti
  4. Salvi i dati nel Google Sheet con tutte le colonne compilate
  5. Invii la notifica Slack/email
  6. Sposti il file nella cartella "Analizzati"

Test aggiuntivo: carica un documento che NON e una fattura (es. un contratto o una lettera). Il workflow dovrebbe comunque funzionare, con il campo tipo_documento che riflette il tipo corretto del documento.

Sfida avanzata: modifica il workflow per gestire documenti di piu di 5.000 parole usando la tecnica del chunking. Testa con un contratto lungo e verifica che il riassunto finale sia coerente e completo.


Modulo 7: Workflow Completo — Social Media e Marketing Automation

Lezione 7.1: Architettura del sistema di content automation

Questo modulo costruisce un sistema completo per la gestione automatizzata dei contenuti social media: dal monitoraggio delle fonti alla pubblicazione, dalla generazione di immagini al reporting settimanale.

Architettura complessiva:

Workflow 1: Content Generation (giornaliero)
  RSS Feed Monitor --> AI Content Generation --> AI Image (DALL-E)
      --> Buffer/diretto --> Log in Google Sheets

Workflow 2: Weekly Report (settimanale)
  Schedule --> Leggi log da Sheets --> AI Analysis
      --> Report formattato --> Slack/Email

Lezione 7.2: Monitoraggio fonti con RSS Feed

Il primo workflow parte dal monitoraggio di fonti rilevanti per il tuo settore.

Nodo 1: Schedule Trigger

  • Frequency: Every day at 8:00

Nodo 2: RSS Feed Read

Configurazione:

  • URL: inserisci il feed RSS delle fonti che vuoi monitorare, ad esempio:
    • https://techcrunch.com/feed/ (tech news)
    • https://feeds.feedburner.com/AIBlog (Google AI Blog)
    • https://blog.anthropic.com/rss (Anthropic Blog)
  • Per monitorare piu fonti, usa un nodo "Split In Batches" con una lista di URL

Nodo 3: Code (filtra articoli recenti)

// Filtra solo gli articoli delle ultime 24 ore
const oneDayAgo = new Date(Date.now() - 24 * 60 * 60 * 1000);
const items = $input.all();

const recentItems = items.filter(item => {
  const pubDate = new Date(item.json.pubDate || item.json.isoDate);
  return pubDate > oneDayAgo;
});

// Prendi massimo 3 articoli per non sovraccaricare i social
return recentItems.slice(0, 3);

Lezione 7.3: Generazione contenuti AI per multiple piattaforme

Per ogni articolo interessante, l'AI genera contenuti adattati a ciascuna piattaforma.

Nodo 4: OpenAI (generazione post multi-piattaforma)

System Message:

Sei un social media manager esperto per un'azienda italiana
di consulenza AI e tecnologia.

Il brand voice e: competente ma accessibile, mai troppo tecnico,
orientato al valore pratico per le aziende italiane.

Per ogni articolo che ti viene fornito, genera TRE versioni:

1. LINKEDIN (max 1300 caratteri):
   - Inizia con un hook che cattura l'attenzione
   - Spiega il significato pratico per le aziende
   - Chiudi con una domanda per stimolare commenti
   - Includi 3-5 hashtag rilevanti
   - Usa line break per la leggibilita

2. TWITTER/X (max 280 caratteri):
   - Conciso e incisivo
   - Includi 1-2 hashtag
   - Lascia spazio per il link

3. INSTAGRAM CAPTION (max 500 caratteri):
   - Tono piu informale
   - Usa emoji con moderazione
   - Includi CTA (es. "Salva questo post per dopo")
   - 5-8 hashtag alla fine

Rispondi in JSON:
{
  "linkedin": "testo post",
  "twitter": "testo tweet",
  "instagram": "testo caption",
  "image_prompt": "prompt in inglese per DALL-E: descrizione di
    un'immagine professionale che accompagna il post, stile corporate
    moderno, colori blu e bianco, senza testo nell'immagine"
}

User Message:

Titolo articolo: {{ $json.title }}
Descrizione: {{ $json.contentSnippet || $json.description }}
Link: {{ $json.link }}

Temperature: 0.8 Model: gpt-4o

Lezione 7.4: Generazione immagini con DALL-E

Per ogni post, generiamo un'immagine di accompagnamento con DALL-E.

Nodo 5: OpenAI (Image Generation)

Configurazione tramite HTTP Request:

  • Method: POST
  • URL: https://api.openai.com/v1/images/generations
  • Headers:
    Authorization: Bearer LA_TUA_API_KEY_OPENAI
    Content-Type: application/json
    
  • Body:
    {
      "model": "dall-e-3",
      "prompt": "{{ $json.image_prompt }}",
      "n": 1,
      "size": "1024x1024",
      "quality": "standard"
    }
    

Costo: circa 0,040 USD per immagine con DALL-E 3 standard.

Il risultato contiene un URL all'immagine generata. Un nodo HTTP Request successivo scarica l'immagine e un nodo Google Drive la salva in una cartella dedicata.

Lezione 7.5: Pubblicazione su LinkedIn e Twitter/X

Pubblicazione su LinkedIn (via HTTP Request):

Per pubblicare su LinkedIn servono le credenziali OAuth2 dell'API LinkedIn. La configurazione richiede di creare un'app su linkedin.com/developers.

Nodo HTTP Request per LinkedIn:

  • Method: POST
  • URL: https://api.linkedin.com/v2/ugcPosts
  • Headers:
    Authorization: Bearer {{ $credentials.linkedinOAuth2.accessToken }}
    Content-Type: application/json
    
  • Body:
    {
      "author": "urn:li:person:IL_TUO_PERSON_ID",
      "lifecycleState": "PUBLISHED",
      "specificContent": {
        "com.linkedin.ugc.ShareContent": {
          "shareCommentary": {
            "text": "{{ $json.linkedin }}"
          },
          "shareMediaCategory": "ARTICLE",
          "media": [{
            "status": "READY",
            "originalUrl": "{{ $json.link }}"
          }]
        }
      },
      "visibility": {
        "com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"
      }
    }
    

Alternativa semplificata con Buffer:

Se la configurazione diretta delle API social e troppo complessa, usa Buffer (buffer.com) come intermediario. Buffer offre un'API REST semplice e un piano gratuito per 3 canali social.

Nodo HTTP Request per Buffer:

  • Method: POST
  • URL: https://api.bufferapp.com/1/updates/create.json
  • Body (Form URL Encoded):
    • access_token: IL_TUO_TOKEN_BUFFER
    • profile_ids[]: ID_PROFILO_LINKEDIN
    • text: {{ $json.linkedin }}
    • media[link]: {{ $json.link }}
    • scheduled_at: {{ $now.plus({ hours: 2 }).toISO() }}

Lezione 7.6: Report settimanale automatico

Un secondo workflow genera ogni venerdi un report sulle performance della settimana.

Nodo 1: Schedule Trigger

  • Every Friday at 17:00

Nodo 2: Google Sheets (leggi log della settimana)

  • Operation: Read Rows
  • Range: filtra per data >= lunedi corrente

Nodo 3: OpenAI (genera report)

System Message:

Sei un social media analyst. Ricevi i dati dei post pubblicati
durante la settimana. Genera un report settimanale in italiano
con:

1. RIEPILOGO: quanti post pubblicati, su quali piattaforme
2. TOP PERFORMER: il post con piu engagement (se disponibile)
3. TEMI TRATTATI: lista degli argomenti coperti
4. SUGGERIMENTI: 3 idee per contenuti della prossima settimana
   basate sui trend emergenti e sugli argomenti che hanno
   funzionato meglio
5. CALENDARIO PROPOSTO: bozza di piano editoriale per la
   prossima settimana (lun-ven, 1 post/giorno)

Formatta per Slack con emoji e bold (*testo*).

User Message:

Dati dei post pubblicati questa settimana:
{{ $json.posts.map(p => `- ${p.date}: ${p.topic} (${p.platform})`).join('\n') }}

Caso Studio: Startup SaaS MetricBoard

MetricBoard e una startup B2B SaaS con 4 dipendenti e nessun social media manager dedicato. Prima dell'automazione, pubblicavano in media 2 post al mese su LinkedIn, tutti manuali.

Con il workflow N8N di social media automation:

  • Pubblicano 5 post a settimana su LinkedIn e 7 su Twitter/X, tutti generati dall'AI e revisionati in batch ogni lunedi mattina (15 minuti di revisione per l'intera settimana)
  • In 3 mesi, i follower LinkedIn sono cresciuti da 340 a 1.850 (+444%)
  • Le visite al sito da social media sono aumentate del 280%
  • Il traffico organico e cresciuto del 45% grazie all'aumento della brand awareness

Costo totale: circa 50 EUR/mese (N8N Cloud 24 EUR + API OpenAI 18 EUR + DALL-E 8 EUR).

Lezione 7.7: Monitoraggio menzioni e sentiment analysis

Un workflow complementare monitora le menzioni del brand online e analizza il sentiment.

Architettura del workflow di social listening:

Schedule (ogni 4 ore)
    |
HTTP Request: Google Alerts RSS / Twitter API / Mention.com API
    |
Code: filtra nuove menzioni
    |
OpenAI: analisi sentiment e classificazione
    |
Switch: per sentiment
    |--- Negativo + Urgente --> Slack #crisis (notifica immediata)
    |--- Negativo --> Slack #customer-care
    |--- Positivo --> Google Sheets "Testimonianze"
    |--- Neutro --> Log

System Message per l'analisi menzioni:

Analizza questa menzione del brand [Nome Brand].
Testo: {{ $json.mention_text }}
Piattaforma: {{ $json.source }}

Rispondi in JSON:
{
  "sentiment": "positivo|neutro|negativo",
  "argomento": "prodotto|servizio|brand|prezzo|competitore",
  "urgenza": true/false (true se richiede risposta entro 1 ora),
  "influenza_autore": "alta|media|bassa" (basata su contesto),
  "suggerimento_risposta": "risposta in max 280 caratteri, o null",
  "riassunto": "max 20 parole"
}

Lezione 7.8: Lead nurturing automatizzato con AI

Quando un lead compila un form sul sito, un workflow puo attivare un processo di nurturing completamente personalizzato.

Webhook (form submission)
    |
OpenAI: profila il lead
    |
Switch: per profilo
    |--- Enterprise --> sequenza email Enterprise
    |--- PMI --> sequenza email PMI
    |--- Freelance --> sequenza email Freelance
    |
Per ogni profilo:
  Wait 0 min --> Email di benvenuto personalizzata
  Wait 2 giorni --> Email con case study rilevante
  Wait 5 giorni --> Email con offerta specifica
  Wait 7 giorni --> Notifica al commerciale se non ha risposto

La potenza di questo approccio rispetto ai funnel email tradizionali e che la personalizzazione e dinamica, basata sull'analisi AI delle informazioni specifiche di ciascun lead, non su segmenti statici predefiniti.

Esercizio Pratico

Costruisci il workflow di content generation. Se non vuoi pubblicare direttamente sui social, configura il workflow per salvare i contenuti generati in un Google Sheet (una riga per post, con colonne per piattaforma, testo, link immagine) che potrai poi usare per la pubblicazione manuale.

Configurazione minima:

  1. Schedule Trigger: ogni giorno alle 8:00
  2. RSS Feed Read: inserisci 2-3 feed del tuo settore
  3. Code: filtra articoli delle ultime 24 ore
  4. OpenAI: genera contenuti multi-piattaforma con il prompt fornito
  5. Google Sheets: salva ogni post generato con colonne:
    • Data, Titolo articolo, Link, Testo LinkedIn, Testo Twitter, Testo Instagram, Prompt immagine, Stato (bozza/pubblicato)

Esegui il workflow manualmente 3 volte e verifica che i contenuti generati siano coerenti con il tuo brand voice. Modifica il system message fino a ottenere il tono desiderato.

Sfida avanzata: aggiungi la generazione di immagini con DALL-E. Per ogni post, genera un'immagine e salvala in una cartella Google Drive dedicata. Inserisci il link all'immagine nel Google Sheet accanto al testo del post.


Modulo 8: Monitoraggio, Error Handling e Best Practice di Produzione

Lezione 8.1: Error handling strutturato — il nodo Error Trigger

Un workflow che funziona una volta non e un workflow affidabile. I problemi emergono nel tempo: API che cambiano formato, servizi temporaneamente non disponibili, dati in formato inatteso, limiti di rate raggiunti, credenziali scadute. Senza un sistema di error handling, questi problemi passano inosservati fino a quando qualcuno nota che "le email non vengono piu classificate da tre giorni".

N8N offre tre livelli di error handling.

Livello 1: Error Trigger Workflow

Crea un workflow dedicato chiamato "Error Handler" con un nodo "Error Trigger" come trigger. Questo workflow viene eseguito automaticamente ogni volta che qualsiasi altro workflow fallisce.

Configurazione del workflow Error Handler:

Nodo 1: Error Trigger

  • Si attiva automaticamente quando un workflow fallisce
  • Fornisce: nome del workflow fallito, nodo che ha generato l'errore, messaggio di errore, timestamp

Nodo 2: Slack (notifica errore)

  • Channel: #automazioni-errori
  • Text:
    :rotating_light: *Errore nel workflow*
    *Workflow:* {{ $json.workflow.name }}
    *Nodo:* {{ $json.execution.error.node || 'Sconosciuto' }}
    *Errore:* {{ $json.execution.error.message }}
    *Data:* {{ $now.toFormat('dd/MM/yyyy HH:mm') }}
    *Link:* {{ $json.execution.url }}
    

Nodo 3: Google Sheets (log errori)

  • Salva ogni errore in un foglio "Error Log" per tracciabilita

Per associare l'Error Handler a un workflow: apri il workflow, vai in Settings (icona ingranaggio), e in "Error Workflow" seleziona il tuo workflow Error Handler.

Livello 2: Retry automatico sui singoli nodi

Per i nodi che chiamano servizi esterni (HTTP Request, OpenAI, email), configura il retry automatico:

Nelle impostazioni del nodo (Settings tab):

  • Retry On Fail: Enabled
  • Max Tries: 3
  • Wait Between Tries: 2000 ms (aumenta progressivamente)
  • Continue On Fail: a seconda del caso (true se il fallimento non e critico)

Livello 3: Error output per nodo

Ogni nodo puo avere un'uscita "Error" collegata a un ramo alternativo. Se il nodo fallisce, il flusso prosegue lungo il ramo di errore invece di fermarsi.

Per abilitare: clicca sulla connessione in uscita del nodo, seleziona "Error" e collega a un nodo che gestisce il caso di errore (es. notifica, log, skip).

Lezione 8.2: Retry, backoff e rate limiting

Le API esterne hanno limiti di rate (es. OpenAI: 500 richieste/minuto per il tier 1). Quando un workflow processa molti items in parallelo, e facile superare questi limiti.

Strategia 1: Split In Batches con delay

Configurazione nodo Split In Batches:

  • Batch Size: 10
  • Options:
    • Reset: false

Dopo il nodo che processa ogni batch, aggiungi un nodo "Wait":

  • Amount: 2
  • Unit: seconds

Strategia 2: Exponential backoff nel nodo Code

// Implementa un retry con exponential backoff
const maxRetries = 3;
let lastError = null;

for (let attempt = 0; attempt < maxRetries; attempt++) {
  try {
    // La logica di chiamata API va qui
    const response = await this.helpers.httpRequest({
      method: 'POST',
      url: 'https://api.openai.com/v1/chat/completions',
      headers: {
        'Authorization': 'Bearer ' + $credentials.openAiApi.apiKey,
        'Content-Type': 'application/json'
      },
      body: {
        model: 'gpt-4o-mini',
        messages: [{ role: 'user', content: $json.prompt }]
      }
    });
    return [{ json: response }];
  } catch (error) {
    lastError = error;
    const waitMs = Math.pow(2, attempt) * 1000; // 1s, 2s, 4s
    await new Promise(resolve => setTimeout(resolve, waitMs));
  }
}
throw new Error(`Fallito dopo ${maxRetries} tentativi: ${lastError.message}`);

Lezione 8.3: Logging e monitoraggio delle esecuzioni

La sezione Executions di N8N mostra lo storico completo di tutte le esecuzioni. Per ogni esecuzione puoi vedere: stato (successo/errore/in attesa), durata, dati processati in ogni nodo, e il nodo esatto dove si e verificato un eventuale errore.

Best practice per il logging:

Crea un Google Sheet "Monitoring Dashboard" con un foglio per ogni workflow critico. Aggiungi alla fine di ogni workflow un nodo Google Sheets che registra:

  • Workflow name
  • Execution ID
  • Status (success)
  • Items processed
  • Duration (ms)
  • Timestamp
  • Notes (eventuali warning)

Questo ti permette di costruire grafici in Google Sheets che mostrano il trend delle esecuzioni nel tempo, identificando immediatamente anomalie (es. un workflow che improvvisamente impiega il doppio del tempo).

Lezione 8.4: Version control e backup dei workflow

I workflow N8N sono esportabili come file JSON. Questa e la base per il version control.

Strategia di backup manuale:

# Esporta tutti i workflow via API N8N
curl -X GET "https://n8n.tuodominio.com/api/v1/workflows" \
  -H "X-N8N-API-KEY: LA_TUA_API_KEY" \
  | jq '.' > backup_workflows_$(date +%Y%m%d).json

Strategia di backup automatizzato (workflow N8N che backuppa se stesso):

Crea un workflow che:

  1. Schedule Trigger: ogni domenica alle 3:00
  2. HTTP Request: chiama l'API N8N per esportare tutti i workflow
  3. Code: formatta il JSON
  4. Google Drive: salva il file nella cartella "N8N Backups"
  5. Slack: notifica "Backup settimanale completato"

Nodo HTTP Request per l'export:

  • Method: GET
  • URL: http://localhost:5678/api/v1/workflows
  • Headers:
    X-N8N-API-KEY: la-tua-api-key-n8n
    

Lezione 8.5: Performance optimization

Per workflow che processano grandi volumi di dati, l'ottimizzazione e critica.

Regola 1: Usa il modello AI piu economico che funziona

Prima di usare GPT-4o (2,50 USD/1M token input), testa con GPT-4o-mini (0,15 USD/1M token). Per il 70% dei task di classificazione e estrazione, GPT-4o-mini e sufficiente. Riserva i modelli premium per task dove la qualita e critica (scrittura commerciale, analisi legale).

Regola 2: Limita i dati in input al minimo necessario

Invece di passare un'email intera di 5.000 parole all'AI per la classificazione, passa solo oggetto e primi 500 caratteri del corpo. Spesso e sufficiente per una classificazione accurata e riduce i costi del 90%.

Regola 3: Usa il caching dove possibile

Se lo stesso input viene processato piu volte (es. lo stesso tipo di documento), salva i risultati in un database o Sheet e controlla prima se esiste gia un risultato cached.

Regola 4: Parallelizza con cautela

N8N puo eseguire nodi in parallelo quando il workflow si biforca. Ma le API esterne hanno rate limits. Un workflow che chiama OpenAI 100 volte in parallelo fallira. Usa Split In Batches per controllare il parallelismo.

Lezione 8.6: Checklist di produzione

Prima di mettere un workflow in produzione, verifica:

Checklist Pre-Produzione:

  • [ ] Error Workflow configurato e testato
  • [ ] Retry abilitato sui nodi di chiamata esterna
  • [ ] Timeout configurato correttamente (aumentato per nodi AI)
  • [ ] Rate limiting implementato se il workflow processa batch
  • [ ] Logging attivo con registrazione in Google Sheets
  • [ ] Notifiche errore su Slack/email funzionanti
  • [ ] Backup del workflow esportato in JSON
  • [ ] Test con dati reali (non solo dati di esempio)
  • [ ] Test dei casi limite (email vuota, documento corrotto, API down)
  • [ ] Budget API impostato con alert
  • [ ] Documentazione del workflow con sticky notes sulla canvas
  • [ ] Permessi e credenziali con minimo privilegio necessario

Esercizio Pratico

Costruisci il tuo sistema di monitoraggio completo.

Step 1: Crea il workflow "Error Handler" con Error Trigger, notifica Slack e log su Google Sheets. Associalo a tutti i tuoi workflow.

Step 2: Aggiungi un nodo di logging alla fine di ogni workflow esistente che registri le esecuzioni riuscite.

Step 3: Crea il workflow di backup automatico settimanale.

Step 4: Crea un Google Sheet "Monitoring Dashboard" con una tab per i successi e una per gli errori. Aggiungi grafici che mostrano:

  • Numero esecuzioni per giorno (per workflow)
  • Numero errori per giorno
  • Tempo medio di esecuzione

Step 5: Simula un errore (es. disabilita temporaneamente le credenziali OpenAI in un workflow) e verifica che la catena di notifica funzioni: il workflow fallisce, l'Error Handler si attiva, la notifica Slack arriva, l'errore viene registrato nel log.


Conclusione e Prossimi Passi

In questo corso hai costruito competenze concrete per progettare, implementare e gestire workflow automatizzati che combinano la potenza dell'automazione N8N con l'intelligenza artificiale. Partendo dall'installazione, hai progressivamente affrontato workflow sempre piu complessi: dalla classificazione email alla generazione documenti, dal social media management al monitoraggio in produzione.

Hai costruito almeno sei workflow funzionanti:

  1. News AI su Slack — monitoraggio automatico con riassunto AI
  2. Classificazione feedback — analisi sentiment e categorizzazione con structured output
  3. Email management — classificazione, risposta automatica, instradamento e logging
  4. Analisi documenti — estrazione dati da PDF con salvataggio strutturato
  5. Social media automation — generazione contenuti multi-piattaforma con immagini AI
  6. Error Handler — sistema di monitoraggio e notifica errori

I principi fondamentali da consolidare sono: iniziare sempre dal processo manuale prima di automatizzarlo (se non comprendi il processo in dettaglio, l'automazione ereditera e amplifica le inefficienze), costruire workflow modulari che possano essere testati e mantenuti componente per componente, implementare sempre error handling e monitoraggio prima di mettere un workflow in produzione, e bilanciare automazione e controllo umano in base al rischio dell'operazione.

Il percorso di crescita consigliato: automatizza un singolo processo ben definito nella tua attivita questa settimana. Misura il tempo risparmiato dopo un mese. Poi espandi aggiungendo workflow collegati. In tre mesi, avrai costruito un ecosistema di automazioni che lavora per te 24 ore su 24, 7 giorni su 7.

L'automazione intelligente non e un progetto con una data di fine: e un approccio al lavoro che evolve continuamente. Ogni settimana emergeranno nuove opportunita di automazione, nuovi nodi saranno disponibili in N8N, e nuove capacita AI amplieranno cio che e possibile automatizzare. Chi padroneggia i fondamenti trattati in questo corso ha gli strumenti per adattarsi e crescere con questa evoluzione.

Il tuo piano d'azione post-corso:

Settimana 1: Installa N8N e costruisci il workflow News AI su Slack (Modulo 3). Verifica che funzioni in modo stabile per 7 giorni.

Settimana 2: Implementa il workflow di classificazione feedback (Modulo 4) con dati reali.

Settimana 3: Attiva il workflow di email management (Modulo 5) sulla tua casella email.

Settimana 4: Aggiungi il workflow di analisi documenti (Modulo 6) e il sistema di error handling (Modulo 8).

Mese 2: Implementa il workflow social media (Modulo 7) e il backup automatico. Ottimizza tutti i workflow in base ai dati del primo mese.

Mese 3: Identifica nuovi processi da automatizzare partendo dall'inventario fatto nel Modulo 1. Costruisci workflow personalizzati per le esigenze specifiche della tua attivita.

Per supporto e ispirazione, la community N8N su community.n8n.io e una risorsa inestimabile: migliaia di workflow condivisi, guide per problemi specifici e una community attiva pronta ad aiutare. Buona automazione.

Assessment Strategico Gratuito

Vuoi implementare l'AI nella tua azienda?

Richiedi un assessment strategico gratuito. In 30 minuti analizziamo i tuoi processi, identifichiamo le opportunità AI a maggior impatto e definiamo un piano d'azione concreto.

Riservato a decision maker 30 minuti Report personalizzato incluso

Dettagli Corso

Informazioni sul corso

Livello
Intermedio
Moduli
8
Durata
7 ore
Categoria
Automazione
Prezzo
Gratuito
Inizia il Corso

Argomenti

N8N automazione workflow integrazione
🦉

GSEO Agent

Online ora

🦉

GSEO Agent

Agente AI attivo

🦉

📋 Assessment gratuito

Richiesta inviata!

Ti ricontatteremo entro 24 ore.

Assessment AI gratuito — 30 min
Richiedi Info