Automatiza la captación de leads con n8n y tu CRM favorito
Cada lead que entra y no se gestiona en las primeras horas tiene muchas más probabilidades de enfriarse. El problema no suele ser la falta de voluntad del equipo comercial, sino la fricción: hay que copiar los datos del formulario al CRM, mandar el email de bienvenida, avisar al comercial asignado… Si eso se hace a mano, se hace tarde, mal, o no se hace.
Con n8n puedes conectar todos esos pasos en un único workflow que se ejecuta en segundos, sin que nadie tenga que hacer nada manualmente. Funciona con HubSpot, Notion, Pipedrive o cualquier CRM favorito que ya uses.
Qué vamos a construir
Un flujo de captación de leads que hace todo esto de forma automática:
- Recibe los datos del formulario de contacto en tiempo real.
- Enriquece el lead con información adicional (empresa, LinkedIn…).
- Crea el contacto en HubSpot (o en Notion si no usas CRM).
- Envía un email de bienvenida personalizado al lead.
- Notifica al comercial por WhatsApp con los datos del lead.
- Si el lead tiene empresa, lo prioriza automáticamente.
Todo esto ocurre en menos de 30 segundos desde que el lead rellena el formulario.
Requisitos
- n8n instalado. Guía aquí: instalar n8n gratis en un VPS.
- Una cuenta en HubSpot (el plan gratuito es suficiente) o un workspace de Notion.
- Una cuenta en Gmail o acceso a un servidor SMTP.
- Si quieres notificaciones por WhatsApp: una cuenta de WhatsApp Business API (ver guía en agente IA WhatsApp con n8n).
- Opcional: cuenta en Clearbit o Hunter.io para enriquecimiento de datos.
Paso 1: El trigger — Capturar el lead
El punto de entrada del workflow es un Webhook de n8n. Este webhook recibe los datos cuando alguien envía el formulario de contacto.
Crea un nuevo workflow en n8n y añade un nodo Webhook:
- HTTP Method:
POST - Path:
captacion-leads
La URL generada (https://n8n.tudominio.com/webhook/captacion-leads) es la que configuras en tu formulario web.
Compatibilidad con formularios populares
- Typeform: Configuración → Integraciones → Webhooks → pega la URL.
- Tally.so: Configuración del formulario → Integraciones → Webhook.
- Gravity Forms (WordPress): usa el plugin “Gravity Forms Webhooks”.
- Formulario HTML propio: en el evento de envío, haz un
fetchPOST a la URL con los datos en JSON.
Datos recomendados para capturar
Asegúrate de que tu formulario recoge al menos:
nombreemailempresa(si tu negocio va a B2B)telefonomensajeonecesidadfuente(de dónde viene el lead: redes sociales, Google Ads, newsletter…)
Paso 2: Validar y limpiar los datos
Antes de hacer nada con el lead, limpia los datos. Añade un nodo “Code” o “Set”:
// Normalizar el teléfono (quitar espacios, guiones)
const telefono = $json.telefono?.replace(/[\s\-\(\)]/g, '') || '';
// Capitalizar el nombre
const nombre = $json.nombre
?.split(' ')
.map(w => w.charAt(0).toUpperCase() + w.slice(1).toLowerCase())
.join(' ') || '';
// Extraer dominio del email (útil para B2B)
const dominioEmail = $json.email?.split('@')[1] || '';
return [{
json: {
...$json,
nombre,
telefono,
dominioEmail,
fechaEntrada: new Date().toISOString(),
}
}];
Paso 3: Enriquecer el lead (opcional pero muy útil para B2B)
Si tu negocio va a empresas, añadir información sobre la empresa del lead antes de pasarlo al CRM ahorra mucho tiempo al equipo comercial.
Opción A: Clearbit
Clearbit puede devolver el nombre de la empresa, el sector, el número de empleados y el cargo del lead solo con el email.
Nodo “HTTP Request”:
- URL:
https://person-stream.clearbit.com/v2/combined/find?email={{$json.email}} - Headers:
Authorization: Bearer {TU_API_KEY}
Clearbit tiene un plan gratuito limitado. Para uso intensivo, considera alternativas como Apollo.io o Snov.io.
Opción B: Enriquecimiento básico sin API
Si no quieres gastar en enriquecimiento, al menos puedes detectar si el email es corporativo o genérico:
const dominiosGenericos = ['gmail.com', 'hotmail.com', 'yahoo.com', 'outlook.com'];
const esCorporativo = !dominiosGenericos.includes($json.dominioEmail);
const prioridad = esCorporativo ? 'alta' : 'normal';
return [{ json: { ...$json, prioridad, esCorporativo } }];
Un lead con email corporativo tiene más probabilidades de ser un prospecto B2B de calidad.
Paso 4A: Crear el contacto en HubSpot
HubSpot tiene una API REST muy bien documentada. Con el plan gratuito puedes crear contactos, empresas y deals.
Nodo “HubSpot” (nodo nativo de n8n) o “HTTP Request”:
Con el nodo nativo de n8n:
- Operación: “Create Contact”
- Credencial: crea una API key en HubSpot → Settings → Integrations → API key
- Campos a rellenar: email, firstname, lastname, phone, company, message (en una propiedad personalizada)
Con HTTP Request:
POST https://api.hubapi.com/crm/v3/objects/contacts
Authorization: Bearer {API_KEY}
{
"properties": {
"email": "{{$json.email}}",
"firstname": "{{$json.nombre.split(' ')[0]}}",
"lastname": "{{$json.nombre.split(' ').slice(1).join(' ')}}",
"phone": "{{$json.telefono}}",
"company": "{{$json.empresa}}",
"hs_lead_status": "NEW",
"lifecyclestage": "lead",
"lead_source": "{{$json.fuente}}"
}
}
Asignar el lead al comercial correcto
Si tienes varios comerciales, puedes añadir lógica de asignación automática. Por ejemplo, rotar de forma equitativa o asignar por sector o región:
const comerciales = ['comercial1@empresa.com', 'comercial2@empresa.com', 'comercial3@empresa.com'];
const indice = new Date().getMinutes() % comerciales.length; // rotación simple
return [{ json: { ...$json, comercialAsignado: comerciales[indice] } }];
Paso 4B: Crear el contacto en Notion (alternativa a HubSpot)
Si no usas un CRM formal, Notion es una excelente alternativa para equipos pequeños.
Nodo “Notion” (nativo en n8n) → “Create Page”:
- Database: selecciona tu base de datos de leads
- Properties: mapea los campos del formulario a las propiedades de Notion
Crea una base de datos en Notion con propiedades: Nombre, Email, Empresa, Teléfono, Estado (selector: Nuevo, Contactado, Cualificado, Perdido), Fecha entrada, Comercial asignado.
Paso 5: Email de bienvenida personalizado
El email de bienvenida debe llegar en minutos desde el envío del formulario, no horas. Y debe ser personalizado, no un template genérico.
Nodo “Gmail” o “Send Email” (SMTP):
Subject: Hola {{$json.nombre.split(' ')[0]}}, hemos recibido tu consulta
Body (HTML recomendado para mejor presentación):
<p>Hola {{$json.nombre.split(' ')[0]}},</p>
<p>Gracias por contactar con [Tu empresa]. Hemos recibido tu mensaje
y uno de nuestros especialistas se pondrá en contacto contigo
en las próximas horas.</p>
<p>Mientras tanto, puede que te interese:</p>
<ul>
<li><a href="[URL]">Artículo relevante 1</a></li>
<li><a href="[URL]">Caso de éxito de cliente similar</a></li>
</ul>
<p>Si tienes cualquier duda urgente, puedes escribirnos directamente
a este email.</p>
<p>Un saludo,<br>
[Nombre] | [Tu empresa]</p>
La personalización con el nombre y el contexto de la consulta aumenta significativamente la tasa de apertura y la percepción de atención.
Paso 6: Notificación al comercial por WhatsApp
Mientras el lead recibe su email de bienvenida, el comercial asignado recibe un mensaje por WhatsApp con toda la información.
Nodo “HTTP Request” hacia la WhatsApp Business API:
{
"messaging_product": "whatsapp",
"to": "{{$json.telefonoComercial}}",
"type": "text",
"text": {
"body": "🔔 Nuevo lead:\n\n*Nombre*: {{$json.nombre}}\n*Email*: {{$json.email}}\n*Empresa*: {{$json.empresa}}\n*Teléfono*: {{$json.telefono}}\n*Prioridad*: {{$json.prioridad}}\n\n*Mensaje*: {{$json.mensaje}}\n\nEntró el {{$json.fechaEntrada}}"
}
}
Si no tienes WhatsApp Business API configurado, puedes usar Telegram como alternativa más sencilla. El nodo de Telegram en n8n funciona en minutos.
Paso 7: Lógica de leads prioritarios
Si el lead tiene empresa (email corporativo o campo empresa relleno), añade una rama adicional que lo trate diferente:
IF (prioridad = 'alta')
→ Crear Deal en HubSpot con valor estimado
→ Notificar también al responsable de ventas por email
→ Añadir tag 'B2B' en el contacto de HubSpot
→ Programar seguimiento automático en 24h (otro trigger)
Resultado final: el workflow completo
Webhook (formulario enviado)
→ Code (limpiar y normalizar datos)
→ HTTP Request (enriquecimiento Clearbit, opcional)
→ Code (determinar prioridad)
→ HubSpot / Notion (crear contacto)
→ Gmail (email de bienvenida al lead)
→ WhatsApp API (notificación al comercial)
→ IF (lead prioritario)
→ HubSpot (crear deal)
→ Email (notificar al responsable)
Todo esto ocurre en menos de 30 segundos desde que el lead envía el formulario.
Métricas para medir el impacto
Una vez activo el workflow, mide estos indicadores:
- Tiempo de primer contacto: debería bajar de horas a minutos.
- Tasa de apertura del email de bienvenida: benchmark del sector ~25-35%.
- Tasa de conversión lead → oportunidad: compara antes y después.
- Leads sin seguimiento a las 24h: debería ser cero con el workflow activo.
Preguntas frecuentes
¿Funciona con otros CRMs además de HubSpot? Sí. n8n tiene nodos nativos para Salesforce, Pipedrive, ActiveCampaign, Zoho CRM y muchos más. El flujo es idéntico, solo cambia el nodo del CRM.
¿Puedo tener diferentes flujos para diferentes formularios? Sí. Puedes tener webhooks distintos (con paths diferentes) para distintos formularios y crear flujos específicos para cada uno.
¿Puedo añadir un lead scoring automático? Sí. Añade un nodo de IA que analice el mensaje del lead y asigne una puntuación según el nivel de intención de compra. Esto ayuda al equipo comercial a priorizar qué leads contactar primero.
¿Qué pasa si el lead ya existe en el CRM? Antes de crear el contacto, añade un paso que busque si el email ya existe. Si existe, actualiza el registro en lugar de crear uno duplicado. HubSpot y la mayoría de CRMs tienen un endpoint específico para esto.
¿Te ha resultado útil? Compártelo con alguien que quiera automatizar su trabajo con IA.