n8n: Automatización Visual para Integraciones Técnicas

n8n: Automatización Visual para Integraciones Técnicas

Descubre n8n, la herramienta de automatización open-source que conecta APIs, servicios y herramientas sin límites. Instalación, casos de uso, integraciones con proyectos reales y recursos para empezar.

FECHA:
ACTUALIZADO:
AUTOR:Jorge Beneyto Castelló
LECTURA:19 MINUTOS DE LECTURA

🚀 n8n: Automatización Visual para Integraciones Técnicas

n8n (n-eight-n) es una plataforma de automatización de flujos de trabajo (workflows) de código abierto. Permite conectar servicios, APIs y bases de datos mediante una interfaz visual de nodos, donde cada nodo representa una acción o un servicio.

A diferencia de herramientas como Zapier o Make, n8n es self-hosted: tú controlas los datos, los servidores y los límites. Esto lo convierte en una opción ideal para desarrolladores que necesitan integraciones complejas sin depender de terceros ni pagar por volumen de ejecuciones.


🖥️ ¿Necesito un Servidor?

Depende de cómo quieras usarlo:

  • Uso local (tu PC): No necesitas servidor. n8n se ejecuta en tu máquina. Perfecto para pruebas, desarrollo y automatizaciones que solo funcionan mientras tu PC está encendido.
  • Uso 24/7 (producción): Necesitas un servidor o VPS (mínimo 1 GB RAM, 1 CPU). n8n se ejecuta como un servicio más y tus workflows se mantienen activos todo el día.
  • n8n Cloud (sin servidor): Ellos gestionan el servidor. No necesitas instalar nada, solo registrarte y empezar.

🏠 Local vs ☁️ Cloud

En Local (Self-hosted)

AspectoDetalle
CosteGratuito (solo pagas el hardware)
ControlTotal — datos, logs, versión, seguridad
InstalaciónDocker, npm o binario
MantenimientoTú gestionas updates, backups, uptime
Ideal paraProyectos personales, datos sensibles, experimentar sin límites

Opciones de instalación local:

Ejemplo con Docker:

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

En Cloud (n8n Cloud)

AspectoDetalle
CosteFree tier (hasta 20 workflows, 5 ejecuciones/día)
ControlLimitado — no accedes al servidor
Setup5 minutos, solo registro web
MantenimientoEllos gestionan todo
Ideal paraEmpezar rápido, equipos pequeños, pruebas

Registro: n8n.cloud


💰 Precios (Free vs Pago)

Self-hosted (local o VPS)

ComponentePrecio
n8n (software)Gratuito — código abierto (Sustainable Use License)
Servidor/VPSDesde ~5 €/mes (ej: Oracle Cloud free tier, Hetzner, DigitalOcean)
Redis (cola, opcional)Gratuito si lo instalas tú
Total0 € software + coste servidor

Sin límites de workflows, ejecuciones o usuarios. Tú pones el hardware.

n8n Cloud

PlanPrecioWorkflowsEjecuciones/díaUsuarios
Free0 €/mes2051
Pro~20 €/mes (ver precios)Ilimitados10.0005
EnterprisePersonalizadoIlimitadosPersonalizadoIlimitado

🎯 Ejemplo Práctico Paso a Paso

Vamos a crear un workflow real desde cero: monitorizar el precio de un producto en una web y recibir un email si baja de X euros.

Paso 1: Crear el workflow

Dentro de n8n, creas un nuevo workflow en blanco.

Paso 2: Añadir Schedule Trigger (cada 6h)

Schedule Trigger → HTTP Request → Code → Email
  • Schedule Trigger: intervalo cada 6 horas
  • HTTP Request: GET a la URL del producto (o a una API)
  • Code: extrae el precio, compara con el umbral
  • Email: envía alerta si corresponde

Paso 3: Configurar nodo HTTP Request

Method: GET
URL: https://api.ejemplo.com/producto/123

Paso 4: Nodo Code (JavaScript)

const precio = $json.price;
const umbral = 50;

if (precio < umbral) {
  return [{ ...$json, alerta: true, precio, umbral }];
}
return [{ alerta: false }];

Paso 5: Nodo Email (solo si alerta === true)

Conectas el nodo Email y usas la condición. Si el precio baja, recibes el correo.

Resultado:

Cada 6 horas n8n consulta el precio. Si baja de 50 €, te llega un email automático. Sin tocar código, sin servidor dedicado (si usas su cloud gratuito).


🔗 Integraciones con Proyectos Actuales

n8n puede conectarse directamente con varios de mis proyectos existentes:

  • Blog (Astro + GitHub): Automatizar la publicación de posts. Un workflow que escucha un webhook, genera el markdown, hace commit al repo y dispara el build en Vercel.
  • Retos de código (auto-challenges): Un workflow que cada semana lanza un nuevo reto, lo escribe en el repo y notifica por Telegram o correo.
  • Scrapers Python: n8n puede ejecutar scripts Python directamente con el nodo Execute Command, consumiendo los mismos scrapers que ya tengo en scripts/.
  • Pipeline de imágenes (fix_images.py): Disparar el fixer de imágenes cuando se detecta contenido nuevo, todo desde un workflow.

🎯 Más Automatizaciones con los Recursos del Blog

En la página de recursos del blog hay decenas de herramientas que n8n puede conectar. Aquí tienes ideas organizadas por categoría.

🤖 Con IA (Gemini, ChatGPT, Claude, Hugging Face)

  • Auto-resumen de posts: Workflow que al publicar un post (webhook de GitHub o Vercel), lo envía a la API de Gemini o Claude y genera un resumen listo para redes sociales.
  • Chatbot multicanal: Un solo workflow recibe consultas desde Telegram, Discord y Slack, las procesa con IA y responde en el mismo canal. Es la evolución natural del bot de Telegram que tienes más arriba.
  • Traductor de contenido: Workflow que toma el markdown de un post, lo traduce con IA y guarda una versión en otro idioma en el mismo repositorio.

📋 Con Productividad (Notion, Obsidian, Todoist, Linear, Jira, Trello, Asana, Clockify)

  • Obsidian → Blog: Workflow que detecta cambios en una nota de Obsidian, convierte el markdown a formato MDX y hace commit al repo del blog. Publicas desde tus notas sin tocar el editor.
  • Notion ↔ GitHub Issues: Sincronización bidireccional: cuando creas una issue en GitHub, aparece en una base de datos de Notion y viceversa. Trackeas bugs sin cambiar de herramienta.
  • Resumen semanal: Cada viernes, n8n recopila tareas completadas de Todoist, tiempo registrado en Clockify y PRs mergeados de GitHub, y genera un informe HTML con diseño para tu correo o el weekly recap del blog.

💬 Con Comunidad (Discord, Telegram, Twitter/X, LinkedIn, DEV, Hashnode, Reddit)

  • Cross-publishing: Workflow que al publicar un post, lo republica automáticamente en DEV, Hashnode y LinkedIn con el formato adecuado para cada plataforma.
  • Reddit monitor: Workflow que cada hora busca palabras clave en subreddits técnicos y notifica por Telegram cuando alguien pregunta algo que ya tienes cubierto en el blog.

🖥️ Con DevOps y Terminal (Docker, npm, GitHub, tmux, ngrok)

  • Docker cleanup automático: Workflow programado que ejecuta docker system prune en tu VPS vía nodo SSH y reporta el espacio liberado en una planilla de Google Sheets.
  • Monitor de dependencias: Workflow semanal que ejecuta npm outdated, parsea la salida y abre un issue en GitHub con las dependencias que necesitan actualización.
  • Backup automático del blog: Workflow que cada noche clona el repo, comprime imágenes y sube a un bucket S3 (nodo AWS S3 nativo), Google Drive o FTP.

🎬 Con Multimedia (FFmpeg, OBS, HandBrake, DaVinci Resolve, Audacity)

  • Pipeline de video: Workflow que cuando subes un video raw, lo comprime con FFmpeg (vía Execute Command), sube a YouTube con metadatos generados por IA y actualiza el post del blog automáticamente.
  • Transcripción de audio: Workflow que toma archivos de audio, los transcribe con Whisper/OpenAI y guarda el texto como nota en Obsidian o Notion.

📡 Con Seguridad (OWASP, Hack The Box, PortSwigger, monitor SSL)

  • Monitor SSL: Workflow que cada 24h verifica los certificados SSL de tus dominios, alerta por Telegram si quedan menos de 14 días y registra el histórico en SQLite.
  • Auto-enrolamiento en retos: Workflow que consulta APIs de Hack The Box o TryHackMe, detecta nuevas máquinas y te notifica con los detalles para no perderte ninguna.

🧪 Mini Proyecto Completo: Bot de Estudio Semanal

Un workflow que cada lunes:

  1. Recoge los 3 posts más populares del blog (puedes usar conteo de visitas o Vercel Analytics vía API)
  2. Envía cada post a Gemini para generar un resumen ejecutivo y 5 preguntas tipo test
  3. Guarda los resúmenes en una base de datos de Notion
  4. Genera un email con diseño HTML y lo envía a tu lista de suscriptores
  5. Publica un tweet con el resumen del post más leído

Todo en un solo workflow, conectando más de 5 servicios distintos del ecosistema del blog.


⚡ Ejemplos Comunes de Integración

Webhook → Slack

{
  "nodes": [
    {
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "parameters": { "path": "alerta" }
    },
    {
      "name": "Slack",
      "type": "n8n-nodes-base.slack",
      "parameters": {
        "channel": "C01ABCDEF",
        "text": "={{$json.message}}"
      }
    }
  ]
}

Email → Google Sheets

Un workflow que lee emails entrantes con adjuntos, extrae los datos y los guarda fila por fila en una planilla de Google Sheets.

HTTP Request → Base de datos

Consultas a APIs externas cada cierto intervalo, transformación de datos con el nodo Code (JavaScript) e inserción en PostgreSQL / SQLite.


🛠️ Herramientas Externas que Puedes Integrar

n8n viene con +400 nodos preconstruidos. Algunos destacados:

  • Comunicación: Slack, Discord, Telegram, Email (SMTP/IMAP)
  • Almacenamiento: Google Drive, Dropbox, S3, FTP
  • Bases de datos: PostgreSQL, MySQL, MongoDB, Redis, SQLite
  • IA / ML: OpenAI, Hugging Face, Anthropic, y cualquier API HTTP
  • DevOps: GitHub, GitLab, Docker, Jenkins, Jira
  • Cloud: AWS, GCP, Azure, Vercel, Netlify
  • Social: Twitter/X, LinkedIn, YouTube, Instagram

Si un servicio no tiene nodo dedicado, puedes usar los nodos HTTP Request y Webhook para conectar con cualquier API REST.


🚀 Cómo Explotar n8n al Máximo

  • Workflows reutilizables: n8n permite exportar e importar flujos como JSON. Puedes tener una plantilla base para cada tipo de automatización.
  • Sub-workflows: Llamar a un workflow desde otro. Útil para tener lógica compartida (ej: autenticación, logging).
  • Nodo Code: Ejecuta JavaScript directamente dentro del flujo. No necesitas un servicio externo para transformar datos.
  • Execution hooks: Dispara notificaciones cuando un workflow falla o se completa.
  • Versión con cola (Queue mode): Para producción, n8n puede ejecutarse con Redis como backend de cola, soportando miles de ejecuciones diarias sin bloqueo.

🧠 Ejemplo Avanzado: Bot de Telegram con IA

Un asistente que recibe preguntas por Telegram, las procesa con Gemini y responde automáticamente.

Workflow

Telegram Trigger → HTTP Request (Gemini) → Telegram Send

Paso 1: Nodo Telegram Trigger

Configuras un bot de Telegram con @BotFather y pegas el token. El nodo escucha mensajes entrantes.

Paso 2: Nodo HTTP Request a Gemini API

Method: POST
URL: https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=TU_API_KEY
Body (JSON):
{
  "contents": [{
    "parts": [{
      "text": "={{$json.message.text}}"
    }]
  }]
}

Paso 3: Nodo Code (extraer respuesta)

const respuesta = $json.candidates[0].content.parts[0].text;
return [{ respuesta }];

Paso 4: Nodo Telegram Send

Chat ID: {{$json.chat.id}}
Text: {{$json.respuesta}}

Resultado: Bot de Telegram con inteligencia artificial, corriendo 24/7 en tu VPS, usando el plan gratuito de Gemini.


🔒 Seguridad en Producción

Si despliegas n8n en un servidor público, aplica estas medidas:

  • HTTPS obligatorio: Usa Caddy o Nginx como reverse proxy con Let’s Encrypt. n8n no tiene TLS nativo.
  • Autenticación básica: n8n trae un login por defecto. En producción, actívalo con N8N_SECURE_COOKIE=true (por defecto desde v1.0).
  • Firewall de puertos: Solo expón el puerto 5678 si usas reverse proxy. Bloquea el acceso directo desde Internet.
  • CORS restrictivo: Configura N8N_CORS_ORIGIN con tu dominio, nunca en *.
  • Backups periódicos: La base de datos de n8n (SQLite por defecto) está en ~/.n8n/database.sqlite. Haz copias diarias con un workflow de n8n.
  • Versiones actualizadas: n8n publica releases frecuentes. Usa el tag :latest con pull semanal o fija una versión estable.
  • Rate limiting: Si expones webhooks al público, usa N8N_RATE_LIMIT_ENABLED=true para evitar abusos.

Nginx reverse proxy (mínimo)

server {
    listen 443 ssl;
    server_name n8n.tudominio.com;

    ssl_certificate /etc/letsencrypt/live/n8n.tudominio.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/n8n.tudominio.com/privkey.pem;

    location / {
        proxy_pass http://localhost:5678;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

📊 Logs, Eventos y Monitorización

n8n guarda un historial completo de cada ejecución. Accedes desde el panel Executions de cada workflow.

Tipos de log

LogDónde verloQué muestra
Execution LogPanel del workflowCada ejecución: fecha, duración, estado, datos de entrada/salida por nodo
Event BusSettings > Event BusEventos del sistema (workflow activado/desactivado, errores críticos)
Audit LogSettings > Audit Log (solo Enterprise)Quién hizo qué y cuándo
Logs del contenedordocker logs n8nSalida estándar de n8n, errores de arranque, conexiones

Cómo inspeccionar una ejecución fallida

  1. Ve al workflow y haz clic en Executions (barra izquierda)
  2. Busca la ejecución con estado Error (rojo)
  3. Haz clic para abrir el detalle
  4. Cada nodo muestra si ejecutó bien (verde) o falló (rojo)
  5. En el nodo fallido, ves el error exacto y los datos que llegaron

Exportar logs a un servicio externo

n8n puede enviar sus logs a sistemas externos para monitorización centralizada:

  • Configuración con Docker: Monta un volumen y usa un sidecar (Fluentd, Logstash) para reenviar los logs.
  • Nodo HTTP Request: Crea un workflow que cada hora recoja ejecuciones fallidas con el nodo n8n y las envíe a un webhook de Slack, Telegram o tu propio backend.
  • Métricas con Prometheus: n8n expone métricas en /metrics si activas N8N_METRICS=true. Puedes consumirlas con Prometheus + Grafana para ver gráficas de ejecuciones, errores y tiempos de respuesta.

Eventos que disparan workflows

Además del Schedule Trigger, n8n reacciona a eventos en tiempo real:

  • Webhook: Llamadas HTTP entrantes (POST, GET, etc.)
  • Form Trigger: Envía un formulario embebido y captura la respuesta
  • Telegram Trigger: Escucha mensajes de un bot
  • Email Trigger (IMAP): Reacciona a emails nuevos en una bandeja
  • RSS Feed Trigger: Detecta nuevas entradas en un feed RSS
  • n8n Trigger: Escucha eventos internos de n8n (workflow creado, ejecución completada, error)

Ejemplo: Logging centralizado con un Error Workflow

  1. Crea un workflow con n8n Trigger tipo “Workflow execution error”
  2. Conéctalo a un nodo Code que formatee el error:
const error = $json.executionData.error;
return [{
  workflow: $json.workflowName,
  error: error.message,
  timestamp: new Date().toISOString(),
  node: error.nodeName
}];
  1. Añade nodos de salida: Slack (notificar al equipo), Spreadsheet (registrar en Google Sheets), Email (alerta al administrador)
  2. En Settings > Error Workflow, selecciona este workflow

A partir de ahí, cada error de cualquier workflow se loguea automáticamente en los tres destinos.


🧩 Nodo HTML / Contenido Dinámico

El nodo HTML (HTML Content / HTML Extract) permite trabajar con contenido web y plantillas HTML directamente desde n8n.

HTML Extract — extraer datos de páginas web

Usa selectores CSS para extraer información sin escribir regex:

URL: https://ejemplo.com/producto
Selector: .precio-actual
Output: texto del elemento

Configuración en el nodo:

Source: HTML (pegas el HTML o usas el output de un nodo previo)
Extraction Values:
  - Key: precio
    Selector: span.price-value
    Return Value: Text
  - Key: titulo
    Selector: h1.product-title
    Return Value: Text

HTML Content — generar plantillas HTML

Ideal para crear contenido dinámico: emails con estilo, informes HTML, páginas web generadas:

Source: JSON (datos de entrada)
Template: HTML plano con {{expresiones}}

Ejemplo: Generar un informe HTML desde datos JSON

<h1>Informe de {{$json.titulo}}</h1>
<table>
  <tr>
    <th>Métrica</th><th>Valor</th>
  </tr>
  {{#each $json.datos}}
  <tr>
    <td>{{this.metrica}}</td>
    <td>{{this.valor}}</td>
  </tr>
  {{/each}}
</table>
<p>Generado el {{new Date().toLocaleDateString("es-ES")}}</p>

Casos de uso del nodo HTML:

  • Email con diseño: Genera un email HTML con estilos en línea desde datos dinámicos, compatible con clientes de correo (Gmail, Outlook).
  • Scraping sin API: Extrae datos de webs que no tienen API pública usando selectores CSS. No necesitas Python ni Puppeteer.
  • Informes periódicos: Cada semana, n8n recopila datos de varias fuentes y genera un informe HTML que se envía por email o se guarda en Google Drive.
  • Transformación de contenido: Convierte JSON a HTML estructurado para publicarlo en un CMS o como snippet de webhook.
  • Generación de PDF: Combina HTML Content + HTML to PDF (o una API externa) para crear facturas, certificados o reportes desde flujos automatizados.

Ejemplo: Scraping con HTML Extract

Schedule Trigger → HTTP Request (GET web) → HTML Extract → Code → Email

El nodo HTML Extract obtiene el precio y la disponibilidad del producto usando selectores CSS. El nodo Code decide si enviar alerta. El Email envía el resultado formateado.


El workflow no se ejecuta cuando toca

Causa: El workflow no está en estado Active. Los workflows se crean desactivados. Solución: Dale al toggle “Active” en la parte superior del editor.

El nodo HTTP Request devuelve error 401/403

Causa: Falta autenticación o las credenciales expiraron. Solución: Revisa las Credentials asociadas al nodo. Si es API Key, asegúrate de que está incluida en el header.

El Schedule Trigger no respeta la zona horaria

Causa: n8n usa UTC por defecto. Solución: Configura GENERIC_TIMEZONE=Europe/Madrid en las variables de entorno del servidor.

Webhook responde 404

Causa: El workflow debe estar Active para que el webhook funcione. Solución: Activa el workflow y vuelve a probar la URL.

Los datos de un nodo no llegan al siguiente

Causa: El nodo anterior no devuelve datos o devuelve un array vacío. Solución: Añade un nodo Code con return [{ ...$json }] justo después para inspeccionar la salida.

n8n se queda sin memoria en el VPS

Causa: Workflows con muchas ejecuciones simultáneas o datos grandes en memoria. Solución: Limita ejecuciones concurrentes (EXECUTIONS_TIMEOUT=300), programa los workflows espaciados, o añade Redis como cola.

El nodo Email no envía correos

Causa: Configuración SMTP incorrecta o el servidor bloquea el puerto. Solución: Verifica que el puerto SMTP (587 para TLS, 465 para SSL) no está bloqueado por tu proveedor de VPS. Usa credenciales de aplicación si tienes 2FA.


⚡ Comparativa Rápida: n8n vs Zapier vs Make

Aspecton8nZapierMake
PrecioGratuito (self-hosted)Desde 20 €/mesDesde 9 €/mes
LímitesLos que ponga tu hardware100 tareas/mes en gratis1000 ops/mes en gratis
DatosTú los controlasEn servidores de ZapierEn servidores de Make
Nodos400+5000+ apps2000+ apps
Código personalizadoJavaScript nativoPython/JS (plan de pago)Solo en plan Pro
WebhooksIlimitadosLimitados por planLimitados por plan
Open sourceSíNoNo
Self-hostedSíNoNo
Curva aprendizajeMediaBajaBaja-Media

Veredicto: Si necesitas control total, datos privados o automatizaciones complejas con lógica programática, n8n gana. Si solo necesitas conectar apps populares rápido y sin pensar en infraestructura, Zapier o Make son más directos.


💡 Tips y Hacks

Usa $json para depurar rápido

En cualquier nodo Code, pon return [{ ...$json }] para ver exactamente qué datos llegan. Así depuras el flujo sin tener que revisar cada ejecución manualmente.

Pegatinas (Sticky Notes) como documentación viva

Añade nodos Sticky Note entre secciones del workflow para documentar qué hace cada parte. Se exportan con el JSON del workflow — ideal para compartir con el equipo o contigo mismo meses después.

Variables de entorno para secrets

Nunca hardcodees API keys o tokens. En self-hosted usa variables de entorno (N8N_VARIABLE_*) y en cloud usa el panel de Variables de n8n. Se referencian con {{$vars.clave}}.

HTTP Request con autenticación reutilizable

Configura Credentials reutilizables (OAuth2, API Key, Basic Auth) en el panel de credenciales. Así usas la misma auth en múltiples nodos sin repetirla y si cambia un token, lo actualizas en un solo sitio.

Webhook como API temporal

Cada workflow con un nodo Webhook genera una URL pública única. Úsala como endpoint temporal para recibir datos de cualquier servicio sin necesidad de desplegar un servidor.

Date expresiones para programar tareas

En el nodo Schedule Trigger puedes usar expresiones cron avanzadas. Ejemplo útil: ejecutar solo en días laborables:

0 9 * * 1-5

(Lunes a viernes a las 09:00)

Clona workflows de producción a prueba

Exporta un workflow como JSON (botón derecho → Export), impórtalo limpiando conexiones, modifica y prueba sin miedo a romper el original.

Formatea fechas al vuelo con Luxon

n8n incluye Luxon integrado en las expresiones. Transforma fechas directamente:

{{new Date($json.timestamp).toLocaleDateString("es-ES")}}

Error Workflow como manejador global

Configura un workflow como Error Workflow y se ejecutará automáticamente cuando cualquier otro workflow falle. Útil para logging centralizado, notificaciones a Slack o reinicios automáticos.

Etiquetas (Tags) para organizar

A medida que acumulas workflows, usa etiquetas de colores para clasificarlos por tipo (producción, pruebas, temporales), proyecto o prioridad.

Ejecuciones condicionales con IF

El nodo IF permite bifurcar el flujo. Combinado con Merge, crea ramas paralelas que luego se unen — ideal para workflows complejos sin duplicar nodos.

npm i -g n8n en un VPS mínimo

Un VPS de 1 GB RAM y 1 CPU corre n8n sin problemas para uso personal (hasta ~10 workflows activos). Si escalas, añade Redis como cola y duplica la RAM.


📚 Enlaces para Más Información

COMPARTIR:
COMENTARIOS:

📋 Contenido