Guide

Aggiungere Logica al Flusso: Come Usare il Nodo IF in n8n

Immagina di trasformare ogni automazione in una macchina decisionale precisa: inviare un’email solo ai lead “caldi”, creare un task quando il budget supera una soglia, o rimandare controlli quando non è orario d’ufficio. In tutti questi casi, il nodo If n8n è il tuo alleato: il “semaforo” che crea uno split condizionale in due rami e decide cosa succede dopo. In questo articolo scoprirai come configurarlo al meglio per decisioni binarie chiare, robusti filtri e validazioni, e un routing condizionale n8n che non ti tradisce. Partiremo dai fondamentali — rami true/false e operatori di confronto n8n — e arriveremo a combinazioni di condizioni AND/OR n8n, uso avanzato delle espressioni con n8n Expression Editor e interazione con Merge e Switch. Se lavori in marketing e vuoi accelerare la produttività, qui troverai esempi pronti, best practice e snippet di configurazione che puoi copiare e incollare. Al termine saprai costruire workflow affidabili con il nodo If n8n e orchestrare decisioni che migliorano conversioni e tempi di risposta.

📚 Nuovo a n8n? Parti dalla guida completa: cos’è n8n e come funziona.

[IMG: Schermata del canvas di n8n con un nodo If che biforca in True/False]

Perché il nodo If n8n è il “decision maker” del tuo workflow

Il nodo If n8n introduce un controllo di flusso binario: ogni item che lo attraversa viene valutato rispetto a una o più condizioni, e poi prosegue sul ramo true (Output 0) o sul ramo false (Output 1). Questa capacità di routing condizionale n8n è cruciale per i marketer: ti consente di creare flussi che reagiscono ai dati (punteggio lead, canale di acquisizione, budget, stato campagne) senza codice, con regole leggibili e facili da manutenere. A differenza di nodi di trasformazione dati, il nodo If n8n non modifica i contenuti: decide il percorso. È il tassista del workflow, non il meccanico.

Cosa imparerai qui:

  • Come impostare filtri e validazioni n8n per scartare record incompleti e inviare avanti solo ciò che conta.
  • Come definire operatori di confronto n8n su data types n8n (string, number, date, boolean, array) e quando combinare condizioni AND/OR n8n.
  • Come usare le espressioni n8n expression editor per “pescare” dati dai nodi precedenti con $json e $node.
  • Come effettuare un conditional split n8n e ricongiungere i rami con Merge con If n8n in modo sicuro.
  • Quando preferire Switch vs If per più di due esiti.

Insight unico: il vero vantaggio del nodo If n8n sta nell’evitare il “rumore” a valle. Filtrare presto significa risparmiare chiamate API, costi e tempo di esecuzione, oltre a mantenere pulita la reportistica. Pianifica lo split condizionale dove i dati diventano affidabili — il risparmio operativo si somma run dopo run.

[IMG: Rappresentazione concettuale del flusso con If che separa “Lead caldi” e “Lead freddi”]

Rami True/False e conditional split n8n: come funziona davvero

Il nodo If n8n valuta ogni item in ingresso e lo instrada su uno dei due rami:

  • True: primo output (Output 0)
  • False: secondo output (Output 1)

Non c’è “terza via”: il nodo garantisce che ogni item finisca su uno dei due rami. Questo è importante per la prevedibilità del workflow: non perderai item per strada. In un classico conditional split n8n, ad esempio, potresti inviare i lead con score ≥ 70 al ramo true (escalation a vendite) e gli altri al ramo false (nurturing). Ciò ti permette di orchestrare esperienze personalizzate e amplificare la produttività del team marketing.

Esempio pratico:

  • Ramo true: crea una card su CRM o invia un alert Slack se la priorità è alta.
  • Ramo false: arricchisci il contatto, crea una task di follow-up o invia un’email di nurturing.

Suggerimento operativo:

  • Tratta i rami come due micro-processi con obiettivi chiari. Nomina i nodi in modo descrittivo (“If: lead score”, “True: Escalation vendite”, “False: Nurturing”) per ridurre errori e migliorare la leggibilità del tuo workflow.

[IMG: Dettaglio dei due rami True/False con note descrittive “Escalation” e “Nurturing”]

Impostare condizioni: campi, data types n8n e operatori di confronto n8n

Il cuore del nodo If n8n è la definizione delle condizioni. Puoi confrontare diversi tipi di dato con operatori mirati:

  • Stringhe: uguale, contiene, (spesso disponibili anche inizia/termina con, regex).
  • Numeri: uguale, maggiore di, minore di.
  • Date & Time: è prima/dopo.
  • Boolean: vero/falso.
  • Array e oggetti: esistenza proprietà, lunghezza, contiene elemento/chiave (a seconda della configurazione).

Per marketer, i casi ricorrenti includono confronto stringhe n8n (es. canale == “ads”), confronto numeri e date n8n (budget > soglia, evento dopo una certa data), e booleani (isActive == true). Ricorda: il nodo esegue il confronto per item, quindi assicurati che il campo esista — in caso contrario stabilisci un default a monte.

Esempio (uguaglianza su stringa):

  • Campo: status
  • Operatore di confronto n8n: equals
  • Valore: success

Snippet di configurazione (If: “status == success”):

{
  "name": "If: Status Success",
  "type": "n8n-nodes-base.if",
  "typeVersion": 1,
  "parameters": {
    "conditions": [
      {
        "operator": { "type": "string", "operation": "equals" },
        "leftValue": "={{ $json[\"status\"] }}",
        "rightValue": "success"
      }
    ],
    "combinator": "and"
  }
}

Note pratiche:

  • Se devi fare data cleansing (es. rimuovere spazi, trasformare in minuscolo), fallo prima con un Function Item o Set, così il nodo If n8n resta semplice e affidabile.
  • Per date, confronta timestamp coerenti (es. ISO 8601) e unifica i fusi orari a monte.

[IMG: Pannello del nodo If con un confronto su “status” e operatore equals]

Combinare condizioni AND/OR n8n: logica e impatto sul risultato

Il nodo If n8n consente di aggiungere più condizioni e di combinarle con un combinator AND/OR. Questo è potentissimo per definire segmentazioni precise senza dover annidare troppi nodi.

  • AND: tutte le condizioni devono essere vere per andare sul ramo true. Ideale per filtri stringenti (es. “lead_score ≥ 70” AND “country == IT”).
  • OR: basta una condizione vera per passare al ramo true. Utile per soglie alternative (es. “budget > 1000” OR “utmsource == partnervip”).

Esempio coerente per marketer:

  • Obiettivo: qualificare lead “hot” se (score ≥ 70 OR interesse == “demo”) AND email valida.
  • Strategia: due condizioni OR per hotness, poi un’altra condizione per validità email, e combinare con AND a livello superiore. In pratica, spesso conviene spezzare la logica in due If consecutivi o normalizzare i campi prima.

Snippet di configurazione (struttura multi-condizione):

{
  "name": "If: Qualifica Hot Lead",
  "type": "n8n-nodes-base.if",
  "typeVersion": 1,
  "parameters": {
    "conditions": [
      {
        "operator": { "type": "string", "operation": "equals" },
        "leftValue": "={{ $json[\"email_valid\"] }}",
        "rightValue": "true"
      },
      {
        "operator": { "type": "string", "operation": "equals" },
        "leftValue": "={{ $json[\"interest\"] }}",
        "rightValue": "demo"
      }
    ],
    "combinator": "and"
  }
}

Per includere logiche OR complesse, puoi:

  • Chaining: usare un If per “hotness” (OR), poi un secondo If per “email_valid” (AND).
  • Oppure modellare l’OR con un nodo Switch a monte e utilizzare If solo per l’ultimo vincolo.

Best practice nodo If:

  • Mantieni ogni If coeso (1 scopo logico). Se la condizione diventa difficile da leggere, suddividila in due nodi.
  • Documenta con nomi autoesplicativi e commenti sul canvas.

[IMG: Due nodi If concatenati: primo per hotness (OR), secondo per validazione email (AND)]

Espressioni con n8n Expression Editor: $json, $node e timing

Le espressioni permettono di referenziare dinamicamente valori dai dati correnti o da nodi precedenti:

  • Dal current item: {{ $json.property }} o nested {{ $json.parent.child.property }}
  • Da un nodo precedente: {{ $node[“NomeNodo”].json.property }}
  • Timestamp corrente: {{ $now }}

Esempi utili per marketer:

  • Prelevare il canale del lead: {{ $json.channel }}
  • Leggere un campo arricchito da un nodo precedente “Enrich CRM”: {{ $node[“Enrich CRM”].json.account_size }}
  • Timed offers: usare {{ $now }} per confronti orari nel nodo If n8n.

Snippet (uso in If con Expression Editor):

{
  "parameters": {
    "conditions": [
      {
        "operator": { "type": "string", "operation": "equals" },
        "leftValue": "={{ $node[\"Normalize\"].json.segment }}",
        "rightValue": "enterprise"
      }
    ],
    "combinator": "and"
  }
}

Consigli operativi:

  • Verifica sempre che i campi esistano. Se un campo può mancare, imposta un default nel nodo Set/Function a monte.
  • Mantieni coerenti i tipi: non confrontare stringhe con numeri; castali prima se necessario.
  • Evita dipendenze a catena fragili: se cambi il nome di un nodo, aggiorna le espressioni che lo referenziano.

[IMG: Finestra dell’Expression Editor con esempi $json e $node]

Switch vs If: quando scegliere l’uno rispetto all’altro

  • If: due rami, true/false. Ottimo per decisioni binarie, controllo “passa/non passa” e combinazioni di condizioni articolate con AND/OR.
  • Switch: più di due esiti. Perfetto quando instradi in base a un singolo campo “categorico” (es. “utm_source” → email, ads, partner) e vuoi un fallback per tutti i casi non mappati.

Caso marketing tipico:

  • Se devi ripartire una singola stream in “newsletter”, “promo”, “transactional”, “altro”, usa Switch vs If per semplicità e leggibilità.
  • Se devi costruire una regola di validazione articolata (più campi, condizioni combinate), usa il nodo If n8n.

Insight: combinare Switch per lo smistamento multi-categoria e If per i “gate” di qualità produce workflow chiari e facili da testare.

[IMG: Nodo Switch con tre uscite e un fallback, seguito da If per validazioni per ciascun ramo]

Merge con If n8n: riunire i rami senza sorprese

Dopo uno split, potresti voler ricongiungere i rami. Il nodo Merge offre più modalità:

  • Append: concatena gli item dei due ingressi in sequenza.
  • Wait (Wait for both): sincronizza, emettendo solo quando entrambi i rami sono arrivati.
  • Merge By Index (Merge By Position): abbina gli item per posizione (indice) nei due flussi.
  • Merge By Key: unisce per chiave comune (es. id), con controllo su cosa includere dall’uno/dall’altro o da entrambi.

Snippet (Merge By Key su “id”):

{
  "name": "Merge on ID",
  "type": "n8n-nodes-base.merge",
  "typeVersion": 1,
  "parameters": {
    "mode": "mergeByKey",
    "propertyName": "id",
    "outputDataFrom": "both"
  }
}

Best practice con Merge con If n8n:

  • Se i due rami eseguono azioni asincrone (API con tempi diversi), “Wait” garantisce sincronizzazione prima di procedere.
  • Se ogni item mantiene un id coerente su entrambi i rami, preferisci Merge By Key per unione robusta.
  • Se i due flussi sono positional (stesse dimensioni e ordine), Merge By Index è rapido ma fragile se l’ordine cambia.

Nota su differenze versione n8n v1:

  • Se provieni da workflow legacy, verifica con test di regressione la logica di branch/merge e l’allineamento degli item. In v1.0+ conviene esplicitare la modalità Merge (Wait/Key/Index) e aggiungere guard-rails (es. controlli di presenza chiave) per evitare risultati inattesi. Esegui run di prova su un campione rappresentativo.

[IMG: Esempio di due rami True/False che confluiscono in un nodo Merge configurato “mergeByKey”]

Use case per marketer: ricette pronte

  1. Filtrare errori o record incompleti
  • Obiettivo: inviare avanti solo record con email valida e consenso marketing.
  • Passi:
  • Nodo If n8n “Email e Consenso OK” con due condizioni (AND): email_valid == true, consent == true.
  • True → prosegui con attivazioni; False → logga o crea lista “da correggere”.
  1. Notifiche condizionali (Slack/Email)
  • Obiettivo: inviare Slack se priorità “alta”, altrimenti email di routine.
  • If: priority == “high” → ramo true (Slack), ramo false (Email).
  • Esempio condizione (equals su stringa) come nello snippet “Status Success”.
  1. Deduplicazione semplice
  • Obiettivo: scartare item con id già visto.
  • Strategia: a monte, recupera lista ID noti; poi If: id contenuto in lista? Se true → scarta/archivia; Se false → prosegui. Puoi realizzare il “contains” su array con una trasformazione a monte e un confronto booleano nel nodo If n8n.
  1. Business hours branch
  • Obiettivo: gestire richieste durante orario d’ufficio.
  • If: confronta {{ $now }} con intervallo orario (es. 09:00–18:00) usando due condizioni su date (isAfter start, isBefore end) e combinator AND. In alternativa, calcola a monte una flag isBusinessHours, e poi If su boolean.
  1. Escalation lead hot
  • If: (score ≥ 70 OR interest == “demo”) AND email_valid == true → True: invia a Sales; False: nurturing.

Screenshot placeholder per 2 casi chiave:

  • [IMG: Configurazione If “Email e Consenso OK”]
  • [IMG: Branch “Business hours” con due condizioni data/ora e combinator AND]

Best practice nodo If: leggibilità, manutenzione, test

  • Nomi chiari: rinomina ogni If per lo scopo (“If: Score ≥ 70 & Demo”), così comprenderai il flusso a colpo d’occhio.
  • Una responsabilità per If: meglio due nodi puliti che uno solo intricato. Mantieni la logica lineare.
  • Normalizza i dati prima: usa Set/Function per uniformare maiuscole/minuscole, formati data, default su campi mancanti.
  • Test incrementali: prova rami true/false con dati di esempio. Aggiungi nodi “NoOp” o commenti visivi per controllare il passaggio degli item.
  • Merge intenzionale: dopo uno split, scegli una modalità Merge che rispecchi la natura dei tuoi dati (Wait/Index/Key) e documentala nel nome del nodo.
  • Evita accoppiamenti fragili: se usi {{ $node[“NomeNodo”]… }}, valuta dipendenze esplicite e aggiornale in caso di rinomina del nodo sorgente.

[IMG: Esempio di canvas annotato con nomi chiari e commenti su ciascun If]

Quick Takeaways

  • Il nodo If n8n crea uno split binario e garantisce che ogni item vada su true o false.
  • Scegli operatori e data types n8n appropriati per confronti stringhe, numeri, date e boolean.
  • Combina condizioni con AND/OR n8n per regole precise; spezza logiche complesse in più If.
  • Usa l’Expression Editor con $json, $node e {{ $now }} per confronti dinamici e contestualizzati.
  • Per più di due esiti, Switch vs If: usa Switch per routing multi-categoria con fallback.
  • Ricongiungi i rami con Merge in modo intenzionale (Wait, By Index, By Key) per evitare allineamenti errati.
  • Testa con dati reali e rinomina i nodi per mantenere leggibilità e manutenzione nel tempo.

Conclusione

Aggiungere logica al flusso con il nodo If n8n è il passo che separa automazioni “statiche” da pipeline intelligenti e ad alto impatto. Confronti corretti, combinazioni AND/OR n8n e un uso consapevole delle espressioni ti permettono di filtrare i dati in ingresso, applicare regole di business e indirizzare gli item sui rami giusti. Integrando Switch per i casi multi-esito e un Merge intenzionale per ricongiungere i flussi, costruisci workflow robusti, trasparenti e facili da manutenere. Per i marketer, ciò significa maggiore velocità nel ciclo campagna → analisi → ottimizzazione e minori costi dovuti a step inutili o chiamate API superflue. Il suggerimento finale: parti semplice, documenta ogni decisione e aggiungi complessità solo quando ti serve. Se vuoi portare la tua produttività al livello successivo, prendi uno use case tra quelli proposti (validazione contatti, notifiche condizionali o business hours) e implementalo subito con il nodo If n8n. In poche iterazioni avrai un sistema decisionale che moltiplica i risultati senza moltiplicare lo sforzo.

FAQ

  1. Cos’è il nodo If n8n e quando usarlo?
  • È un nodo di controllo di flusso con due rami (true/false) per creare un conditional split n8n. Usalo per decisioni binarie, filtri e validazioni n8n, e come “gate” prima di step costosi.
  1. Come funzionano le condizioni AND/OR n8n nel nodo If?
  • Puoi definire più condizioni e collegarle con un combinator AND o OR. AND richiede che tutte siano vere; OR basta che una lo sia. Per logiche complesse, è spesso più leggibile concatenare due nodi If.
  1. Quali operatori di confronto n8n e data types n8n posso usare?
  • String (equals, contains, regex), Number (equal, greater/less), Date & Time (is before/after), Boolean (true/false), Array/Object (presenza proprietà o elementi, a seconda della configurazione). Scegli l’operatore coerente col tipo e normalizza i dati a monte.
  1. Switch vs If: quale scegliere?
  • If per decisioni binarie e regole composite; Switch per più di due esiti basati su un singolo campo (con fallback). Spesso si combinano: Switch per smistamento, If per validazione qualità.
  1. Come riunisco i rami dopo uno split con Merge con If n8n?
  • Usa Merge con modalità adatte: Wait per sincronizzare, Merge By Index se i flussi sono posizionali, Merge By Key per unione su id. Imposta propertyName e outputDataFrom in “mergeByKey” per includere i dati da entrambi i rami.

Hai trovato utile questa guida sul nodo If n8n? Dimmelo con un commento: quale decisione vuoi automatizzare per prima nel tuo funnel? Condividi l’articolo con il tuo team marketing e confrontatevi su uno use case da implementare oggi stesso!

Articoli correlati

Vuoi automazioni AI su misura per la tua azienda?
Scopri la consulenza →

Partiamo da un processo che oggi vi costa ore

Su WhatsApp risponde una persona, di solito in giornata. Se preferisci scrivere con calma, c’è il modulo qui sotto.

Scrivici su WhatsApp

Raccontaci cosa vuoi automatizzare

Ti rispondiamo noi, di solito in giornata.

Raccontaci cosa vi fa perdere tempo

Due righe bastano. Vi diciamo se si automatizza, come, e quanto costa. Se non conviene, lo diciamo.