Cambiar tema

Crear flujos de trabajo en n8n: de nodos a escenarios de automatización

Easton editorial illustration: one central automation rail with trigger, transform, and action nodes

Otra vez copiando datos a mano. De la tabla de Notion a Dida Todo, y de ahí al documento de Lark: más de 20 registros por sincronizar. El teclado no paraba de sonar. Lo hice la semana pasada, y la anterior también; parece que no ha parado desde principios de año.

Odio el trabajo repetitivo. No es pereza (bueno, un poco sí), sino que este copiar y pegar mecánico no requiere ningún esfuerzo mental y, sin embargo, hay que hacerlo. Luego descubrí n8n, una herramienta de automatización de flujos de trabajo de código abierto. Tras unos días probándola, conseguí delegar al sistema toda esa sincronización de datos que me tenía harta.

En este artículo hablamos de cómo usar n8n: desde el concepto de nodo hasta escenarios reales, con los tropiezos que me encontré por el camino. Si también sufres con el trabajo repetitivo, quizá encuentres alguna idea útil.


1. ¿Qué es n8n? Conceptos básicos

La verdad es que la primera vez que vi la interfaz de n8n me quedé perdida. El lienzo lleno de cuadraditos conectados por líneas que no entendía; no sabía por dónde empezar. Con el tiempo entendí que esos cuadraditos son nodos, y que conectarlos forma un flujo de trabajo.

1.1 Código abierto, visual y low-code

n8n se define como una «herramienta de automatización de código abierto». En la práctica, te permite conectar distintos servicios mediante arrastrar y soltar para automatizar tareas. Seguro que has oído hablar de Zapier o IFTTT; también hacen automatización, pero n8n tiene varias diferencias:

  • Código abierto y gratuito: puedes desplegarlo tú mismo y los datos quedan bajo tu control
  • Nodos abundantes: más de 400 nodos para APIs y servicios diversos
  • Edición visual: montas flujos arrastrando, sin escribir código (aunque también permite código)

Para mí, lo del código abierto importa. Algunos escenarios de automatización tocan datos sensibles, como llamadas a APIs internas de la empresa; en una plataforma en la nube como Zapier siempre hay cierta inquietud. Con n8n autodesplegado, el flujo de datos pasa por tu propio servidor y eso da tranquilidad.

1.2 Tipos de nodos: disparadores, acciones y lógica

Los nodos de n8n se agrupan en tres categorías. Entender esta clasificación hace mucho más fácil montar flujos después.

Nodos disparador (Trigger) — el punto de inicio del flujo.

Imagina un dominó: la primera ficha cae y el resto le sigue. El disparador es esa primera ficha. Los más habituales:

  • Schedule Trigger: ejecución programada, por ejemplo cada día a las 7:00
  • Webhook: activación externa, por ejemplo al recibir una petición HTTP
  • Manual Trigger: ejecución manual, pulsas un botón y arranca

Al principio usé Manual Trigger porque facilita la depuración: ejecutas cuando quieras. Cuando lo puse en producción, lo cambié por Schedule Trigger.

Nodos de acción (Action) — los que hacen el trabajo.

Estos nodos ejecutan operaciones concretas, por ejemplo:

  • HTTP Request: llamar a una API para obtener o enviar datos
  • Set: transformar datos, renombrar campos, formatear, etc.
  • Gmail / Slack / Notion: conectar servicios de terceros para enviar correos, mensajes o escribir en documentos

Los nodos de acción son los más usados; en torno al 90 % de los flujos dependen de ellos.

Nodos de lógica — controlan el recorrido del flujo.

A veces el flujo no es una línea recta y hay que bifurcar según condiciones, por ejemplo:

  • If: evalúa una condición; si se cumple va por la rama A, si no por la B
  • Merge: une varias ramas en un solo camino
  • Switch: evaluación de múltiples condiciones, similar al switch-case en código

Bien usados, los nodos de lógica hacen los flujos muy flexibles. En sincronización de datos, por ejemplo, uso If para comprobar si un registro existe: si existe, actualizo; si no, creo uno nuevo.

1.3 ¿Cómo se pasan los datos entre nodos?

Cuando conectas nodos, los datos circulan automáticamente. La salida de un nodo es la entrada del siguiente.

En n8n, los datos se transmiten en formato JSON. Cada nodo, al ejecutarse, genera un objeto JSON con distintos campos. El nodo siguiente puede referenciarlos con la sintaxis {{ $json.fieldName }}.

Por ejemplo, un nodo HTTP Request que consulta una API meteorológica podría devolver:

{
  "temperature": 18,
  "weather": "晴",
  "city": "北京"
}

En el nodo siguiente, para usar la temperatura escribes {{ $json.temperature }} y n8n insertará 18.

Esta sintaxis cuesta un poco al principio; con práctica se vuelve natural. Te recomiendo probar directamente en el nodo: escribe {{ $json. y mira el menú desplegable para ver qué campos están disponibles.


2. Desde cero: tu primer flujo de trabajo

Con los conceptos claros, pasemos a la práctica. El primer flujo que me funcionó fue «obtener el tiempo a una hora fija y enviar un correo»: sencillo, pero cubre la mayoría de operaciones clave.

2.1 Preparar el entorno

La forma más rápida de probar es la versión en la nube: n8n.cloud. Regístrate y listo; el plan gratuito cubre funciones básicas.

Si prefieres autodesplegar (como yo), con Docker basta un comando:

docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  -v ~/.n8n:/home/node/.n8n \
  n8nio/n8n

Cuando esté en marcha, abre http://localhost:5678 en el navegador y verás el editor.

En el despliegue me tropecé con un detalle: la persistencia de datos. La primera vez no añadí -v y, al reiniciar el contenedor, perdí todos los flujos. Con -v ~/.n8n:/home/node/.n8n, los datos se guardan en el directorio local.

2.2 Caso 1: tiempo programado y correo automático

Objetivo: cada mañana a las 7:00, obtener el tiempo de Pekín y enviar un recordatorio por correo.

Paso 1: añadir Schedule Trigger

Haz clic en el botón «+» del lienzo y busca «Schedule Trigger». Tras añadirlo, configura la hora:

  • Trigger Interval: Days
  • Days between triggers: 1
  • Trigger at Hour: 7

Paso 2: añadir el nodo OpenWeatherMap

Sigue con «+» y busca «OpenWeatherMap» (nodo de la API meteorológica). Configura:

  • Operation: Get current weather
  • City: Beijing (o tu ciudad)
  • API Key: regístrate en el sitio de OpenWeatherMap para obtenerla

Introduce la API Key cuando la tengas.

Paso 3: añadir el nodo Gmail

Busca «Gmail» y añade un nodo de envío de correo. Configura:

  • Operation: Send
  • To: tu dirección de correo
  • Subject: Recordatorio del tiempo de hoy
  • Message Type: HTML
  • Message: usa la sintaxis de plantilla para insertar los datos meteorológicos

El contenido del correo puede ser:

Tiempo en Pekín hoy: {{ $json.weather }}
Temperatura: {{ $json.temperature }}℃

¡Mira el tiempo antes de salir!

Paso 4: conectar los nodos

Arrastra la salida de Schedule Trigger a la entrada de OpenWeatherMap, y la de OpenWeatherMap a Gmail. Tres nodos en línea, flujo lineal.

Paso 5: probar la ejecución

Haz clic en «Execute Workflow» arriba a la derecha. Si todo está bien, verás cada nodo ejecutarse en orden y Gmail enviará un correo. Revisa la bandeja de entrada: ¿llegó el recordatorio?

Cuando funcionó la primera vez, la verdad es que me emocioné un poco. Era un flujo sencillo, pero la sensación de «la máquina trabaja por mí» es muy satisfactoria.

2.3 Caso 2: notificación automática al enviar un formulario

El segundo escenario es la notificación automática de formularios. Imagina un sitio web: cuando un usuario envía un formulario, quieres recibir aviso en Slack.

Disparador Webhook

Añade un nodo «Webhook» y elige «Webhook URL». Esa URL es el destino del envío del formulario. Ponla en el action del formulario o envía una petición POST con JavaScript.

Nodo Slack

Añade «Slack» y configura:

  • Operation: Post message
  • Channel: el canal donde quieres recibir avisos
  • Message: plantilla con los datos del formulario

Contenido del mensaje:

Nuevo envío de formulario:
Nombre: {{ $json.name }}
Correo: {{ $json.email }}
Mensaje: {{ $json.message }}

Tras conectar, cada envío genera un mensaje en Slack. Más tarde conecté el formulario de contacto del sitio de la empresa a este flujo y la respuesta fue mucho más rápida: ya no hace falta revisar el panel manualmente.


3. Práctica avanzada: diseño de automatización en varios escenarios

Con lo básico dominado, veamos escenarios más complejos. Son flujos que uso de verdad, después de resolver varios problemas.

3.1 Sincronización de datos: Notion y Dida Todo en bidireccional

Contexto: planifico tareas en Notion y ejecuto el día a día en Dida Todo. Hay que mantener ambos sincronizados o se desordena todo.

Enfoque: dos disparadores escuchan cambios en Notion y en Dida Todo; un nodo If comprueba si el registro existe en el otro sistema y actualiza o crea según corresponda.

Diseño de arquitectura:

Notion Trigger → If (¿existe en Dida Todo?) →
  - Sí: actualizar Dida Todo
  - No: crear tarea en Dida Todo

Dida Todo Trigger → If (¿existe en Notion?) →
  - Sí: actualizar Notion
  - No: crear entrada en Notion

Puntos clave:

  1. Identificador único: ambos lados necesitan un campo único, como taskId, para saber si es el mismo registro
  2. Evitar disparos duplicados: una actualización puede provocar otra sincronización; añade condiciones para evitar bucles infinitos
  3. Manejo de errores: las llamadas a API a veces fallan; configura reintentos (Retry on Error), hasta 3 veces como máximo

Este flujo me costó bastante depurarlo; la lógica bidireccional se enreda con facilidad. Al final añadí un nodo Merge para unificar los resultados de ambos lados y procesarlos juntos, y por fin quedó estable.

3.2 Distribución de contenido: publicación multiplataforma del blog

Escenario útil para quien hace operación de contenido: publicas un artículo y quieres empujarlo a varias plataformas.

RSS + distribución multicanal:

RSS Feed Trigger → HTTP Request (obtener detalle del artículo) →
  → Slack (aviso al equipo)
  → Gmail (suscripción por correo)
  → Push a WeChat (requiere tu propia API)

Plantillas por plataforma:

Cada canal tiene su formato. Slack admite tarjetas breves; el correo necesita el cuerpo completo. En el flujo añadí un nodo Set para extraer título, enlace y resumen, y generar el formato adecuado para cada destino.

El push a WeChat es algo más enrevesado: hace falta montar una API propia (yo uso el webhook de robot de WeChat Work). Una vez montado, todo el envío queda automatizado y ahorra bastante tiempo.

3.3 Integración con IA: respuestas automáticas de atención al cliente

n8n lanzó recientemente el nodo AI Agent para conectar modelos de lenguaje. Este escenario monta un asistente sencillo que responde preguntas de usuarios.

Configurar el nodo AI Agent:

  • Model: OpenAI o Claude (requiere API Key)
  • System Prompt: define el comportamiento, por ejemplo «Eres un asistente amable que responde dudas sobre el producto»
  • Memory: activada, el agente recuerda el historial de conversación

Conectar el disparador:

Un Webhook recibe el mensaje del usuario, lo pasa al AI Agent y devuelve la respuesta.

Lo probé: la calidad es aceptable para consultas frecuentes, pero preguntas complejas siguen necesitando intervención humana. Sirve para «cómo se usa el producto», «cuál es el precio», etc.

3.4 Monitorización y alertas: comprobación de salud de API

Escenario habitual en operaciones: comprobar periódicamente si una API responde y alertar si hay fallo.

Diseño del flujo:

Schedule Trigger (cada 10 min) → HTTP Request (comprobar API) →
  → If (¿código de respuesta == 200?) →
    - Sí: fin
    - No: alerta en Slack + registro de error

Configuración clave:

  • En HTTP Request, la URL apunta a la API objetivo
  • El nodo If evalúa $json.statusCode == 200
  • En la rama de error, Slack envía la alerta y un nodo Set registra el detalle

Lo tengo desplegado en una API de pruebas de la empresa; lleva meses en marcha y ha capturado varias incidencias. Es monitorización sencilla, pero más fiable que revisar a mano.


4. Depuración y optimización

Los flujos rara vez funcionan a la primera; depurar es parte del proceso. Comparto lo que aprendí tras varios tropiezos.

4.1 Historial de ejecuciones

Tras cada ejecución, n8n guarda el historial. En la pestaña «Executions» del panel izquierdo ves todas las ejecuciones.

Localizar el nodo fallido:

Si un nodo falla, aparece en rojo en el historial. Haz clic para ver el error concreto. Tipos habituales:

  • Timeout de API
  • Formato de datos incompatible
  • Credenciales caducadas (API Key expirada)

Revisar datos de salida:

En cada nodo puedes ver su salida. Al depurar, reviso nodo a nodo para comprobar que los datos fluyen como espero. A veces un nombre de campo mal escrito impide que el siguiente nodo lea el valor.

4.2 Errores frecuentes y cómo tratarlos

Reintento por timeout de API:

En la configuración del nodo puedes activar «Retry on Error». Suele bastar con 3 reintentos y 1-2 segundos de intervalo; muchos fallos temporales se resuelven así.

Formato de datos incompatible:

Es el más común. Por ejemplo, la API devuelve una cadena y el nodo espera un número. Solución: un nodo Set antes con JavaScript:

{{ Number($json.temperature) }}

O el nodo Edit Fields para cambiar el tipo del campo.

Credenciales caducadas:

La gestión de credenciales está en el menú izquierdo. Si las llamadas a API fallan sin parar, comprueba si expiraron. A veces el servicio cambia permisos y hay que reconfigurar.

4.3 Consejos de rendimiento

Con muchos flujos en marcha pueden aparecer cuellos de botella. Algunas ideas:

Procesamiento por lotes:

Con mucho volumen, no proceses registro a registro. Usa Split In Batches para dividir en lotes de 100 (ajusta según los límites de la API).

Subflujos:

Los flujos complejos pueden dividirse en subflujos. El principal llama al secundario con Execute Workflow; la lógica queda más clara y cada parte se depura por separado.

Caché:

Algunos datos no hace falta pedirlos cada vez. Por ejemplo, un archivo de configuración estático: tras la primera petición, un nodo Cache guarda el resultado para lecturas posteriores.


5. Resumen y siguientes pasos

En el fondo, la lógica de n8n es sencilla: los nodos son piezas, las conexiones definen la lógica y los datos circulan entre nodos. Con estos conceptos, puedes abordar casi cualquier flujo.

Ruta de aprendizaje sugerida:

  • Empieza con flujos lineales simples (como el recordatorio del tiempo)
  • Incorpora ramas y condiciones poco a poco
  • Prueba después integración con IA y sincronización bidireccional

Recursos de la comunidad:

n8n tiene una biblioteca de plantillas en n8n.io/templates con muchos flujos listos. Si tienes un escenario en mente, búscalo ahí primero y adapta la plantilla.

Dirección avanzada:

Si los nodos integrados no bastan, puedes desarrollar nodos personalizados. n8n es de código abierto y la documentación de desarrollo de nodos está bien resuelta. Requiere algo de TypeScript; encaja con perfiles con experiencia de desarrollo.

Lo que más valor le saco a las herramientas de automatización no es solo el tiempo ahorrado, sino liberar la cabeza del trabajo repetitivo para pensar en cosas más importantes. Si compartes esa frustración, prueba n8n: puede que encuentres un nuevo impulso de productividad.



Referencias

Crear tu primer flujo de trabajo en n8n

Construir desde cero un flujo de alertas meteorológicas programadas

⏱️ Estimated time: 15 min

  1. 1

    Step 1: Desplegar el entorno n8n

    Elige el método de despliegue:

    • Versión en la nube: regístrate en n8n.cloud
    • Despliegue local: comando Docker `docker run -p 5678:5678 n8nio/n8n`
    • Añade el parámetro `-v` para persistir los datos
  2. 2

    Step 2: Añadir un nodo disparador

    Configura Schedule Trigger:

    • Haz clic en '+' y busca Schedule Trigger
    • Trigger Interval: Days
    • Trigger at Hour: 7 (todos los días a las 7:00)
  3. 3

    Step 3: Añadir nodos de acción

    Conecta OpenWeatherMap + Gmail:

    • OpenWeatherMap: configura ciudad y API Key
    • Gmail: configura destinatario, asunto y plantilla de contenido
    • Usa `{{ $json.weather }}` en el contenido para referenciar datos
  4. 4

    Step 4: Conectar nodos y probar

    Completa el flujo de trabajo:

    • Arrastra las conexiones entre los tres nodos
    • Haz clic en Execute Workflow para probar
    • Revisa el correo para confirmar que recibiste el mensaje

FAQ

¿Cuál es la diferencia entre n8n y Zapier?
n8n es de código abierto y gratuito, puedes desplegarlo tú mismo y controlar tus datos por completo; Zapier es un servicio comercial en la nube con más funciones en la versión de pago, pero los datos se almacenan en terceros. n8n autodesplegado es ideal para escenarios sensibles a los datos.
¿Qué servicios soporta n8n?
n8n incluye más de 400 nodos integrados que cubren servicios principales: Gmail, Slack, Notion, GitHub, OpenAI, bases de datos y más. Para servicios no soportados, usa el nodo HTTP Request para llamar a la API.
¿Cómo se pasan los datos entre nodos?
Los datos fluyen en formato JSON; usa `{{ $json.fieldName }}` para referenciar datos de nodos anteriores. En el editor del nodo, escribe `{{ $json.` para ver las sugerencias del menú desplegable.
¿Cómo depurar un flujo de trabajo que falla?
Consulta el historial de Executions; los nodos fallidos aparecen en rojo. Haz clic en el nodo para ver el error y los datos de salida. Problemas habituales: timeout de API, formato de datos incompatible o credenciales caducadas.
¿Cómo evitar bucles infinitos en sincronización bidireccional?
Añade un campo identificador único (como taskId) y usa un nodo If para comprobar el origen de los datos. Al actualizar, verifica la marca de origen para evitar disparar una nueva ronda de sincronización. También puedes usar el nodo Merge para unificar resultados.
¿Puede n8n integrarse con modelos de IA?
Sí. n8n tiene un nodo AI Agent compatible con OpenAI, Claude y otros modelos. Configura API Key, System Prompt y Memory; es ideal para atención al cliente inteligente, generación de contenido y escenarios similares.

12 min de lectura · Publicado el: 5 abr 2026 · Actualizado el: 21 ago 2026

Comentarios

Inicia sesión con GitHub para dejar un comentario

Easton BlogEaston Blog