Automatizar pipeline de ventas con n8n, WhatsApp y Google Gemini
Un sistema de ventas que trabaja 24/7: clasifica leads por nivel de interés usando IA, envía seguimiento automático por WhatsApp en el momento preciso y registra cada interacción en Supabase. Construido con n8n (open source), WAHA y Google Gemini — sin pagar por software de CRM.
Componentes del sistema
- Orquestador: n8n self-hosted
- WhatsApp: WAHA (Docker)
- Clasificación IA: Google Gemini 1.5 Flash
- CRM base: Supabase PostgreSQL
- Alertas equipo: Webhook → Slack/Telegram
- Costo mensual: ~$5 USD (servidor VPS)
El pipeline de ventas manual: dónde se pierden los clientes
En la mayoría de PYMEs colombianas, el proceso de ventas sigue siendo manual: el cliente escribe por WhatsApp, alguien del equipo responde (si está disponible), se anota en un Excel, y el seguimiento depende de que alguien recuerde hacerlo. El resultado: el 60% de los leads interesados nunca reciben un segundo contacto.
HubSpot, Salesforce o Pipedrive resuelven esto, pero cuestan entre $50 y $400 USD mensuales por usuario. Para una PYME con 3 vendedores, eso es $1.800–$14.400 USD anuales solo en software. Con n8n + Supabase el costo es el del servidor: ~$60 USD al año.
Arquitectura: 4 workflows en n8n
Captura y clasificación del lead
Trigger: mensaje entrante por WAHA. Gemini analiza el texto y clasifica el lead como frío (solo preguntó precio), tibio (tiene necesidad concreta pero no urgencia) o caliente (quiere avanzar pronto). Guarda en leads_wa con la clasificación.
Flujo de respuesta inicial
Se ejecuta inmediatamente después de W1. Si es caliente: respuesta personalizada de Gemini + alerta al equipo de ventas por Slack. Si es tibio: respuesta con contenido de valor (caso de éxito relevante). Si es frío: respuesta estándar con precios y CTA.
Seguimiento automático (scheduled)
Cron job cada mañana a las 9am. Consulta leads tibios que no han respondido en 48h. Genera un mensaje de seguimiento personalizado con Gemini (distinto para cada uno según su consulta inicial). Envía por WAHA y registra en Supabase.
Cierre y handoff al equipo
Detecta señales de cierre en el texto (palabras como 'cuándo empezamos', 'cómo pago', 'necesito esto ya'). Actualiza el lead a estado 'listo_cerrar'. Notifica al vendedor con el resumen de la conversación y el historial completo.
Clasificación de leads con Google Gemini
La clasificación automática es el corazón del sistema. Gemini analiza el mensaje inicial y devuelve un JSON estructurado con la clasificación y la razón. Usar JSON forzado (con responseMimeType: "application/json") elimina el parseo frágil de texto libre:
// Payload para la API de Gemini en n8n (nodo HTTP Request)
{
"contents": [{
"role": "user",
"parts": [{
"text": "Clasifica este lead según su nivel de interés comercial.\n\nMensaje: {{$json.payload.body}}\n\nResponde SOLO con JSON válido:\n{\"clasificacion\": \"frio|tibio|caliente\", \"razon\": \"...\", \"servicio_detectado\": \"web|erp|automatizacion|bot|otro\"}"
}]
}],
"generationConfig": {
"responseMimeType": "application/json",
"temperature": 0.1
}
}Con temperature: 0.1 la clasificación es determinista — el mismo mensaje siempre produce la misma clasificación. responseMimeType: "application/json" garantiza que Gemini devuelva JSON parseable directamente en n8n sin manipulación de strings.
Seguimiento personalizado: cada lead recibe un mensaje único
El W3 (seguimiento scheduled) es el que más impacto tiene en la tasa de conversión. En lugar de un mensaje genérico de "¿cómo te podemos ayudar?", Gemini genera un mensaje que hace referencia a la consulta específica del lead:
// Prompt para generar el mensaje de seguimiento en W3
Eres el asistente comercial de Alcanet, agencia digital en Medellín.
El cliente ${nombre} preguntó hace 2 días sobre ${servicio_detectado}.
Su consulta original fue: "${primer_mensaje}"
Escribe un mensaje de seguimiento (máximo 2 oraciones) que:
1. Haga referencia específica a su consulta
2. Ofrezca un caso de éxito relevante O una pregunta de calificación
3. Suene natural en español colombiano informal
NO uses frases genéricas como "esperamos tener noticias tuyas".Esquema Supabase del CRM automatizado
CREATE TABLE leads_wa (
id uuid DEFAULT gen_random_uuid() PRIMARY KEY,
numero text NOT NULL UNIQUE,
nombre text,
empresa text,
servicio_detectado text,
clasificacion text CHECK (clasificacion IN ('frio','tibio','caliente')),
estado text DEFAULT 'nuevo'
CHECK (estado IN ('nuevo','contactado','seguimiento','listo_cerrar','cerrado','descartado')),
primer_mensaje text,
seguimientos_enviados integer DEFAULT 0,
ultimo_contacto timestamptz DEFAULT now(),
created_at timestamptz DEFAULT now()
);
-- Vista para el equipo de ventas: leads calientes sin actividad en 24h
CREATE VIEW leads_prioritarios AS
SELECT * FROM leads_wa
WHERE clasificacion = 'caliente'
AND estado NOT IN ('cerrado', 'descartado')
AND ultimo_contacto < now() - INTERVAL '24 hours'
ORDER BY created_at DESC;Resultados: qué mejora con el pipeline automatizado
Respuesta en 2–6 horas
Respuesta en <30 segundos
40% de leads sin segundo contacto
100% reciben seguimiento automático
Excel manual sin historial
CRM completo en Supabase
Equipo solo atiende 9–18h
Bot activo 24/7, vendedor solo cierra
¿Quieres este pipeline en tu empresa?
Lo implementamos en 1–2 semanas adaptado a tu negocio, tus servicios y tu equipo de ventas.
💬 Automatizar mi pipeline de ventas
Escrito por
Luis Alcalá
Fundador & CEO — Alcanet
Desarrollador de software especializado en Next.js, automatización con n8n e IA aplicada a negocios. 6+ años construyendo webs, ERP y sistemas para PYMEs en Colombia y Latinoamérica.
ARTÍCULOS RELACIONADOS
→ Cómo construir un bot de WhatsApp con n8n + Supabase + Gemini→ Automatización WhatsApp Medellín: casos reales en PYMEs→ Servicio de automatización con IA para empresas en Medellín