Agente IA en WhatsApp: automatizar ventas y calificacion de leads

AgentesNexo
··6 min lectura

Un agente IA para WhatsApp no solo responde preguntas — puede calificar leads, agendar citas y cerrar ventas sin que tu equipo intervenga en cada conversacion.

Que problema resuelve

La mayoria de los negocios pierden leads porque no responden a tiempo. Un lead que escribe por WhatsApp a las 10pm no va a esperar hasta el dia siguiente. Segun datos de HubSpot, el 78% de los compradores elige al proveedor que responde primero.

El problema no es la intencion — es la capacidad. Un equipo humano no puede estar disponible 24/7 para cada consulta, calificar cada lead y hacer seguimiento a los que no cierran de inmediato. Un agente IA para WhatsApp resuelve exactamente eso: atiende al instante, clasifica la intención del usuario y mueve el lead al siguiente paso del embudo, solo o escalando al equipo cuando corresponde.

Requisitos previos

Antes de implementar un bot WhatsApp inteligente, necesitas:

  • WhatsApp Business API (via Evolution API o Cloud API oficial de Meta)
  • Un LLM con contexto largo (Claude 3.5 Sonnet o GPT-4o)
  • n8n o Make para la orquestacion del flujo
  • Postgres, Airtable o Notion para guardar el estado de cada lead
  • Opcionalmente: Retell AI o Vapi si quieres escalar a llamadas de voz cuando el lead califica

1. Arquitectura del agente IA para WhatsApp

La arquitectura tiene tres capas:

Capa de entrada: Evolution API recibe el mensaje y lo convierte en un webhook hacia n8n.

Capa de razonamiento: Claude Sonnet o GPT-4o procesa el mensaje con un system prompt que define la personalidad del agente, las preguntas de calificacion y las acciones disponibles.

Capa de salida: n8n escribe el estado del lead en la base de datos y envia la respuesta via Evolution API.

WhatsApp (usuario)
    ↓
Evolution API (webhook)
    ↓
n8n (orquestador)
    ↓
Claude Sonnet / GPT-4o
    ↓
n8n (escribe BD + responde)
    ↓
WhatsApp (usuario)

2. El system prompt que califica leads

El system prompt es el cerebro del agente. No lo trates como un chatbot generico — estructuralo como un guion de ventas con acciones explicitas al final de cada respuesta:

Eres un asistente de ventas de [EMPRESA]. Tu objetivo es:
1. Entender el problema del usuario
2. Calificar si es un lead valido (presupuesto, urgencia, autoridad, necesidad)
3. Agendar una llamada o demo si califica
4. Si no califica ahora, guardar para seguimiento en 30 dias

REGLAS:
- Nunca ofrecer precios exactos — agendar llamada primero
- Maximo 3 preguntas antes de proponer el siguiente paso
- Tono: directo, profesional, sin formalismos innecesarios

ACCIONES (escribe exactamente esto al final de cada respuesta):
[ACCION: AGENDAR_CITA]   → cuando el lead quiere una llamada
[ACCION: CALIFICADO]     → cuando tiene presupuesto y urgencia
[ACCION: NO_CALIFICADO]  → cuando no tiene presupuesto ni urgencia
[ACCION: SEGUIMIENTO_30D] → interes pero sin urgencia inmediata

Este formato estructurado permite que n8n parsee la accion directamente sin llamar al LLM una segunda vez.

3. Flujo de calificacion en n8n

El flujo en n8n procesa cada mensaje entrante en este orden:

  1. Webhook — recibe el mensaje de Evolution API
  2. Buscar lead — consulta BD si el JID ya existe (conversacion previa)
  3. Construir contexto — carga los ultimos 10 mensajes de la conversacion
  4. Llamar al LLM — envia contexto + mensaje actual al modelo
  5. Parsear accion — detecta si el LLM emitio una accion
  6. Ejecutar accion — escribe en BD, notifica al equipo si aplica
  7. Responder — envia la respuesta limpia via Evolution API
javascript
// Nodo Code en n8n: parsear accion del LLM
const response = items[0].json.choices[0].message.content;
const actionMatch = response.match(/\[ACCION: (\w+)\]/);
const action = actionMatch ? actionMatch[1] : null;
const cleanResponse = response.replace(/\[ACCION: \w+\]/, '').trim();

return [{
  json: {
    response: cleanResponse,
    action: action,
    leadId: items[0].json.leadId
  }
}];

4. Memoria persistente entre conversaciones

El error mas comun al implementar automatizacion con WhatsApp IA es no guardar el contexto entre mensajes. Sin memoria, el agente trata cada mensaje como una conversacion nueva — y el usuario tiene que repetir todo desde cero.

Guarda cada mensaje en Postgres con este esquema minimo:

sql
CREATE TABLE wa_messages (
  id          UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  jid         TEXT NOT NULL,      -- numero de WhatsApp del contacto
  instance    TEXT NOT NULL,      -- instancia de Evolution API
  role        TEXT NOT NULL,      -- 'user' o 'assistant'
  content     TEXT NOT NULL,
  #43a047">"createdAt" TIMESTAMPTZ DEFAULT NOW()
);

CREATE INDEX idx_wa_messages_jid ON wa_messages(jid, instance);

Al construir el contexto para el LLM, carga los ultimos 10 mensajes y revierte el orden:

sql
SELECT role, content
FROM wa_messages
WHERE jid = $1 AND instance = $2
ORDER BY #43a047">"createdAt" DESC
LIMIT 10;

El orden DESC te da los mas recientes primero — invertilos en el codigo antes de enviar al LLM para que el mas reciente quede al final (que es como los LLMs esperan recibir el historial).

Arquitectura completa del sistema

Con todo conectado, el flujo para un negocio con 200 consultas diarias funciona asi:

  • Evolution API maneja la capa de WhatsApp (multi-instancia si tienes varios numeros)
  • n8n orquesta los flujos sin logica hardcodeada — todo configurable por nodos
  • Postgres guarda estado, historial y datos de leads calificados
  • Claude Sonnet procesa lenguaje natural y toma decisiones de calificacion
  • El equipo humano solo interviene cuando el agente emite ESCALAR o AGENDAR_CITA

Con esta arquitectura, un equipo de 2 personas puede gestionar 500 o mas conversaciones diarias sin perder contexto ni leads.

Lo que aprendimos implementando esto en produccion

  1. El prompt necesita contexto especifico del negocio. Un prompt generico de "asistente de ventas" convierte mal. Necesitas las 3 objeciones principales del negocio y las respuestas que ya funcionan con el equipo humano.
  1. Limita el historial a 10-15 mensajes. Pasar 50 mensajes al LLM aumenta latencia y costo sin mejorar la calidad de las respuestas.
  1. Maneja mensajes duplicados desde el inicio. WhatsApp entrega el mismo webhook dos veces con frecuencia. Agrega un campo messageId unico y deduplica antes de procesar.
  1. Implementa debounce de 2-3 segundos. Los usuarios escriben en fragmentos: "Hola" ... "queria preguntar" ... "por el servicio de agentes". Consolida los fragmentos antes de enviar al LLM.
  1. Nunca uses solo el JID como clave unica. Guarda siempre jid + instance. Si tienes varias instancias de Evolution API, el mismo numero puede aparecer en mas de una — sin la instancia como clave compuesta, los contextos se mezclan.

En resumen

Para implementar un agente IA para WhatsApp que automatiza ventas y calificacion de leads:

  1. Conecta WhatsApp Business API via Evolution API con webhook a n8n
  2. Diseña el system prompt como guion de ventas con acciones explicitas parseables
  3. Guarda todo el historial en Postgres usando jid + instance como clave compuesta
  4. Implementa debounce de 2-3 segundos y deduplicacion por messageId desde el primer dia
  5. El agente escala al equipo humano solo ante acciones concretas: agendar cita, lead calificado, o problema que supera el scope del agente

Si quieres implementar esto en tu negocio sin construirlo desde cero, en AgentesNexo lo hacemos por ti. Escribenos en agentesnexo.com o por WhatsApp al +591 67564218

Si quieres implementar esto en tu negocio sin construirlo desde cero, en AgentesNexo lo hacemos por ti. Escribenos en agentesnexo.com o por WhatsApp al +591 67564218

Articulos relacionados