Módulo 03

Tu primer Workflow en n8n

Del Postman al editor visual: diseñar tu primer flujo de automatización de extremo a extremo.

Fase 2 · n8n ~45 min Práctica guiada
1

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.

2

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.

3

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. 1

    Method

    El verbo HTTP: GET, POST, PUT, DELETE.

  2. 2

    URL

    El endpoint de la API destino. Soporta variables: {{ $json.campo }}.

  3. 3

    Authentication

    Elige None, Header Auth, Bearer, etc. Aquí se inyectan tus secretos sin hardcodearlos.

  4. 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.

4

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.

5

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.

  1. En tu n8n, haz clic en + Add workflow y nómbralo lab-03-primer-workflow.
  2. Agrega un nodo Manually Trigger (así lo ejecutas con un clic en el botón "Execute workflow").
  3. Agrega un nodo HTTP Request y configúralo así:
    • Method GET
    • URL https://jsonplaceholder.typicode.com/users/1
    • Authentication None
  4. 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 }}
  5. Haz clic en Execute workflow y abre el panel de output del nodo Set. Deberías ver tres campos limpios: id, email y empresa.
  6. Importante: haz clic en Save (atajo: Ctrl+S). Si no guardas, n8n descarta el diseño al cerrar el editor.
6

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):

  1. Toma la petición POST a Telegram que ya tienes armada en Postman.
  2. Monta el mismo flujo dentro de n8n: Manually TriggerHTTP Request (método POST, URL de Telegram y body JSON).
  3. 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.
  4. 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.