Automatizaciones n8n con Claude Code: guía práctica
El eslabón que le falta a tu stack de IA
Tienes Claude Code para desarrollar, Claude API para razonar, y una docena de herramientas SaaS que gestionan tu negocio. El problema es que todo vive en silos. Un formulario llega, lo procesas a mano, copias datos al CRM, envías un correo, lo apuntas en una hoja. Cada paso, tú.
n8n es el pegamento entre Claude y el resto de tu stack. Un flujo visual donde cada nodo hace una cosa: recibir un webhook, llamar a la API de Claude, escribir en Notion, enviar a Slack. Y todo con código real cuando la lógica lo necesita.
Lo que hace especial la combinación n8n + Claude Code no es solo que funcionen juntos. Es que puedes usar Claude Code para construir los propios workflows de n8n, generar los JSON de configuración, depurar errores de nodo y diseñar arquitecturas de automatización completas desde la terminal.
Qué es n8n y por qué elegirlo sobre Zapier o Make
n8n es una plataforma de automatización de workflows open source y self-hostable. A diferencia de Zapier o Make, puedes instalarlo en tu propio servidor y ejecutar flujos sin límite de operaciones ni coste por ejecución.
Sus ventajas clave para proyectos con IA:
- Nodo HTTP Request nativo: llama a cualquier API, incluida la de Claude/Anthropic, sin integraciones especiales
- Código JavaScript/Python en cada nodo: lógica compleja donde la necesitas
- Triggers infinitos: webhooks, cron, email, cambios en base de datos, eventos de GitHub...
- Self-hosting: tus datos no salen de tu infraestructura, crítico para proyectos con datos sensibles
- Comunidad activa: más de 1.000 integraciones nativas ya construidas
Para instalarlo en local o en un VPS:
# Con Docker (recomendado)
docker run -d \
--name n8n \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n
# O con npm
npm install n8n -g
n8n start
Una vez arrancado, accedes en http://localhost:5678. La interfaz es visual: arrastras nodos, los conectas, configuras cada uno.
Claude API como nodo en n8n
n8n no tiene un nodo nativo de Anthropic aún (aunque la comunidad trabaja en ello), pero el nodo HTTP Request es suficiente para llamar a la API de Claude con total control.
Configuración del nodo HTTP Request para Claude
{
"method": "POST",
"url": "https://api.anthropic.com/v1/messages",
"headers": {
"x-api-key": "={{ $env.ANTHROPIC_API_KEY }}",
"anthropic-version": "2023-06-01",
"content-type": "application/json"
},
"body": {
"model": "claude-opus-4-6",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "={{ $json.prompt }}"
}
]
}
}
El $json.prompt es la variable que viene del nodo anterior en tu workflow. Puedes construir prompts dinámicos concatenando datos del trigger: el texto de un email, el contenido de un formulario, el diff de un commit.
La respuesta de Claude llega en $json.content[0].text. Desde ahí, el siguiente nodo puede escribirlo en Notion, enviarlo por Slack, guardarlo en una base de datos o disparar otro workflow.
Caso práctico 1: pipeline de publicación inteligente
Este workflow automatiza la revisión y publicación de contenido nuevo en el blog:
- Trigger: webhook que se dispara cuando hay un nuevo commit en
content/blog/ - Nodo HTTP (GitHub API): obtiene el diff del archivo MDX nuevo
- Nodo HTTP (Claude API): analiza el contenido y genera un hilo de Twitter/X y un post de LinkedIn adaptados
- Nodo If: si la puntuación SEO del artículo es ≥ 80, publica inmediatamente; si no, crea una tarea en Notion para revisión manual
- Nodo Slack: notifica al equipo con el resumen y los links generados
El paso crítico es el prompt que mandas a Claude. Un ejemplo real:
Eres el community manager de un blog de tecnología frontend e IA.
Tienes este artículo nuevo:
TÍTULO: {{ $json.title }}
DESCRIPCIÓN: {{ $json.description }}
EXTRACTO: {{ $json.excerpt }}
Genera:
1. Un hilo de 3 tweets en español, tono técnico y cercano
2. Un post de LinkedIn de 150 palabras con emojis y hashtags
Devuelve JSON con las claves "twitter_thread" (array) y "linkedin_post" (string).
La clave es pedir JSON estructurado. El nodo siguiente puede parsear la respuesta y enrutar cada pieza al canal correcto.
Caso práctico 2: cualificación de leads con IA
Un formulario de contacto llega con nombre, empresa, cargo y descripción del proyecto. En lugar de leerlo tú y decidir si merece una llamada, Claude lo hace primero:
Workflow: Formulario → Claude → CRM + Slack
El prompt de cualificación:
Analiza este lead y clasifícalo según estos criterios:
EMPRESA: {{ $json.company }}
CARGO: {{ $json.role }}
PROYECTO: {{ $json.project_description }}
PRESUPUESTO: {{ $json.budget }}
Devuelve JSON con:
- score: número del 1 al 10 (10 = lead ideal)
- reasoning: 2 frases explicando el score
- priority: "alta" | "media" | "baja"
- suggested_response: borrador de respuesta personalizada (máx. 100 palabras)
Con un score ≥ 7, el workflow crea automáticamente un deal en HubSpot o Pipedrive, envía el borrador de respuesta a Slack para que lo revises y lo aprobar con un clic, y agenda un recordatorio de seguimiento. Los leads con score < 4 reciben una respuesta automática educada y quedan en una lista de nurturing.
Este tipo de automatización, bien calibrada, puede eliminar el 70% del trabajo manual de cualificación sin perder ningún lead importante.
Crear workflows n8n con Claude Code desde cero
n8n exporta e importa sus workflows como JSON. Eso significa que puedes pedirle a Claude Code que genere el JSON completo de un workflow desde una descripción en lenguaje natural, sin abrir la interfaz visual de n8n.
Paso 1: describe el workflow en tu terminal
claude "Crea el JSON de un workflow n8n con estos nodos:
1. Schedule Trigger: cada día a las 9am
2. Read Binary File: lee el archivo content/blog/last-post.md
3. HTTP Request POST a https://api.anthropic.com/v1/messages con la API de Claude,
enviando el contenido del archivo como prompt para generar un resumen de 3 puntos
4. Slack: envía el resumen al canal #blog-updates
Usa $env.ANTHROPIC_API_KEY y $env.SLACK_WEBHOOK_URL para las credenciales.
Devuelve solo el JSON del workflow, listo para importar en n8n."
Paso 2: revisa el JSON generado
Claude Code devuelve algo así (simplificado para claridad):
{
"name": "Daily Blog Summary",
"nodes": [
{
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"parameters": {
"rule": { "interval": [{ "field": "hours", "hoursInterval": 24 }] },
"triggerAtHour": 9
},
"position": [250, 300]
},
{
"name": "Read Blog Post",
"type": "n8n-nodes-base.readBinaryFile",
"parameters": {
"filePath": "content/blog/last-post.md"
},
"position": [450, 300]
},
{
"name": "Claude Summarize",
"type": "n8n-nodes-base.httpRequest",
"parameters": {
"method": "POST",
"url": "https://api.anthropic.com/v1/messages",
"headers": {
"values": [
{ "name": "x-api-key", "value": "={{ $env.ANTHROPIC_API_KEY }}" },
{ "name": "anthropic-version", "value": "2023-06-01" }
]
},
"body": {
"model": "claude-sonnet-4-6",
"max_tokens": 512,
"messages": [{
"role": "user",
"content": "Resume en 3 puntos clave este artículo:\n\n={{ $binary.data.toString() }}"
}]
}
},
"position": [650, 300]
},
{
"name": "Slack Notify",
"type": "n8n-nodes-base.slack",
"parameters": {
"operation": "postMessage",
"channel": "#blog-updates",
"text": "={{ $json.content[0].text }}"
},
"position": [850, 300]
}
],
"connections": {
"Schedule Trigger": { "main": [[{ "node": "Read Blog Post", "type": "main", "index": 0 }]] },
"Read Blog Post": { "main": [[{ "node": "Claude Summarize", "type": "main", "index": 0 }]] },
"Claude Summarize": { "main": [[{ "node": "Slack Notify", "type": "main", "index": 0 }]] }
}
}
Paso 3: importar en n8n
- Copia el JSON a un archivo:
workflow-blog-summary.json - En n8n: menú hamburguesa → Import from File → selecciona el archivo
- El workflow aparece en la interfaz con todos los nodos ya conectados
- Haz clic en cada nodo para verificar los parámetros y añadir las credenciales desde el vault de n8n
- Activa el workflow con el toggle en la esquina superior derecha
En menos de 5 minutos tienes el workflow funcionando sin haber arrastrado un solo nodo manualmente.
Iterar con Claude Code cuando algo no encaja
Si al probar el workflow ves que el nodo de Slack no recibe el formato correcto, le describes el problema a Claude Code directamente:
claude "El nodo Slack de mi workflow n8n recibe el texto de Claude
pero incluye el JSON completo de la respuesta en lugar de solo el texto.
La respuesta de Claude tiene esta estructura:
{ content: [{ type: 'text', text: '...' }] }
¿Cómo ajusto el campo 'text' del nodo Slack para extraer solo el texto?"
Claude Code te devuelve la expresión correcta: ={{ $json.content[0].text }} y explica por qué funciona así. No necesitas revisar la documentación de n8n: describes el problema en lenguaje natural y obtienes la solución.
Depurar workflows existentes con Claude Code
Cuando un workflow ya existente falla, exportas el JSON completo (menú del workflow → Download) y se lo das a Claude Code con el mensaje de error:
claude "Este workflow de n8n falla con el error:
'Cannot read properties of undefined (reading content)'
en el nodo 'Process Claude Response'.
Aquí está el JSON del workflow: [pega el JSON]
Identifica el problema y dame el JSON corregido."
Claude Code lee la estructura del workflow, detecta que content[0].text falla cuando la API devuelve un error en lugar de una respuesta válida, y propone añadir un nodo IF antes que compruebe si $json.error existe, enrutando los errores a un log separado.
Arquitectura recomendada para producción
Para usar n8n + Claude en producción real, estas son las decisiones de arquitectura que tomamos en nuestros proyectos de integración IA:
| Decisión | Opción A | Opción B |
|---|---|---|
| Hosting n8n | n8n Cloud (gestionado) | Docker en VPS (control total) |
| API Keys | Variables de entorno en n8n ($env.KEY) | Secret manager externo |
| Modelo Claude | claude-sonnet-4-6 (balance coste/calidad) | claude-opus-4-6 para tareas críticas |
| Rate limiting | Nodo Wait entre llamadas a Claude | Queue con RabbitMQ para alto volumen |
| Logging | Execution history de n8n | Exportar a Datadog / Grafana |
Para empezar, n8n Cloud en el plan gratuito (hasta 5 workflows activos) con claude-sonnet-4-6 es suficiente para validar la mayoría de automatizaciones. Una vez que el ROI está claro, migras a self-hosted y controlas costes.
Conclusión
n8n + Claude Code es una combinación que reduce drásticamente el coste de implementar automatizaciones inteligentes en negocios reales. n8n pone la infraestructura visual y las integraciones; Claude pone el razonamiento; Claude Code te ayuda a construir y depurar los workflows sin necesidad de ser experto en n8n.
El resultado: flujos que antes requerían semanas de desarrollo personalizado ahora se prototipan en horas y se ponen en producción en días.
Si quieres implementar este tipo de automatizaciones en tu negocio o proyecto, cuéntame qué procesos quieres automatizar y lo diseñamos juntos: