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

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:00Webhook: activación externa, por ejemplo al recibir una petición HTTPManual 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 datosSet: 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 BMerge: une varias ramas en un solo caminoSwitch: 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:
- Identificador único: ambos lados necesitan un campo único, como
taskId, para saber si es el mismo registro - Evitar disparos duplicados: una actualización puede provocar otra sincronización; añade condiciones para evitar bucles infinitos
- 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
Setregistra 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
- Documentación oficial de n8n
- Repositorio de tutoriales en chino de n8n
- Biblioteca de plantillas de n8n
- Zhihu: introducción a n8n desde cero
- SSPai: automatización práctica con n8n
Crear tu primer flujo de trabajo en n8n
Construir desde cero un flujo de alertas meteorológicas programadas
⏱️ Estimated time: 15 min
- 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
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
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
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?
¿Qué servicios soporta n8n?
¿Cómo se pasan los datos entre nodos?
¿Cómo depurar un flujo de trabajo que falla?
¿Cómo evitar bucles infinitos en sincronización bidireccional?
¿Puede n8n integrarse con modelos de IA?
12 min de lectura · Publicado el: 5 abr 2026 · Actualizado el: 21 ago 2026
Guía práctica de n8n
Estás leyendo el primer artículo de esta serie. Continúa con el siguiente o abre el hub para ver toda la ruta.
Anterior
Estás al inicio de esta serie.
Siguiente
n8n avanzado: Webhook, ramas IF/Switch y diseño de flujos event-driven
Guía práctica de Webhook en n8n: configuración del nodo disparador, diseño de ramas IF/Switch y caso de procesamiento de pedidos para flujos event-driven, con buenas prácticas de autenticación en producción.
Parte 2 de 3



Comentarios
Inicia sesión con GitHub para dejar un comentario