Introducción

Cada flujo de trabajo del mundo real finalmente se encuentra con una bifurcación: enviar una notificación solo si un trato supera los $10,000, procesar un pedido de forma diferente según su estado, omitir un paso cuando un campo está vacío. n8n maneja todo esto a través del branching condicional, enrutando la ejecución por diferentes caminos según los datos reales que fluyen a través de tu flujo de trabajo.

n8n te ofrece dos nodos para esto: IF para decisiones binarias sí/no y Switch cuando necesitas más de dos resultados. Saber cuál usar y cómo configurar las condiciones con precisión es lo que separa flujos de trabajo frágiles de aquellos que aguantan en producción.

flowchart mostrando un único nodo de entrada que se divide en dos caminos mediante un nodo IF — un camino etiquetado TRUE, otro FALSE, cada uno conduciendo a un nodo de acción diferente

El nodo IF: Rama binaria

El nodo IF evalúa una o más condiciones contra tus datos de entrada y enruta cada elemento a la salida TRUE o a la salida FALSE. Nada va a ambas — cada elemento elige exactamente un camino.

Para configurarlo, seleccionas un valor de tus datos entrantes (generalmente una referencia de campo como la sintaxis de expresiones), eliges un operador y defines un valor de comparación. n8n admite una gama de operadores por tipo de dato:

Para cadenas: igual, distinto, contiene, empieza por, termina por, coincidencia con expresiones regulares. Para números: igual, distinto, mayor que, menor que, mayor o igual, menor o igual. Para booleanos: es verdadero, es falso. Para arreglos y objetos: está vacío, no está vacío.

Aquí tienes un ejemplo simple: un webhook recibe datos de pedido y quieres enrutar pedidos de alto valor a un canal especial de Slack.

En el nodo IF, deberías establecer: Valor 1 — expresión que hace referencia al campo de cantidad de la orden Operación — Mayor que Valor 2 — 10000

Los elementos donde la cantidad supera 10.000 salen por la salida TRUE. Todo lo demás sale por FALSE. Luego conectas cada salida a sus propios nodos aguas abajo.

Puedes apilar múltiples condiciones dentro de un solo nodo IF usando AND (todos deben pasar) o OR (cualquiera que pase es suficiente). Ten en cuenta que las cadenas AND pueden volverse difíciles de leer después de tres condiciones; en ese punto, dividir en nodos IF secuenciales o cambiar a Switch suele ser más limpio.

El Nodo Switch: Múltiples Resultados

Cuando tienes más de dos rutas posibles, apilar nodos IF se vuelve desordenado muy rápido. Switch te permite definir varias reglas, cada una con su propia salida, evaluadas de arriba hacia abajo. La primera regla que coincida gana, y el elemento sale por esa salida.

Switch también tiene una salida de Alternativa (Fallback) — los elementos que no coinciden con ninguna regla aterrizan aquí. Conecta siempre algo a la salida de fallback, incluso si solo es un nodo No Operation, para saber qué pasó con los elementos no coincidentes.

Un ejemplo práctico: recibes tickets de soporte y quieres enrutarles por prioridad.

json
Rule 1: priority equals "critical" → Output 0 → PagerDuty node
Rule 2: priority equals "high" → Output 1 → Slack node
Rule 3: priority equals "low" → Output 2 → Email node
Fallback → Output 3 → Log to spreadsheet

En n8n configuras cada regla de la misma manera en que configuras una condición IF — elige un campo, selecciona un operador, establece un valor de comparación. La diferencia es que cada regla obtiene su propio conector de salida numerado en el nodo.

diagrama de flujo que muestra el nodo Switch con una entrada y cuatro ramas de salida etiquetadas como critical (crítico), high (alto), low (bajo) y fallback, cada una conectada a un nodo de acción diferente

Una sutileza que vale la pena saber: por defecto, Switch enruta cada elemento solo a la primera regla que coincida. Si habilitas la opción "Enviar datos a todas las salidas que coincidan" (Send data to all matching outputs), un elemento puede salir por múltiples salidas simultáneamente. Esto es útil, pero puede provocar acciones duplicadas aguas abajo si no lo esperas — déjalo desactivado a menos que necesites explícitamente un comportamiento de fan-out.

Errores comunes

Los desajustes de tipo causan fallos silenciosos más que cualquier otra cosa. Si tu campo entrante contiene la cadena "1500" y la comparas con Mayor que 1000 usando un operador Number, n8n puede no convertir automáticamente la cadena dependiendo de dónde provengan los datos. Usa el nodo Set o una expresión como parseInt() para normalizar los tipos antes de ramificar.

Un otro error común es dejar sin conectar la salida FALSE de un nodo IF o la salida de Reemplazo (Fallback) de un nodo Switch. n8n no lanzará un error; esos elementos simplemente desaparecen de la ejecución. En un flujo de trabajo que procesa registros de clientes, caídas silenciosas como estas pueden ser difíciles de depurar más adelante. Conecta cada salida a algo, incluso un paso de registro mínimo.

También ten cuidado con campos vacíos o nulos. Comparar un valor nulo con "equal a cierta cadena" se evaluará como false, lo cual suele ser lo que quieres, pero "está vacío" y "no está vacío" se comportan de manera diferente a "igual a cadena vacía". Prueba con payloads nulos reales, no solo con cadenas vacías.

Resumen

Usa el nodo IF cuando tu decisión es binaria: TRUE o FALSE, sí o no, coincidencia o no coincidencia. Usa Switch cuando tienes tres o más resultados distintos y quieres rutas de salida limpias y separadas sin encadenar múltiples nodos IF. En ambos casos, siempre maneja explícitamente la ruta que no coincide, normaliza los tipos de datos antes de comparar y prueba con entradas de borde (nulos, cadenas vacías, tipos inesperados) antes de implementar en producción. Estos dos nodos son la base de cualquier flujo de trabajo que realiza lógica condicional real.

Punto de control de la lección

1. ¿Cuáles son las dos rutas de salida de un nodo IF en n8n?

2. ¿Cuándo deberías preferir el nodo Switch sobre encadenar múltiples nodos IF?

3. En un nodo Switch, ¿qué sucede con los elementos que no coinciden con ninguna regla definida?

4. ¿Cuál es el riesgo de dejar el output FALSE de un nodo IF sin conexión?

5. Tienes un campo que llega como la cadena "1500" y lo comparas con Mayor que 1000 usando un operador Number. ¿Cuál es el enfoque más seguro?

6. ¿Qué hace habilitar "Enviar datos a todas las salidas que coinciden" en un nodo Switch?

7. Al combinar múltiples condiciones dentro de un único nodo IF usando lógica AND, ¿qué se requiere para que un ítem tome la ruta TRUE?