Back to Blog
Técnico

Automatización de Ventas con n8n + Claude: Guía Técnica Completa

Junio 202611 min read
Automatización de Ventas con n8n + Claude: Guía Técnica Completa

Esta guía es para equipos técnicos de ventas, RevOps y fundadores de startups B2B que quieren construir su propia capa de automatización con IA sin depender de un SaaS cerrado. Vamos a montar un sistema completo que cualifica leads, redacta drafts, detecta respuestas interesantes y dispara alertas internas. La stack: n8n self-hosted o cloud + Claude API + HubSpot como CRM + Slack para notificaciones.

Tiempo estimado de implementación de los cuatro workflows: 6 a 10 horas si ya conoces n8n, 15-20 horas si vienes de Zapier. Coste mensual a 1.000 leads procesados: entre 22 y 38 dólares dependiendo del modelo de Claude que uses.

Arquitectura del sistema

El sistema tiene cuatro componentes que se hablan así: HubSpot dispara webhooks cuando hay eventos relevantes (nuevo lead, respuesta recibida, cambio de fase). n8n recibe esos webhooks y orquesta los workflows. Claude API procesa el contenido (cualificación, generación de drafts, clasificación). Slack recibe alertas accionables para el equipo humano. HubSpot vuelve a recibir actualizaciones (custom properties, notas, tareas).

En términos de topología: HubSpot y Slack son los extremos visibles para el equipo. n8n es el orquestador. Claude es el cerebro. Si quieres añadir Supabase o Postgres para guardar histórico de procesamientos y alimentar dashboards, ese es el quinto componente recomendado.

Por qué n8n + Claude (vs Zapier + GPT)

La pregunta lógica: por qué no Zapier + GPT-4.1, que es la stack que la mayoría conoce. Hay tres razones técnicas y una económica.

  • Coste a escala: n8n self-hosted cuesta entre 0 y 20 dólares al mes en infra. Zapier a partir de 2.000 ejecuciones empieza en 49 dólares al mes y escala muy rápido. A 50.000 ejecuciones, Zapier son 600+ dólares al mes vs n8n self-hosted en 30 dólares.
  • Lógica compleja: n8n permite funciones JavaScript inline, loops, branches, error handling y subworkflows. Zapier es lineal y obliga a montar zaps separados que se complican.
  • Claude vs GPT para análisis de texto largo: Claude Sonnet 4 tiene mejor rendimiento en tareas de clasificación con contexto largo (transcripciones de calls, emails de varios párrafos, análisis de intent multi-señal) y precio 30% menor por token de output que GPT-4.1.
  • Self-hosting y privacidad: n8n self-hosted en tu infra significa que los datos del CRM no salen de tu perímetro hacia un tercero. Para SaaS B2B con clientes enterprise eso es no negociable.

Dicho esto: si no tienes experiencia con Docker o servidores, empieza con n8n Cloud (20 dólares al mes plan Starter) y migra cuando necesites optimizar coste.

Setup paso a paso

Paso 1 — Levantar n8n. Opción self-hosted: docker compose up con la imagen oficial n8nio/n8n. Necesitas un VPS de 2 GB RAM mínimo (Hetzner CX22 a 4,5 euros al mes va sobrado). Opción cloud: registrarte en n8n.cloud, plan Starter.

Paso 2 — Crear API key en Anthropic console.anthropic.com. Por defecto los nuevos equipos arrancan con 5 dólares de crédito, suficiente para los primeros tests. Configura el rate limit Tier 1 (50 RPM, 40K input TPM) si vas a procesar más de 100 leads al día.

Paso 3 — En n8n, instalar el nodo oficial de Anthropic (Settings → Community Nodes → install @n8n/n8n-nodes-anthropic). Si no usas el nodo oficial, también funciona con HTTP Request apuntando a api.anthropic.com/v1/messages.

Paso 4 — Configurar credenciales: Anthropic API key, HubSpot Private App token (Settings → Integrations → Private Apps en HubSpot, con scopes crm.objects.contacts.read/write y crm.objects.deals.read/write), Slack Bot Token (api.slack.com/apps → crear app → OAuth & Permissions con scope chat:write).

Paso 5 — En HubSpot, crear estos custom properties en el objeto Contact: lead_score_ai (number 0-100), lead_score_reasoning (multi-line text), icp_match_reason (multi-line text), ai_intent_signals (multi-line text), ai_last_classification (single line), ai_processed_at (datetime). Estos campos los van a escribir los workflows.

Workflow 1 — Cualificación automática de lead nuevo

Trigger: HubSpot webhook al crear un Contact con lifecyclestage = lead. Procesamiento: enriquecimiento básico + cualificación por Claude + escritura de score en HubSpot + notificación condicional a Slack.

Estructura de nodos: (1) Webhook node escucha en POST /qualify-lead. (2) HubSpot node carga datos completos del contacto (email, empresa, web, cargo, país). (3) HTTP Request enriquece la web con un scrape ligero (fetch del HTML y extracción del title, meta description y primer h1) o llama a una API de enriquecimiento como Clearbit/Apollo si tienes presupuesto. (4) Anthropic node llama a Claude Sonnet 4 con el prompt de cualificación. (5) Set node parsea el JSON de respuesta. (6) HubSpot node actualiza los custom properties. (7) IF node bifurca según el score (mayor que 70 va a alerta hot, menor o igual a 70 termina silenciosamente). (8) Slack node envía mensaje al canal #hot-leads con resumen y botón a HubSpot.

Prompt para Claude (system + user). System: "Eres un analista de cualificación B2B para [NOMBRE EMPRESA], un SaaS que vende [PROPUESTA DE VALOR EN 1 FRASE] a [ICP RESUMIDO]. Tu trabajo es evaluar leads inbound contra el ICP y devolver un score 0-100 y una justificación. Sé conservador: solo das score mayor que 80 si hay señales fuertes y verificables. Devuelve siempre JSON válido sin texto adicional." User: "Lead a evaluar: email [EMAIL], cargo [CARGO], empresa [EMPRESA], web [URL]. Datos enriquecidos de la web: title=[TITLE], description=[DESCRIPTION], h1=[H1]. Información adicional del formulario: [MENSAJE O CAMPOS EXTRA]. Devuelve JSON con esta estructura exacta: {\"score\": número 0-100, \"reasoning\": string 1-3 frases, \"icp_match_reason\": string explicando qué señales del lead coinciden con nuestro ICP, \"intent_signals\": array de strings con señales de intent detectadas, \"recommended_action\": uno de [route_to_ae, nurture_sequence, no_action]}."

Coste por lead procesado: aprox 1.200 input tokens + 200 output tokens con Claude Sonnet 4 = 0,0078 dólares. A 1.000 leads al mes: 7,80 dólares.

Workflow 2 — Generación de borrador de cold email

Trigger: HubSpot workflow que dispara webhook cuando un Contact cumple condiciones (lead_score_ai mayor que 60 + lifecyclestage = MQL). Procesamiento: load contexto + draft con tres variantes + crear nota en HubSpot con los tres drafts + tarea para el SDR.

Nodos: (1) Webhook. (2) HubSpot Get Contact con todos los enrichment data. (3) HTTP Request a tu endpoint propio o API externa para obtener noticias recientes de la empresa (Google News RSS o NewsAPI funciona bien). (4) Anthropic node con prompt de drafting. (5) Set node con parsing. (6) HubSpot Create Note con los tres drafts formateados en HTML. (7) HubSpot Create Task asignada al owner del contacto, con due date = 1 día.

Prompt para Claude. System: "Eres un copywriter B2B senior. Generas cold emails para [EMPRESA], que vende [PRODUCTO]. Reglas absolutas: máximo 90 palabras por email, NUNCA empezar con saludos genéricos, primer párrafo SIEMPRE específico al prospect, CTA suave de pregunta (NO reunión directa)." User: "Genera 3 variantes de cold email para: [DATOS DEL CONTACTO + ENRIQUECIMIENTO + NOTICIAS RECIENTES]. Variante A técnica, variante B ROI, variante C conversacional. Devuelve JSON: {\"variant_a\": {\"subject\": string, \"body\": string}, \"variant_b\": {...}, \"variant_c\": {...}, \"recommended_variant\": una de a/b/c, \"recommendation_reason\": string}."

Coste: aprox 2.500 input tokens + 600 output tokens = 0,025 dólares por lead. A 1.000 leads: 25 dólares al mes.

Workflow 3 — Detección de respuesta interesada

Trigger: webhook desde tu herramienta de email (Gmail API push, Apollo, Lemlist o Smartlead webhook). Procesamiento: clasificación de la respuesta + actualización de HubSpot + ruta condicional según temperatura.

Nodos: (1) Webhook con payload del email respondido. (2) HubSpot Find Contact por email del sender. (3) Anthropic node clasifica la respuesta. (4) Switch node con 6 ramas según clasificación. (5) Por cada rama: actualizar HubSpot + acción específica (crear deal, mover stage, mandar a nurture, etc.). (6) Las ramas HOT y WARM disparan notificación Slack al SDR con el contexto.

Prompt. System: "Clasificas respuestas de prospects B2B a cold emails. Tu output es siempre JSON estricto, sin texto adicional. Categorías posibles: HOT, WARM, CURIOUS, POLITE_NO, HARD_NO, CONFUSION, OUT_OF_OFFICE, WRONG_PERSON." User: "Email original enviado: [BODY ORIGINAL]. Respuesta recibida del prospect: [BODY RESPUESTA]. Clasifica con: {\"category\": string, \"confidence\": número 0-1, \"quoted_evidence\": string fragmento que justifica, \"recommended_next_action\": string, \"suggested_reply_draft\": string máximo 70 palabras (solo si category es HOT, WARM o CURIOUS, sino null), \"sentiment_summary\": string 1 frase}."

Coste: 800 input tokens + 250 output tokens = 0,006 dólares por respuesta. A 500 respuestas mensuales: 3 dólares.

Workflow 4 — Alerta de hot lead en tiempo real

Este workflow no usa Claude directamente, es un agregador que cruza señales de los tres workflows anteriores y dispara una alerta de máxima prioridad cuando se cumplen condiciones críticas. Filosofía: el equipo recibe pocas alertas (3-8 al día) pero todas son accionables.

Trigger: HubSpot Contact updated con cambio en lead_score_ai o ai_last_classification. Procesamiento: evaluación de reglas y disparo de Slack interactivo.

Nodos: (1) Webhook HubSpot Contact updated. (2) HubSpot Get Contact completo. (3) Function node con JavaScript que evalúa: isHotLead = (lead_score_ai mayor que 80) o (ai_last_classification = HOT) o (lead_score_ai mayor que 60 y intent_signals incluye señal premium como funding o hiring). (4) IF node sigue solo si isHotLead = true. (5) Slack node con mensaje formateado: nombre + empresa + score + reasoning + 3 botones (Take Ownership, Schedule Call, Snooze). Los botones son interactive components que vuelven a n8n vía otro webhook para ejecutar la acción.

Costes estimados al mes

Para un equipo procesando 1.000 leads nuevos al mes, generando 600 drafts y recibiendo 300 respuestas: Claude API total aprox 22 dólares al mes. n8n self-hosted en Hetzner: 4,5 euros al mes. HubSpot Starter incluido si ya lo tienes. Slack Free funciona. Total: alrededor de 30 dólares al mes de infraestructura nueva.

Compáralo con un SaaS de sales automation con IA tipo Outreach.io Enterprise (250+ dólares por usuario al mes) o Apollo Advanced (119 dólares por usuario al mes). Para 5 SDRs el ahorro mensual es de 500 a 1.200 dólares.

Errores comunes y cómo evitarlos

  • Error 1: pedir a Claude que devuelva texto libre en lugar de JSON estructurado. Resultado: parsing roto. Solución: en el system prompt deja claro que el output debe ser JSON válido sin texto adicional, usa el parámetro response_format si tu modelo lo soporta, y añade un nodo de validación que reintente si el parsing falla.
  • Error 2: no usar prompt caching de Anthropic. Si tu system prompt es largo (más de 1024 tokens) y lo usas en cientos de llamadas al día, activar cache_control reduce coste hasta un 90% en input tokens del system. En el body de la request marca el bloque cacheable con cache_control: {type: ephemeral}.
  • Error 3: meter toda la lógica en un mega-workflow. Resultado: imposible de mantener. Solución: subworkflows. Un workflow padre llama a workflows hijos especializados. n8n soporta esto nativamente con el nodo Execute Workflow.
  • Error 4: no manejar rate limits ni timeouts. Cuando Claude devuelve 429 o timeout, el workflow falla en silencio. Solución: en el nodo Anthropic activa retry on fail con 3 reintentos y backoff exponencial. Añade un Error Trigger workflow que loguee a Sentry o Slack cuando algo falla repetidamente.
  • Error 5: actualizar HubSpot demasiado a menudo. Cada update consume API calls del rate limit de HubSpot (100/10s en plan Pro). Solución: agrupa updates con el nodo Aggregate y haz batch updates cada 30 segundos.
  • Error 6: no medir nada. Si no tienes un dashboard de cuántos leads se procesaron, cuántos fueron clasificados como hot y qué porcentaje cerró, no sabes si el sistema funciona. Solución: guarda en Postgres o Supabase cada ejecución con timestamp, input tokens, output tokens, latencia y resultado. Conecta Metabase o Grafana encima.

Cuándo construirlo y cuándo no

Constrúyelo si: tienes a alguien técnico (o tú mismo) que disfrute con n8n y APIs, procesas más de 200 leads al mes, tu equipo de ventas tiene tiempo limitado para tareas repetitivas, y quieres tener control total de los prompts y la lógica de negocio.

No lo construyas si: necesitas resultados en menos de una semana, no tienes ningún recurso técnico, procesas menos de 100 leads al mes (el ROI no compensa el tiempo de implementación), o tu CRM no es HubSpot/Salesforce/Pipedrive (los conectores nativos de n8n cubren bien estos tres pero son más frágiles con CRMs menos populares).

Si encajas en el segundo grupo pero igualmente quieres los beneficios del sistema, Singularity Leads es exactamente esto en formato listo para usar: ICP scoring con LLM, drafts hiperpersonalizados, clasificación de respuestas, secuencias multi-paso y alertas de hot leads. Sin n8n, sin prompts, sin debuggeo de webhooks. Si te interesa ver una demo o discutir cuándo construir vs comprar, escríbenos.

Y si construyes la versión n8n y te quedas atascado en algún paso, también podemos echarte una mano. Los workflows de esta guía los hemos desplegado en producción para varios clientes y los nodos exactos están más afinados de lo que cabe en un artículo.

Ready to Transform Your Business?

Let's discuss how AI automation can generate measurable ROI for your company in the next 6 weeks.