integrar Claude con n8n en un VPS
Guía para conectar Claude con n8n en un VPS propio. Incluye ejemplos de workflows, configuración de credenciales y análisis de costos por ejecución.
Lo que vas a construir
Tres flujos de trabajo de IA funcionales en la instancia de n8n que ya ejecutas: un webhook que resume cualquier contenido que le envíes, un lector de feeds programado que convierte artículos en filas estructuradas de una hoja de cálculo, y un AI Agent que llama a una API HTTP por su cuenta para responder preguntas. Este es el equivalente sin código de llamar a la API de Claude desde Python en tu VPS — misma API, mismos tokens, misma factura, pero la orquestación reside en nodos de n8n en lugar de un script.
Asumo que n8n ya está funcionando bajo HTTPS según la guía de n8n self-hosted en Docker. Si no es así, haz eso primero — los webhooks necesitan un endpoint TLS real, y el almacén de credenciales donde vas a guardar una API key necesita la copia de seguridad de la encryption-key que menciona esa guía.
Los problemas interesantes aquí no son de arrastrar y soltar. Son la selección de modelos por nodo, los campos de prompt que interpolan silenciosamente undefined, y el hecho de que una automatización se ejecuta sin supervisión — un flujo de trabajo que cuesta medio centavo por ejecución es barato hasta que un bucle de reintentos lo ejecuta cuatro mil veces durante la noche. La mayor parte de esta guía trata sobre eso.
Una credencial, encriptada con la clave que respaldaste
Obtén una API key en la Anthropic Console en platform.claude.com — Settings, luego API Keys, y crea una clave con un nombre como n8n-vps. Solo se muestra una vez. Financia la cuenta o configura la facturación; el uso de la API es de pago por token y es totalmente independiente de cualquier suscripción de Claude.ai.
En n8n: Credentials, Create credential, elige Anthropic, pega la clave en el campo API Key y guarda. Cada nodo de Claude en cada flujo de trabajo referencia esta única credencial almacenada — nunca pegues la clave directamente en un nodo.
Dos notas operativas. Primero, n8n encripta las credenciales almacenadas con N8N_ENCRYPTION_KEY. Si configuras esa variable de entorno explícitamente en tu archivo compose según la guía de n8n, tu credencial sobrevivirá a la reconstrucción del contenedor; si dejas que n8n genere una y luego pierdes el volumen, cada credencial almacenada — incluida esta clave — será un ciphertext irrecuperable. Respalda la clave ahora si te lo saltaste. Segundo, trata el almacén de credenciales de n8n como el radio de explosión: cualquier persona que pueda editar flujos de trabajo en tu instancia puede realizar peticiones con tu clave de Anthropic. Establece un límite de gasto en la Console bajo Settings para que una instancia comprometida o descontrolada tenga un tope.
La elección del modelo es una decisión por nodo
El menú desplegable de modelos en los nodos de Claude de n8n se obtiene en vivo desde la API, por lo que muestra lo que tu clave puede acceder. A partir de julio de 2026, la línea de productos y el precio de la API por millón de tokens de entrada/salida es: Claude Haiku 4.5 (claude-haiku-4-5) a $1/$5 con una ventana de contexto de 200K, Claude Sonnet 5 (claude-sonnet-5) a $3/$15 — $2/$10 de introducción hasta el 31 de agosto de 2026 — y Claude Opus 4.8 (claude-opus-4-8) a $5/$25, ambos con ventanas de contexto de 1M de tokens. También está Claude Fable 5 (claude-fable-5) a $10/$50 para las tareas de razonamiento más difíciles; nada en esta guía lo necesita. Usa esos IDs exactos — una variante con sufijo de fecha que recuerdes de un tutorial antiguo dará un error 404, y los precios cambian, así que verifica platform.claude.com antes de confiar en cualquier número que leas en cualquier lugar, incluido aquí.
El hábito a desarrollar: elige el modelo por nodo, no por plataforma. Clasificación, extracción, resumen, enrutamiento — lo esencial de la automatización — funciona perfectamente en Haiku a un tercio del precio de lista de Sonnet y a una quinta parte del de Opus. Reserva Sonnet para agentes y razonamiento de múltiples pasos, y Opus para el caso raro donde una respuesta incorrecta cuesta más que los tokens. Un flujo de trabajo con cinco nodos de Claude puede y debe mezclar modelos.
Los dos nodos de Claude, y cuál usar en cada caso
n8n incluye dos integraciones distintas de Anthropic, y elegir la incorrecta es el error más común de los principiantes.
El nodo Anthropic es un nodo de aplicación regular: una petición de entrada, una respuesta de salida. Su recurso Text tiene una operación Message a Model, además de operaciones para analizar imágenes y documentos. Úsalo siempre que la lógica del flujo de trabajo resida en n8n — trigger, llamada a Claude, siguiente nodo. Los flujos de trabajo 1 y 2 a continuación lo usan o usan su equivalente en cadena.
El nodo Anthropic Chat Model es un sub-nodo — un pequeño adjunto que suministra el modelo a un nodo raíz como AI Agent o Basic LLM Chain. No tiene trigger ni salida propia; expone el selector de modelos además de opciones de muestreo como Maximum Number of Tokens y Sampling Temperature. Una advertencia de la documentación de n8n que vale la pena memorizar: las expresiones dentro de los sub-nodos siempre se resuelven con el primer elemento de entrada, no con cada elemento — coloca las expresiones por elemento en los campos de prompt del nodo raíz, no en el sub-nodo.
Workflow 1: webhook de entrada, resumen de salida
El "hello-world" de la automatización con IA: cualquier cosa enviada por POST a una URL se resume y llega a Slack o a tu bandeja de entrada.
- Nodo Webhook — HTTP Method POST, path
summarize. n8n te da una URL de prueba y una URL de producción; la de producción solo escucha una vez que el flujo de trabajo está activo. - Nodo Anthropic — Message a Model, modelo
claude-haiku-4-5, Max Tokens alrededor de 300. - Nodo Slack (o Send Email) — envía el texto de la respuesta a un canal.
El prompt es donde las expresiones de n8n se encuentran con Claude. Un cuerpo POST llega bajo $json.body, por lo que el campo del mensaje del usuario se ve así:
Summarize the following feedback in three bullets, then one line:
verdict: praise | complaint | churn-risk. No preamble.
{{ $json.body.text }}Coloca las instrucciones de rol y formato en el campo de system prompt del nodo, no en el mensaje del usuario — el system prompt permanece constante mientras el payload varía, lo que mantiene el comportamiento estable y hace que el prompt sea legible seis meses después. Pruébalo desde el propio VPS:
curl -X POST https://n8n.example.com/webhook/summarize \
-H 'Content-Type: application/json' \
-d '{"text": "Third support ticket this month about slow disk IO..."}'Costo por ejecución en Haiku: un payload de 1,200 tokens más el prompt cuesta aproximadamente $0.0012 de entrada, y 300 tokens de salida cuestan $0.0015 — aproximadamente un cuarto de centavo. Mil ejecuciones al mes cuestan menos de $3. El mismo nodo apuntando a Opus 4.8 cuesta aproximadamente cinco veces eso. Esa proporción, multiplicada por cada flujo de trabajo que construyas, es la razón por la que el hábito de elegir el modelo por nodo es importante.
Workflow 2: RSS programado a filas estructuradas
Ahora algo con un reloj y salida estructurada: leer un feed RSS cada hora, clasificar cada elemento y añadir filas a una hoja de cálculo.
- Schedule Trigger — cada hora.
- RSS Read — la URL del feed. Devuelve un elemento por artículo.
- Basic LLM Chain — con un sub-nodo Anthropic Chat Model configurado en
claude-haiku-4-5, y un sub-nodo Structured Output Parser con un esquema JSON. - Google Sheets (o Postgres) — añadir una fila por elemento.
El Structured Output Parser es lo que convierte el "Claude, por favor devuelve JSON" de una esperanza en un contrato: valida la respuesta del modelo contra tu esquema y falla el elemento de forma explícible en lugar de escribir filas con basura. Un esquema como:
{
"type": "object",
"properties": {
"category": { "type": "string", "enum": ["release", "security", "tutorial", "other"] },
"relevance": { "type": "number" },
"one_line_summary": { "type": "string" }
},
"required": ["category", "relevance", "one_line_summary"]
}Y el prompt de la cadena referencia el elemento del feed:
Classify this article for a VPS hosting audience.
Title: {{ $json.title }}
Content: {{ $json.contentSnippet }}Las matemáticas de costo cambian aquí: esto es por elemento, no por ejecución. Cincuenta artículos por hora, las veinticuatro horas del día, son 36,000 llamadas a Claude al mes — en Haiku quizás entre $40–90 dependiendo de la longitud del artículo, en Opus aproximadamente cinco veces eso. Elimina duplicados antes del nodo LLM (un simple IF contra enlaces vistos anteriormente, o el nodo Remove Duplicates de n8n) y el número cae drásticamente, porque la mayoría de las consultas por hora no contienen nada nuevo. El token más barato es la llamada que nunca realizas.
Workflow 3: un AI Agent que utiliza herramientas
Los dos primeros flujos de trabajo son pipelines — tú decides los pasos. Un nodo AI Agent invierte eso: le das a Claude un objetivo y herramientas, y él decide qué herramientas llamar y en qué orden hasta que termine. n8n requiere un sub-nodo de chat model y al menos un sub-nodo de herramienta adjunto.
Una implementación concreta — un asistente de operaciones que responde "qué está caído y por qué" desde tu monitorización:
- Chat Trigger (o webhook) — llega la pregunta.
- AI Agent — con un sub-nodo Anthropic Chat Model configurado en
claude-sonnet-5. Los agentes planifican y encadenan llamadas a herramientas; Haiku puede manejar agentes simples de una sola herramienta, pero Sonnet es el mínimo razonable una vez que las herramientas se multiplican. - Nodo HTTP Request adjunto como una herramienta — apuntando a tu Uptime Kuma status API o endpoint de Zabbix. Una segunda herramienta HTTP puede llamar a cualquier otra cosa con una API REST.
Dos configuraciones hacen la mayor parte del trabajo. El System Message del agente define el trabajo: "Eres un asistente de operaciones. Usa la herramienta de estado para verificar el estado actual del monitor antes de responder. Reporta solo los monitores que estén caídos, con su duración". Y la description de cada herramienta no es documentación para humanos — es cómo Claude decide cuándo llamarla. "Returns current up/down state for all monitored services as JSON" se llama en los momentos adecuados; "status API" se ignora o se usa mal. Cuando adjuntes el nodo HTTP Request como una herramienta, habilita su opción Optimize Response y selecciona los campos JSON que importan — de lo contrario, cada respuesta verbosa de la API se mete en el contexto del modelo como tokens de entrada por los que pagas.
Establece Max Iterations en el agente (el valor por defecto es 10) al número más pequeño que funcione — es la diferencia entre "el agente se rindió tras 4 llamadas a herramientas" y un bucle de una docena de viajes de ida y vuelta del modelo. Y entiende la estructura de facturación: cada iteración reenvía la conversación completa hasta el momento — system message, pregunta, cada resultado de herramienta previo — como tokens de entrada. Una ejecución de agente de seis iteraciones puede alcanzar fácilmente un total de 20,000 tokens de entrada acumulados y 2,000 de salida: en el precio de introducción de Sonnet 5 son unos $0.06, aproximadamente $0.09 con el estándar de $3/$15 — llámalo veinte veces una ejecución de resumen simple. Si te encuentras añadiendo muchas herramientas a un solo agente, ese es el punto donde ejecutar servidores MCP en tu VPS se convierte en la arquitectura más limpia.
Guardrails de costo, porque nadie está mirando
Un flujo de trabajo sin supervisión necesita los controles que un humano frente a un teclado proporciona implícitamente. Cuatro capas, de la más barata a la más cara.
Max Tokens en cada nodo de Claude. Es un límite estricto de salida. Un resumidor necesita 300, un clasificador 100. Esto limita el lado caro del balance ($5–$25 por millón de tokens de salida frente a $1–$5 para la entrada) y funciona como un freno de seguridad — un error en el prompt que haga que Claude divague cuesta 300 tokens, no 8,000.
Modelo por nodo. Cubierto anteriormente; es un multiplicador de precio de cinco a diez veces en la línea actual y tarda diez segundos en configurarse.
Limita los bucles. Max Iterations en agentes. Un timeout del flujo de trabajo en los ajustes del workflow para que una ejecución bloqueada muera en lugar de seguir girando. Y ten cuidado con el Retry On Fail por nodo: es la herramienta adecuada para errores transitorios, pero los reintentos multiplican el costo — un Max Tries de 3 con un Wait Between Tries de 5000 ms significa que un fallo persistente te factura hasta tres veces por elemento antes de rendirse. Nunca envuelvas en un reintento un nodo que ya tuvo éxito de forma costosa.
Un flujo de error como respaldo. Crea un flujo de trabajo que comience con el nodo Error Trigger que publique el nombre del flujo fallido y el error en Slack, y luego establécelo como el Error Workflow en los ajustes de cada flujo de IA. El modo de fallo que esto detecta es el feo: un error en un flujo programado que falla en cada ejecución, cada hora, durante una semana — cada ejecución quemando tokens antes de morir. Combínalo con un límite de gasto mensual en la Anthropic Console y revisa la página de uso de la Console los primeros días tras activar cualquier cosa programada. Si quieres entender exactamente por qué se te está cobrando, la guía de uso de tokens lo desglosa.
Modos de fallo, con los errores que verás
El nodo falla instantáneamente con "Authorization failed - please check your credentials." La API devolvió un 401. El cuerpo subyacente es:
{"type": "error", "error": {"type": "authentication_error", "message": "invalid x-api-key"}}Una clave mal pegada — truncada, con espacios al final, o el marcador de posición de un tutorial. Recrea la credencial de n8n y pega de nuevo; si funcionó ayer, comprueba si la clave fue revocada en la Console o si una restauración de volumen revirtió a una credencial encriptada con un N8N_ENCRYPTION_KEY diferente.
Las ejecuciones fallan en ráfagas con un 429 rate_limit_error, con un mensaje similar a "Number of request tokens has exceeded your per-minute rate limit." Los límites de tasa son cubos por minuto, y n8n hace que sea muy fácil lanzar cincuenta ejecuciones de webhook o RSS simultáneamente. Arréglalo estructuralmente: procesa los elementos en secuencia (Loop Over Items) en lugar de en paralelo, y establece Retry On Fail con Max Tries 3 y Wait Between Tries en su máximo de 5000 ms — n8n limita ese campo a 5000 ms. Cuando necesites un tiempo de espera más largo para que los reintentos caigan en la siguiente ventana de minuto, coloca un nodo Wait en la ruta de error o procesa los elementos uno a uno. La respuesta lleva un encabezado retry-after que te dice exactamente cuánto esperar — el wait fijo de n8n no puede leerlo, así que construye la pausa larga tú mismo.
404 not_found_error al nombrar tu modelo. El cuerpo repite el error tipográfico:
{"type": "error", "error": {"type": "not_found_error", "message": "model: claude-haiku-4.5"}}Puntos en lugar de guiones (4.5 por 4-5), un sufijo de fecha de un post de blog desactualizado, o un modelo retirado. Corrige el ID comparándolo con la lista actual — esto afecta a quienes escriben en el campo del modelo como una expresión en lugar de elegir del menú desplegable.
Claude responde a una pregunta que no hiciste. Sin error en ninguna parte — la ejecución es verde. Una expresión de n8n que referencia un campo inexistente, como {{ $json.body.text }} cuando el payload usó message, interpola la cadena literal undefined en tu prompt, y Claude responde con entusiasmo a un prompt sobre la nada. Si el nodo referenciado no se ejecutó en absoluto, obtendrás "Referenced node is unavailable", pero un campo faltante es silencioso. Antes de activar, ejecuta siempre una vez con datos reales y lee el prompt renderizado real en el panel de entrada del nodo — el editor de expresiones previsualiza el valor resuelto, y undefined está justo ahí si buscas.
FAQ
¿Cómo conecto Claude con n8n?
Crea una API key en la Anthropic Console en platform.claude.com, luego en n8n añade una credencial de tipo Anthropic y pégala en el campo API Key. Cada nodo de Claude — el nodo de aplicación Anthropic y el sub-nodo Anthropic Chat Model — referencia esa credencial almacenada. n8n la encripta con N8N_ENCRYPTION_KEY, así que respalda esa clave o tus credenciales se perderán con el volumen.
¿Cuánto cuesta un flujo de trabajo de IA por ejecución?
Estima los tokens por ejecución y luego multiplícalos por los precios por millón del modelo — a partir de julio de 2026, Haiku 4.5 es $1/$5 por millón de tokens de entrada/salida y Sonnet 5 es $3/$15 ($2/$10 de introducción hasta agosto de 2026). Un resumen por webhook en Haiku cuesta aproximadamente un cuarto de centavo; una ejecución de agente en Sonnet con varias llamadas a herramientas se acerca a los $0.06–$0.10 porque cada iteración reenvía toda la conversación como entrada. Verifica la ejecución en la página de uso de la Console en lugar de confiar en estimaciones.
¿Qué modelo de Claude debo usar para automatizaciones en n8n?
Haiku 4.5 para clasificación, extracción, resumen y enrutamiento — trabajo de alto volumen donde la velocidad y el precio dominan. Sonnet 5 para nodos AI Agent y razonamiento de múltiples pasos. Opus 4.8 solo donde una respuesta incorrecta sea lo suficientemente cara como para justificar su precio de lista de $5/$25 — cinco veces Haiku, un poco menos de dos veces Sonnet. Configura el modelo por nodo, no por flujo de trabajo — un flujo de trabajo puede mezclar los tres.
¿Cómo evito que un flujo de trabajo de n8n gaste de más en la API de Claude?
Aplica capas de protección: un Max Tokens bajo en cada nodo de Claude, Max Iterations en agentes, un timeout del flujo de trabajo y configuraciones conservadoras de Retry On Fail para que los fallos no multipliquen el gasto de tokens. Luego añade un flujo de trabajo de Error Trigger que te alerte en Slack cuando cualquier flujo de IA falle, y establece un límite de gasto mensual en la Anthropic Console como el tope máximo que nada en el VPS pueda sobrepasar.
¿Las llamadas a herramientas de AI Agent tienen un coste extra?
No hay una tarifa de herramienta separada, pero las herramientas no son gratuitas: cada resultado de herramienta se devuelve al modelo como tokens de entrada, y cada iteración del agente reenvía toda la conversación hasta el momento. Una respuesta de API verbosa pasada sin filtrar puede eclipsar tu prompt real — habilita Optimize Response en las herramientas HTTP Request y devuelve solo los campos que el agente necesita.