Come utilizzare il nodo Loop Over Items (Split in Batch) in n8n

In n8n, il loop sugli elementi è una delle tecniche più potenti per gestire elenchi di dati, come indirizzi email, risposte API o record del database.

Mentre molti nodi di n8n elaborano gli elementi singolarmente per impostazione predefinita, alcune situazioni richiedono un maggiore controllo, ad esempio quando è necessario inviare messaggi in batch o limitare il numero di richieste per ciclo.

È qui che entra in gioco il nodo Loop Over Items (Split in Batches). Per usarlo, si definisce una dimensione del batch e il nodo suddivide il set di dati in gruppi più piccoli, elaborando ogni batch singolarmente.

Questo articolo spiega cosa significa “looping” in n8n, come funziona il nodo Looping Over Items e quando utilizzarlo. Imparerai anche come iterare sugli elementi attraverso esempi pratici, come l’invio di email in blocco e l’elaborazione di grandi set di dati in blocchi gestibili.

Cosa significa looping in n8n?

In n8n, il looping si riferisce alla ripetizione di una serie di azioni per ogni elemento di una lista o array all’interno di un flusso di lavoro. Questo consente di automatizzare le attività per ogni elemento di un set di dati senza intervento manuale.

Ad esempio, se si dispone di un elenco di 100 contatti e si desidera inviare un’email a ciascuno di essi, il looping consente a n8n di elaborare ogni contatto in sequenza (inviando un’email dopo l’altra) anziché inviare email in blocco a tutti contemporaneamente.

Per impostazione predefinita, molti nodi n8n elaborano gli array o le liste in arrivo elemento per elemento. Quando un nodo riceve un array, passa ciascun elemento lungo il flusso di lavoro, uno alla volta.

Tuttavia, il looping esplicito diventa necessario quando un nodo può gestire solo un singolo elemento alla volta, quando è necessario un maggiore controllo sull’ordine e sull’elaborazione in batch delle operazioni o quando la gestione di troppi elementi contemporaneamente potrebbe sovraccaricare il sistema.

Come funziona il nodo Loop Over Items in n8n?

Il nodo n8n Loop Over Items (Split in Batch) funziona dividendo un elenco di elementi in arrivo in batch più piccoli e gestibili ed elaborandoli uno alla volta.

Definendo una dimensione del batch, puoi controllare quanti elementi attraversano il tuo flusso di lavoro in ogni iterazione.

Ecco un’analisi dettagliata di come funziona:

  1. Il nodo Loop Over Items (Split in Batches) suddivide un array di elementi di input in batch in base alle dimensioni definite, ad esempio un elemento per batch.
  2. Ogni batch viene quindi passato al nodo connesso successivo, che esegue l’azione desiderata, come l’invio di un’email o una richiesta API.
  3. Dopo l’elaborazione di un batch, il flusso di lavoro torna al nodo Loop Over Items per continuare l’elaborazione del set di elementi successivo.
  4. Questa operazione si ripete automaticamente fino all’elaborazione di tutti i batch.

Il nodo Loop Over Items elabora solo l’elenco di elementi che riceve e poi si arresta, quindi non devi preoccuparti che continui a ripetere l’operazione all’infinito.

Ma se lo usi per gestire dati impaginati, ad esempio per recuperare le pagine da un’API, devi aggiungere una logica condizionale, come un nodo If, per verificare se ci sono altre pagine.

Questa condizione indica al flusso di lavoro quando interrompersi, impedendogli di ripetere l’operazione su pagine vuote.

Quando dovresti usare il nodo Loop Over Items?

È consigliabile utilizzare il nodo Loop Over Items quando è necessario suddividere i dati in blocchi più piccoli ed elaborare gli elementi uno alla volta.

Questo processo è particolarmente utile per set di dati di grandi dimensioni, quando ogni elemento richiede un’azione individuale o quando si desidera controllare il numero di elementi elaborati in ogni iterazione.

Esempi di utilizzo del nodo Loop Over Items includono:

  • Invio di singole email o messaggi a ciascun contatto in un elenco.
  • Esecuzione di chiamate API separate per ogni voce in un set di dati, ad esempio per l’aggiornamento dei record dei clienti.
  • Elaborazione dei record da un foglio di calcolo o da un database uno alla volta, assicurando che ogni riga venga gestita individualmente.
  • Gestione delle risposte API impaginate per recuperare tutti i dati disponibili da un’API tramite più richieste.
  • Generazione e invio di report o fatture personalizzati per ciascun cliente in un elenco.
  • Monitoraggio dello stato di più server o siti web verificandoli singolarmente e registrandone i risultati.

Consiglio dell’esperto

Il nodo Loop Over Items (Split in Batches) è comunemente utilizzato per un numero fisso di batch, simile a un ciclo for nel mondo della programmazione. Viene utilizzato quando si desidera eseguire un’azione specifica un numero di volte prestabilito prima di passare al passaggio successivo.

Editor

Minijus Savickas

Product Manager di VPS

Come si esegue il looping in n8n?

Per eseguire un loop sugli elementi in n8n, combina diversi nodi per elaborare ogni elemento singolarmente in un elenco.

Loop Over Items (Split in Batches) è il nodo principale per questo scopo, ma lo abbinerai ad altri nodi, come Edit Fields (Set) per preparare i dati, HTTP Request per interagire con servizi esterni e If per aggiungere logica o definire condizioni di arresto.

Una struttura generale per eseguire un loop sugli elementi è la seguente:

  1. Input: inizia con un nodo che fornisce una fonte dati, come Edit Fields (Set) o Fogli Google.
  2. Slit Out (facoltativo): aggiungi questo nodo se il nodo di input non riesce a dividere i dati in singoli elementi.
  3. Loop: usa il nodo Loop Over Items (Split in Batches) per dividere l’elenco in batch più piccoli, in genere un elemento per batch (o più, a seconda delle esigenze).
  4. Processo: aggiungi un nodo di elaborazione, ad esempio HTTP Request, se devi interagire con servizi esterni o altri nodi per strumenti di terze parti, a seconda del tuo flusso di lavoro.
  5. If o Wait (facoltativo): usa il nodo If per applicare condizioni o gestire la paginazione e aggiungi Wait per mettere in pausa dopo un’iterazione prima di continuare.
  6. Fine: il ciclo si completa automaticamente una volta elaborati tutti gli elementi.

Ora esploriamo tre esempi pratici di casi d’uso per vedere come funziona questa configurazione in scenari reali.

Invio di email in blocco in batch controllati

In questo scenario di esempio hai 100 indirizzi email e vuoi inviare messaggi in gruppi di cinque alla volta, con una pausa di cinque minuti tra un gruppo e l’altro.

Perché è necessario il looping?

I fornitori di servizi di posta elettronica applicano rigidi limiti di velocità alle email in uscita. L’invio di 100 email contemporaneamente può superare questi limiti, causando errori o sospensioni temporanee dell’account.

Creare loop con ritardi tra i batch aiuta a rispettare questi limiti, a mantenere una reputazione di invio legittima e a ridurre il rischio che le email vengano contrassegnate come spam.

Istruzioni per inviare email in blocco in batch controllati in n8n:

  1. Inizia con Manual Trigger

Trascina il nodo Manual Trigger sulla tela per avviare il flusso di lavoro.

  1. Prepara la lista di email

Usa il nodo Edit Fields (Set) per creare un array di 100 indirizzi email fittizi. Imposta quanto segue:

  • Nome: email
  • Tipo: array
  • Valore: ={{ Array.from({length: 100}, (_, i) => email${i + 1}@example.com) }}

Se hai già connesso n8n a Fogli Google, puoi estrarre indirizzi email reali da un foglio di calcolo utilizzando il nodo Fogli Google.

  1. Dividi l’array in singoli elementi

Aggiungi un nodo Split Out e imposta il campo su email per separare l’array in singoli elementi con le email.

  1. Raggruppa gli elementi in batch

Aggiungi il nodo Loop Over Items (Split in Batches) e imposta la dimensione del batch su 5. In questo modo le email verranno elaborate in gruppi di cinque.

  1. Invia le email

Utilizzare il nodo Send email per configurare le seguenti impostazioni:

  • Da email: indirizzo email del mittente
  • A email: ={{ $json.emails }}
  • Oggetto: “Email di prova”
  • Formato email: testo
  • Testo: “Ehi, questa è un’email di prova inviata con n8n.”

Imposta inoltre le credenziali SMTP per il tuo fornitore di posta elettronica.

  1. Pausa tra i batch

Aggiungi un nodo Wait e imposta l’unità su minuti con un valore di 5, creando una pausa di cinque minuti dopo ogni batch.

  1. Imposta il loop fino a quando tutte le email non vengono inviate

Collega il nodo Wait a Split in Batch per continuare il loop finché tutte le email non saranno elaborate.

Gestione di grandi set di dati con elaborazione in batch

Immagina di dover elaborare un ampio set di dati rispettando limiti di velocità o vincoli di sistema. Questo flusso di lavoro elabora 500 record cliente in lotti da 10.

Perché è necessario il looping?

Molte API impongono limiti di velocità, come 100 richieste al minuto. L’elaborazione simultanea dei 500 record supera questi limiti, causando errori.

Il looping suddivide i dati in blocchi più piccoli, prevenendo sovraccarichi su n8n e sul sistema di destinazione e garantendo al contempo un’elaborazione più fluida e affidabile.

Istruzioni per gestire grandi set di dati con l’elaborazione in batch in n8n:

  1. Imposta il trigger del flusso di lavoro

Usa il nodo Manual Trigger per iniziare il processo.

  1. Genera record dei clienti

Utilizzare il nodo Code per creare 500 record di clienti fittizi utilizzando il codice JavaScript riportato di seguito:

const customers = [];
for (let i = 1; i <= 500; i++) {
customers.push({
id: i,
name: `Customer ${i}`,
email: `customer_${i}@example.com`,
registration_date: new Date().toISOString().slice(0, 10)
});
}
return customers.map(customer => ({json: customer}));

Se disponibili, puoi utilizzare dati reali dei clienti tramite il nodo Fogli Google o PostgreSQL.

  1. Dividi i dati in batch

Aggiungi il nodo Split in Batches, imposta la dimensione del batch su 10 e disattiva l’opzione Reset.

  1. Inserisci una pausa tra i lotti

Inserisci il nodo Wait dopo Split in Batches per introdurre un ritardo tra i batch. Imposta l’intervallo su 90 secondi, o la quantità che preferisci.

  1. Imposta le azioni di elaborazione

Aggiungi il nodo No Operation, do nothing come segnaposto. In seguito, sostituiscilo con un nodo HTTP Request per inviare ogni batch di clienti all’API di destinazione, come un CRM o un servizio di posta elettronica.

  1. Crea il loop

Ricollega il nodo No Operation, do nothing a Split in Batches, in modo che il ciclo continui finché tutti i batch non saranno stati elaborati.

Elaborazione sequenziale di più feed RSS

Questo scenario presuppone che si voglia impostare un sistema automatizzato che recuperi contenuti da più fonti RSS (Hostinger Tutorials e Blog) in sequenza, con ritardi controllati.

Perché è necessario il looping?

Effettuare richieste simultanee a più feed RSS, provenienti dallo stesso dominio o da domini diversi, può essere erroneamente considerato un comportamento aggressivo.

Il loop con ritardi aiuta a gestire le risorse del server, riduce il rischio di blocco IP o di limitazione della velocità e garantisce un accesso affidabile ai feed.

Istruzioni per elaborare più feed RSS in sequenza in n8n:

  1. Avvia il flusso di lavoro

Avvia il flusso di lavoro utilizzando il nodo Manual Trigger.

  1. Definisci gli URL dei feed RSS

Aggiungi il nodo Code per definire gli URL del feed con questo codice JavaScript:

return [
{ json: { url: 'https://www.hostinger.com/tutorials/feed' } },
{ json: { url: 'https://www.hostinger.com/blog/feed' } }
];

Modifica o aggiungi altri URL secondo necessità.

  1. Dividi i feed in singoli elementi

Nel nodo Split in Batches, imposta la dimensione del batch su 1 per elaborare un feed alla volta.

  1. Leggi i feed RSS
    • Collega il nodo RSS Read dopo Split in Batches.
    • Imposta il parametro URL su ={{ $json.url }} per utilizzare l’URL del feed dinamico di ogni batch.
  2. Aggiungi un ritardo tra le richieste

Imposta un ritardo di 15 minuti nel nodo Wait per evitare di inviare richieste troppo rapidamente.

  1. Crea il loop

Ricollega il nodo Wait al nodo Split in Batches per continuare a elaborare tutti i feed.

Quali sono i migliori consigli per Loop Over Items in n8n?

Di seguito sono elencate alcune migliori pratiche da seguire quando si esegue un nodo Loop Over Items in n8n per evitare problemi e mantenere puliti i flussi di lavoro:

  • Usa il nodo Split Out quando l’input è un singolo array JSON che non è stato suddiviso in singoli elementi.
  • Imposta il nodo Loop Over Items (Split in Batches) su una dimensione dei batch pari a 1 per l’elaborazione articolo per articolo oppure aumentarla se la gestione in blocco è adatta al tuo caso.
  • Ricollega sempre il loop dal nodo di elaborazione a Loop Over Items (Split in Batches) per continuare finché non sono stati gestiti tutti gli elementi.
  • Definisci una condizione di uscita chiara per evitare loop infiniti, soprattutto quando lavori con la logica di paginazione o di ripetizione fino a quando non lo fai.
  • Evita loop non necessari, perché molti nodi n8n supportano già input di array ed elaborano automaticamente ogni elemento.
  • Rispetta i limiti di velocità delle API aggiungendo un nodo Wait tra le richieste per evitare limitazioni o blocchi.
  • Mantieni il tuo loop snello. Meno nodi ci sono al suo interno, migliori saranno le prestazioni e la manutenibilità.

Dove dovresti ospitare i tuoi flussi di lavoro di n8n?

Se stai creando flussi di lavoro n8n che eseguono loop su più elementi, pianificano attività o vengono eseguiti in produzione, hai bisogno di un ambiente stabile e sempre attivo.

L’esecuzione di n8n in locale funziona per i test, ma presenta notevoli svantaggi: il computer deve rimanere acceso e le attività pianificate non andranno a buon fine se il dispositivo entra in modalità sospensione o perde l’accesso a internet.

Per prestazioni e uptime affidabili, ti consigliamo di ospitare n8n su un server privato virtuale (VPS). Un VPS mantiene i tuoi flussi di lavoro attivi 24 ore su 24, 7 giorni su 7, consente l’accesso remoto sicuro e si adatta alle tue esigenze di automazione.

Con l’hosting di n8n di Hostinger – a partire da €4.99/mese – n8n e tutti i componenti necessari sono preinstallati, quindi non è necessario installare tutto manualmente.

È possibile eseguire automazioni avanzate senza interruzioni, grazie al supporto di hardware e infrastrutture potenti che garantiscono un uptime del 99,9%.

Scalare è semplice. Con un massimo di 8 core vCPU, 32 GB di RAM, 400 GB di storage NVMe e 32 TB di larghezza di banda, puoi iniziare dalle basi e aggiornare successivamente con pochi click man mano che i tuoi flussi di lavoro crescono.

Cosa c’è da imparare dopo aver eseguito un loop sugli elementi in n8n?

Ora che abbiamo spiegato come eseguire il loop sugli elementi in n8n, puoi iniziare a utilizzare uno dei pattern più potenti per creare flussi di lavoro dinamici e flessibili.

Che tu stia inviando email personalizzate, elaborando dati API impaginati o sincronizzando voci tra strumenti, il looping ti offre il pieno controllo per automatizzare le attività batch per batch.

Prova azioni avanzate per scalare, ottimizzare e combinare il looping con altre logiche, come:

  • Unisci i risultati elaborati utilizzando il nodo Merge.
  • Attiva flussi di lavoro di follow-up o chiamate API in base all’output del loop.
  • Memorizza o analizza i dati in database, fogli di calcolo o dashboard.
  • Invia notifiche di riepilogo tramite email, Slack o altri canali.
  • Pulisci i file temporanei o le voci di registro per un monitoraggio futuro.

Inoltre, per creare un’automazione più intelligente, esplora altri esempi di flussi di lavoro di n8n per scoprire come il looping si adatta a configurazioni più ampie e avanzate.

Author
L'autore

Angelica Galeone

Angelica è una traduttrice freelance specializzata in contenuti per il web da sempre amante delle lingue. Laureata in design della comunicazione, lavora anche come graphic designer e punta ad approfondire ogni mezzo che possa trasmettere un messaggio. Nel tempo libero, si dedica a scoprire nuove cose, disegnare e giocare ai videogiochi. Seguila su LinkedIn.