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:
- Mode:
- Rules: defineix les condicions manualment
- Expressions: usa una expressió per determinar la branca
- Per a cada branca: defineix el nom i la condicio
Exemple amb mode Expressions:
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.