La Analogía de la Receta (Workflow)
Un workflow en n8n es como una receta de cocina en una pared: una secuencia de pasos conectados, donde la salida de uno es el ingrediente del siguiente. Si entiendes la receta, puedes cocinar cualquier plato (automatizar cualquier proceso).
Anatomía mínima de un workflow
- Trigger (el "timbre"): el evento que arranca todo (webhook, schedule, botón "Execute").
- Nodos (los "fuegos"): cada paso que transforma o transporta datos.
- Conexiones (las "calles"): las flechas que llevan el output de un nodo al input del siguiente.
- Ejecución (la "cocción"): cuando n8n recorre la receta de izquierda a derecha, una vez por cada ítem de datos.
Antes de meter mano al editor, entiende esta verdad: n8n no "piensa", solo mueve y transforma datos siguiendo tu diseño. Si el diseño es ambiguo, el flujo falla en silencio.
El Concepto: nodos, triggers y ejecución
Hay dos grandes familias de nodos en n8n. Confundirlas es la causa #1 de frustración en tus primeras horas.
| Tipo | Rol | Ejemplos |
|---|---|---|
| Trigger | Inicia el flujo cuando ocurre un evento. Solo puede haber uno por workflow (a menos que uses "Merge"). | Webhook, Schedule, Email Trigger, Manually |
| Action / Nodo regular | Hace algo con los datos que recibió del nodo anterior. Puedes encadenar cuantos quieras. | HTTP Request, Telegram, Set, Code, IF, Postgres |
El flujo completo, de principio a fin
Trigger recibe → Nodo 1 transforma → Nodo 2 envía → Respuesta. Cada nodo ve los datos como {{ $json}; lo que devuelve lo ve el siguiente. Esto se llama data flow y es la base de toda automatización.
Las 4 partes del nodo HTTP Request
El nodo HTTP Request es tu navaja suiza: si n8n no tiene nodo nativo para una app, este te permite hablar con su API. Todo lo que aprendiste en el módulo 01 (URL, método, headers, body) aplica acá, solo que ahora lo configuras con formularios visuales.
-
1
Method
El verbo HTTP:
GET,POST,PUT,DELETE. -
2
URL
El endpoint de la API destino. Soporta variables:
{{ $json.campo }}. -
3
Authentication
Elige None, Header Auth, Bearer, etc. Aquí se inyectan tus secretos sin hardcodearlos.
-
4
Body
Define el tipo (
JSON,Form) y pega el payload. También soporta expresiones.
Ejemplo real · notificar a Telegram vía API
// Configuración del nodo HTTP Request
Method: POST
URL: https://api.telegram.org/bot{TOKEN}/sendMessage
Auth: None (el token ya va en la URL)
Body: { "chat_id": "123", "text": "Hola desde n8n" }
Error común #1
Olvidar seleccionar el Body Content Type como JSON. Si lo dejas en Raw o Form, n8n serializa distinto y la API destino devuelve 415. Confirma siempre que veas "JSON / application/json" en el dropdown.
Mapear la salida de un nodo en otro
El truco que separa un script estático de una automatización viva es usar el output de un nodo como input del siguiente. En n8n lo haces con la expresión {{ $json.campo }} o arrastrando el campo desde el panel izquierdo del editor.
Data flow · ejemplo de mapeo entre nodos
// Nodo A (Webhook) devolvió:
{ "body": { "usuario": "Gabriel", "monto": 45000 } }
// Nodo B (Telegram) usa en su campo "text":
"Hola {{ $json.body.usuario }}, recibimos {{ $json.body.monto }} COP"
// Resultado: "Hola Gabriel, recibimos 45000 COP"
Error común #2
Escribir {{ $json.usuario }} cuando el dato realmente está en $json.body.usuario. El error no es de sintaxis, es de ruta: el JSON que llega a un nodo no es el mismo JSON que llegó al trigger. Siempre abre el panel INPUT del nodo destino para ver qué estructura tiene disponible.
Práctica guiada: HTTP Request → Set → fin
Construye tu primer workflow real, de tres nodos. Objetivo: traer datos de una API pública, limpiarlos con el nodo Set y verificar el resultado final en el panel de output.
-
En tu n8n, haz clic en + Add workflow y nómbralo
lab-03-primer-workflow. - Agrega un nodo Manually Trigger (así lo ejecutas con un clic en el botón "Execute workflow").
-
Agrega un nodo HTTP Request y configúralo así:
- Method
GET - URL
https://jsonplaceholder.typicode.com/users/1 - Authentication
None
- Method
-
Conecta el HTTP Request a un nodo Set. Dentro del nodo Set agrega tres campos con estos valores:
Name (campo) Value (valor) id{{ $json.id }}email{{ $json.email }}empresa{{ $json.company.name }} -
Haz clic en Execute workflow y abre el panel de output del nodo Set. Deberías ver tres campos limpios:
id,emailyempresa. - Importante: haz clic en Save (atajo: Ctrl+S). Si no guardas, n8n descarta el diseño al cerrar el editor.
Checklist del Módulo 03
Desafío del módulo
Migración Postman → n8n, sin red de seguridad
Tu misión, si decides aceptarla (y la aceptas):
- Toma la petición POST a Telegram que ya tienes armada en Postman.
- Monta el mismo flujo dentro de n8n: Manually Trigger → HTTP Request (método POST, URL de Telegram y body JSON).
- Ejecútalo desde n8n. Si el mensaje no llega, abre el panel ERROR del nodo y lee el código HTTP: 401 = token mal, 400 = body mal, 404 = chat_id mal.
- Cuando llegue, reemplaza el texto estático por una expresión dinámica:
"Mensaje #{{ $now.format('HH:mm') }} desde n8n".
Bonus: agrega un nodo Set que arme el body a partir de tres campos (nombre, monto, moneda) y únelo al HTTP Request con expresiones.