Salta el contingut

Nodes de Lògica

Els nodes de lògica controlen el flux d'execució del workflow. Determinen quin camí seguiran les dades, com es combinaran de branques separades, o com es repetiran operacións.

Node IF

El node IF fa una bifurcació binaria: els items van per la branca true o per la branca false segons una condicio.

flowchart LR
    A[Nodes anteriors] --> B{IF}
    B -->|true| C[Branca Si]
    B -->|false| D[Branca No]

Configuració

El node IF permet definir una o més condicions:

Operand 1 Operació Operand 2
{{ $json.nota }} Number → Greater or Equal 5
{{ $json.email }} String → Contains @gmail.com
{{ $json.actiu }} Boolean → Is True -
{{ $json.data }} Date & Time → After 2025-01-01

Combinacio de condicions

Pots combinar multiples condicions amb AND (totes han de ser certes) o OR (n'hi ha prou que una sigui certa).

Exemple

flowchart LR
    A[Llegir comandes] --> B{IF: import > 100\nI metode = tarjeta}
    B -->|true| C[Processar pagament\nprioritat alta]
    B -->|false| D[Processar pagament\nnormal]

Node Switch

El node Switch fa una bifurcació multiple: en lloc de dues branques (true/false), en pot tenir moltes.

flowchart LR
    A[Dades] --> B{Switch}
    B -->|cas 1| C[Ruta A]
    B -->|cas 2| D[Ruta B]
    B -->|cas 3| E[Ruta C]
    B -->|default| F[Ruta per defecte]

Quan usar Switch vs IF

Situacio Node recomanat
2 opcions (si/no) IF
3+ opcions basades en el valor d'un camp Switch
Condicions complexes independents IF encadenat

Configuració

Al node Switch:

  1. Mode:
  2. Rules: defineix les condicions manualment
  3. Expressions: usa una expressió per determinar la branca
  4. Per a cada branca: defineix el nom i la condicio

Exemple amb mode Expressions:

{{ $json.pla }}
Branques: bàsic, premium, enterprise, default

Node Merge

El node Merge combina dades de dues o mes branques.

flowchart LR
    A[Branca A] --> C{Merge}
    B[Branca B] --> C
    C --> D[Continuacio]

Modes del Merge

Mode Descripció Us
Append Afegeix tots els items de totes les branques en una sola llista Unir resultats de dues branques
Merge By Index Combina items pel seu index (item 1 amb item 1, item 2 amb item 2...) Enriquir dades de la mateixa llista
Merge By Key Combina items que comparteixen el mateix valor d'un camp clau Join de dues fonts de dades
Wait Espera que totes les branques acabin, després envia els items Sincronitzar branques paral·leles

Exemple d'us: Append

flowchart LR
    A([Trigger]) --> B{IF: Premium?}
    B -->|Si| C["Gmail\nCorreu premium"]
    B -->|No| D["Gmail\nCorreu standard"]
    C --> E[Merge\nAppend]
    D --> E
    E --> F["Google Sheets\nRegistrar enviament"]

Node Loop Over Items

El node Loop Over Items (anteriorment "SplitInBatches") permet processar items en lotes o implementar bucles.

Mode: Batches

Processa un grup d'items cada vegada. Útil per respectar rate límits d'APIs:

flowchart LR
    A[100 items] --> B[Loop\n10 en 10] --> C[API\nExterna]
    C -->|mes items| B
    C -->|acabat| D[Continue]

Configuració: - Batch Size: quants items processar a cada iteració (ex: 10)

Exemple complet amb Loop i Wait

Per enviar 100 correus sense superar el límit de Gmail (500/dia, 100/hora):

flowchart LR
    A[Sheet: 100 alumnes] --> B[Loop\n10 en 10]
    B --> C[Gmail\nEnviar]
    C --> D[Wait\n5 segons]
    D -->|seguent lot| B
    D -->|acabat| E[Fi]

Combinant nodes de lògica

En workflows reals, combinaras multiples nodes de lògica:

flowchart TD
    A([Webhook]) --> B{IF: dades\nvalides?}
    B -->|No| ERR[Respondre\nerror 400]
    B -->|Si| C{Switch: tipus}
    C -->|client_nou| D[Crear a CRM]
    C -->|client_existent| E[Actualitzar a CRM]
    C -->|default| F[Log: tipus\ndesconegut]
    D --> G[Merge]
    E --> G
    G --> H[Gmail\nNotificacio]
    H --> I[Respondre\nOK 200]

Miniactivitat ACN8N10

Crea un workflow que processi una llista de 10 temperatures (en Celsius) i les classifiqui en: - Fred: < 10°C - Temperat: 10°C a 25°C - Calor: > 25°C

Usa un node Switch per classificar i un Merge Append per reunir tots els resultats en una llista final ordenada per temperatura.