Prima di spiegare qualcosa: apri la pagina live. Mostra cosa ha fatto all'ultimo giro un workflow n8n sul mio server: ha chiesto la posizione della ISS, i terremoti più forti delle ultime 24 ore, la notizia in cima a Hacker News, l'articolo più letto di Wikipedia in tedesco, il meteo a Berlino, il mio monitor di stato e le stelle di n8n su GitHub. Un'AI ne ha scritto due frasi, e tutto insieme è sulla pagina. L'ultimo giro viene riprodotto al rallentatore, nodo per nodo. E con il pulsante «Avvia il workflow adesso» fai partire tu un giro e dopo pochi secondi vedi il tuo risultato.
Non ha uno scopo profondo. Però mostra bene cosa sa fare oggi l'automazione, ed è divertente da guardare.
Cos'è n8n?
n8n (si legge «n-eight-n») è uno strumento per workflow: trascini nodi su una tela e li colleghi. Ogni nodo fa una cosa, per esempio «parti ogni 15 minuti», «chiama questa API», «trasforma questi dati» o «invia una mail». I dati scorrono da sinistra a destra lungo i collegamenti.
- Centinaia di integrazioni pronte: da Gmail e Slack a Nextcloud, database, webhook e modelli AI.
- Codice quando serve: un nodo Code esegue JavaScript o Python. Quello che non esiste come nodo lo scrivi in dieci righe.
- Ospitabile in casa: n8n gira come container Docker sul tuo server. Dati e credenziali escono dalla tua infrastruttura solo se un workflow li invia.
- Fair-code: il codice è leggibile e usabile liberamente per uso interno; rivenderlo come servizio è limitato dalla licenza. Su GitHub il progetto ha più di 200.000 stelle.
Il workflow, nodo per nodo
- Due trigger: un webhook che parte dal pulsante della pagina live e un timer che lo avvia da solo ogni 6 ore. Il sito limita i clic, così nessuno può lanciarlo ogni secondo.
- Sette nodi HTTP in parallelo: posizione della ISS (wheretheiss.at), terremoti (USGS), Hacker News (API Algolia), articolo più letto di Wikipedia in tedesco, meteo a Berlino (Open-Meteo), il mio monitor di stato e i dati GitHub di n8n. Tutte fonti pubbliche, senza chiave.
- Merge: aspetta che tutte e sette abbiano finito.
- Code «raggruppa dati»: prende da ogni risposta solo il necessario e prepara i fatti per l'AI.
- Bollettino AI: un modello linguistico (gpt-oss-120b, ospitato da IONOS in Germania) scrive due frasi in tedesco, inglese e italiano.
- Code «verifica risposta»: legge la risposta; se l'AI fallisce, costruisce un bollettino semplice dai dati.
- HTTP «invia alla pagina»: manda il risultato con un token segreto al mio sito, che lo salva e lo mostra.
Un estratto del nodo Code, per vedere quanto poco serve:
const get = (name) => { try { const j = $(name).first().json; return j && !j.error ? j : null; } catch (e) { return null; } };
let j = get('ISS-Position');
s.iss = j ? { ok: true, lat: j.latitude, lon: j.longitude, vel: j.velocity } : { ok: false };
j = get('Erdbeben (USGS)');
const top = j.features.map(f => ({ mag: f.properties.mag, place: f.properties.place }))
.sort((a, b) => b.mag - a.mag).slice(0, 15);
Tre dettagli che rendono un workflow robusto
- Accettare gli errori: ogni nodo sorgente è impostato su «continua in caso di errore». Se un'API è giù manca una scheda, ma il resto gira.
- Non fidarsi ciecamente dell'AI: il modello riceve solo fatti con numeri e l'istruzione di non inventare nulla e di non scherzare sulle catastrofi. La risposta viene verificata prima di essere pubblicata.
- Anche il sito controlla: l'endpoint accetta solo richieste con il token, tiene solo i campi noti, accorcia i testi e toglie l'HTML. La pagina inserisce i dati solo come testo.
Cosa si automatizza davvero
Il polso è un giocattolo. Con gli stessi mattoncini girano da me lavori veri: un radar quotidiano di notizie IT commentate, un radar delle truffe, un traduttore di messaggi d'errore. Idee tipiche per le aziende:
- leggere i nuovi ticket, classificarli e passarli al team giusto;
- prendere le fatture dalla casella, estrarre i dati e archiviarle in Nextcloud;
- raccogliere gli allarmi di monitoraggio e mandare in chat solo quelli importanti;
- controllare i moduli del sito e inserirli nel CRM.
Provalo tu
n8n parte in locale con un comando:
docker run -it --rm -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
Poi apri http://localhost:5678. Puoi scaricare il mio workflow in JSON e caricarlo con «Import from File». Per il bollettino AI serve una tua chiave di un fornitore compatibile con OpenAI, e l'ultimo nodo va puntato a una tua destinazione, per esempio un webhook, una mail o un file.
E poi: torna sulla pagina live e guarda cosa racconta il robot sul mondo in questo momento.