Publicidad
Patrocinador Verificado
Infraestructura Cloud, GPU Clusters y APIs de IA para Desarrolladores
Despliega pipelines de inferencia y trading con latencia ultra baja. Explora planes.
Conocer Más →

n8n para principiantes: tu primer flujo de automatización, paso a paso

Por Marcus Sterling • Beginner • 13 min read • Actualizado 2026-10-23

Lo Que Dominarás en Este Tutorial

  • Entender el modelo de n8n: disparadores, nodos, elementos y expresiones.
  • Construir un flujo de 5 nodos: programar, obtener, transformar, decidir, avisar.
  • Importar un flujo como JSON y probar las dos ramas a propósito.

1. Qué es n8n, en palabras simples

n8n es una herramienta de automatización de flujos: dibujas una cadena de pasos —un disparador y luego nodos que obtienen, transforman, deciden y envían— y n8n la ejecuta según un horario o bajo demanda. Cada nodo hace una cosa pequeña y entrega su salida, como elementos JSON, al siguiente. Si encadenaste herramientas en Zapier o Make, el modelo mental es el mismo; n8n se diferencia en que puedes alojarlo tú, en que expone el JSON crudo entre nodos en vez de esconderlo, y en que es una base común para agentes de IA: un nodo de «llamar a un LLM» encaja en la cadena como cualquier otro.

Esta guía construye un flujo completo y real —pequeño, pero con los tipos de nodo que usa casi toda automatización. También es la rampa de entrada a la serie de ingresos con agentes IA: sus agentes de ventas y recepción son, mecánicamente, flujos como este con un LLM en el medio.

Publicidad
Patrocinador Verificado
Sistemas de Trading Cuantitativo y 30 Blueprints de Negocio con IA
Construye ingresos recurrentes mensuales predecibles con igualas y bots automatizados.
Ver Blueprints →

2. Elige tu instalación: nube o autoalojado

  • n8n Cloud es la versión alojada por el equipo de n8n: te registras y construyes en minutos; actualizaciones, disponibilidad y copias son problema suyo. Es un producto de suscripción de pago. Para un primer flujo y para demos con clientes, es el comienzo pragmático.
  • Autoalojarlo significa correrlo por tu cuenta —habitualmente con Docker en un servidor pequeño. El software puede ejecutarse sin coste de licencia para la mayoría de los usos personales e internos bajo su Licencia de Uso Sostenible; tus costes son el servidor y tu mantenimiento: actualizaciones, copias y arreglarlo cuando se rompa a las 3 a. m.

En ambos casos el flujo de abajo es idéntico, y los flujos se exportan e importan como JSON entre uno y otro: nada te encierra en uno.

3. Construye el flujo, nodo a nodo

El trabajo: cada hora, obtener un registro de una API pública de pruebas, construir el texto del aviso, comprobar si la tarea sigue pendiente y, solo entonces, enviar un mensaje de Telegram. (¿Sin Telegram? Cambia el último nodo por correo; todo lo anterior queda idéntico.)

Nodo 1 — Schedule Trigger (disparador por horario)

Añade un nodo Schedule Trigger. Ajusta la regla a un intervalo de 1 hora, como en el JSON terminado de abajo (en el editor puedes elegir igualmente «cada día a las 08:00»). Ajusta tu zona horaria en la configuración del flujo: el disparador sigue la zona del flujo, no la de tu portátil. Este nodo emite un elemento con la marca de tiempo actual; su único trabajo es arrancar la cadena.

Nodo 2 — HTTP Request

Añade un nodo HTTP Request y conéctalo al disparador. Método: GET. URL: https://jsonplaceholder.typicode.com/todos/1 — un endpoint público de pruebas que devuelve un registro JSON pequeño (una tarea con título y marca de completada). Sin autenticación. Ejecútalo una vez y mira el panel de salida: verás el JSON con campos como userId, id, title y completed. Leer esa salida antes de construir el siguiente nodo es el hábito que hace fácil todo lo demás.

Nodo 3 — Edit Fields (Set)

Añade un nodo Edit Fields (en versiones anteriores, simplemente «Set»). Crea una asignación: reminderText con la expresión =Task #{{$json.id}}: {{$json.title}} (done: {{$json.completed}}). El $json se refiere al elemento actual y el prefijo = marca el valor como expresión, no como texto literal. Activa «incluir los demás campos» para que completed sobreviva hasta el nodo IF: el aviso se construye aquí; la decisión usa el campo original.

Nodo 4 — IF

Añade un nodo IF con una condición booleana: completed es verdadero. IF tiene dos salidas: verdadero y falso. Conectamos hacia adelante la salida falsa: si la tarea ya está completada no hay nada que recordar y el flujo termina sin enviar nada; si sigue pendiente, el elemento avanza al aviso. Qué rama continúa es decisión tuya; no la dejes nunca al azar.

Nodo 5 — Telegram (o correo)

Añade un nodo Telegram en la salida falsa del nodo IF. Crea una credencial con un token de bot (el BotFather de Telegram crea bots: es la ruta estándar), ajusta el ID del chat y pon el texto en ={{$json.reminderText}}. La primera vez, envíate el mensaje a ti: esta es una plantilla, y avisarte a ti es la forma de probarla.

Conecta los nodos en orden —disparador → HTTP Request → Edit Fields → IF → Telegram—, guarda, y ya tienes el flujo. La siguiente sección es el mismo flujo como JSON portable.

4. El mismo flujo como JSON

Todo flujo se exporta a JSON (menú → Download) y se importa del mismo modo. Pega esto en un flujo en blanco con Import from File o Import from URL/Clipboard, sustituye YOUR_CHAT_ID y conecta tu credencial de Telegram, y tendrás la sección 3 sin hacer clic. Léelo una vez contra la lista de nodos: nodos, parámetros y el objeto de conexiones que los enlaza.

JSON DEL FLUJO
{
  "name": "My First Automation - Task Reminder",
  "nodes": [
    {
      "parameters": { "rule": { "interval": [ { "field": "hours", "hoursInterval": 1 } ] } },
      "name": "Every Hour",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [240, 300]
    },
    {
      "parameters": { "url": "https://jsonplaceholder.typicode.com/todos/1", "options": {} },
      "name": "Fetch Task",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [460, 300]
    },
    {
      "parameters": { "assignments": { "assignments": [
        { "id": "a1", "name": "reminderText",
          "value": "=Task #{{$json.id}}: {{$json.title}} (done: {{$json.completed}})",
          "type": "string" } ] }, "includeOtherFields": true, "options": {} },
      "name": "Build Message",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [680, 300]
    },
    {
      "parameters": { "conditions": { "options": { "caseSensitive": true },
        "conditions": [ { "id": "c1", "leftValue": "={{$json.completed}}",
          "rightValue": true, "operator": { "type": "boolean", "operation": "true", "singleValue": true } } ],
        "combinator": "and" } },
      "name": "Already Done?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [900, 300]
    },
    {
      "parameters": { "chatId": "YOUR_CHAT_ID",
        "text": "={{$json.reminderText}}", "additionalFields": {} },
      "name": "Send Reminder",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [1120, 220]
    }
  ],
  "connections": {
    "Every Hour":   { "main": [ [ { "node": "Fetch Task", "type": "main", "index": 0 } ] ] },
    "Fetch Task":   { "main": [ [ { "node": "Build Message", "type": "main", "index": 0 } ] ] },
    "Build Message": { "main": [ [ { "node": "Already Done?", "type": "main", "index": 0 } ] ] },
    "Already Done?": { "main": [ [], [ { "node": "Send Reminder", "type": "main", "index": 0 } ] ] }
  },
  "settings": {},
  "staticData": null
}

5. Prueba y depura en serio

  • Ejecuta nodo a nodo. El «Execute Step» del editor en cada nodo muestra su entrada y salida reales. Casi toda la confusión de principiante es un campo que nunca estuvo ahí: visible al instante en el panel de salida.
  • Fija los datos mientras construyes. Fija (pin) la salida del HTTP Request: los nodos siguientes reutilizarán ese elemento mientras iteras, en lugar de volver a obtenerlo en cada prueba.
  • Lee las ejecuciones, no las sensaciones. La lista de Ejecuciones muestra cada corrida, qué nodo falló y con qué entrada: un nodo en rojo más su entrada explican casi cualquier error.
  • Prueba la otra rama. Fuerza una corrida con completed en verdadero y confirma que no llega ningún mensaje. Un flujo que nunca has visto saltar correctamente es un flujo que todavía no entiendes.
  • Activa con intención. Un flujo solo corre con su disparador cuando está activo: las pruebas usan ejecución manual; producción significa pulsar Active — y acordarte de que lo hiciste.

6. Errores de principiante que vale la pena saltarse

  • Zona horaria equivocada. Los horarios siguen la zona horaria configurada en el flujo. Ajústala una vez, en Configuración, antes de preguntarte por qué «las 8 a. m.» se dispararon a la hora de comer.
  • Secretos pegados en los nodos. Las claves y tokens van en las Credenciales, que n8n cifra y reutiliza — nunca en campos de nodos, desde donde se filtran a cada exportación JSON (la de la sección 4 referencia una credencial, no el token).
  • Expresiones escritas como texto. Sin el = inicial, {{ $json.title }} se envía literalmente, llaves incluidas. La mitad de los «n8n está roto» son esto.
  • Sin ruta de fallo. Los flujos reales añaden un flujo de error o al menos una rama de aviso para cuando la llamada HTTP falle. Añádela el día en que el flujo empiece a importar, no tras su primer fallo silencioso.

7. A dónde ir después

Sustituye la API de pruebas por algo que te importe —un feed, un formulario, los pedidos de una tienda— y este esqueleto se convierte en una automatización real. Desde aquí, Agentes de IA con n8n añade nodos de IA, patrones de agente y el lado comercial de vender automatizaciones. Y en la serie de ingresos con agentes IA, la guía del agente de ventas muestra esta estructura sosteniendo un flujo en vivo.

Evaluación Rápida: Pon a Prueba tus Conocimientos

1. En un flujo de n8n, ¿qué hace el nodo disparador?

Preguntas Frecuentes

¿n8n es gratis?
Depende de cómo lo corras: alojarlo tú no lleva coste de licencia para la mayoría de los usos personales e internos —pagas el servidor y tu mantenimiento—; n8n Cloud, la versión oficial alojada, es una suscripción de pago. El formato de los flujos es el mismo en ambos.
¿Necesito saber programar para usar n8n?
No para flujos como el de esta guía: los nodos se configuran en formularios, y la única habilidad parecida al código son expresiones pequeñas como ={{ $json.title }}, que esta guía explica donde las usa. Programar ayuda después —llamadas HTTP a medida, forma a los datos—, pero no es el billete de entrada.
¿n8n puede ejecutar agentes de IA, o es solo automatización simple?
Ambas. El mismo lienzo que corre estos cinco nodos también hospeda nodos de LLM y de agente: por eso n8n es el pegamento en las guías de agentes de este sitio. El paso natural tras este flujo es la guía de Agentes de IA con n8n de la sección 7.

Recibe 1 plan de agente IA cada semana

Únete al boletín gratuito de PVT: un agente de IA o automatización práctica que puedes construir y vender, cada semana. Sin spam.