Agente de ventas IA en WhatsApp: arquitectura para empresas

AgentesNexo
··6 min lectura

Un agente de ventas IA en WhatsApp para empresas combina tres capas: un canal de mensajeria (Evolution API o Twilio), un orquestador de flujos (n8n o Make), y un modelo de lenguaje que maneja la conversacion. El resultado es un equipo de ventas digital que opera las 24 horas sin costo variable por conversacion.

Que necesitas antes de empezar

  • WhatsApp Business API (via Evolution API, Twilio o 360dialog)
  • n8n self-hosted en VPS o cloud
  • Un LLM con API: Claude Sonnet 4.5, GPT-4o o Gemini 1.5 Pro
  • CRM destino: Google Sheets, HubSpot, Notion o PostgreSQL
  • Numero de telefono dedicado para WhatsApp Business (no puede ser el mismo que usas para uso personal)

Como funciona la arquitectura

El flujo tiene cuatro nodos principales:

Mensaje entrante (WhatsApp)
  → Webhook n8n
    → Memoria de sesion (Redis o PostgreSQL)
      → Cerebro IA (Claude / GPT-4o)
        → Respuesta + accion CRM
          → Respuesta a WhatsApp

Cada mensaje pasa por el cerebro IA con el historial completo de la conversacion. El agente decide en cada turno si debe calificar mas al lead, registrar datos en el CRM, escalar a un humano, o enviar material de venta (PDF, link, video de demo).

1. Configurar Evolution API y el webhook

Evolution API es el puente entre WhatsApp y tu stack. Se levanta en Docker con tres variables obligatorias:

bash
docker run -d \
  --name evolution-api \
  -p 8080:8080 \
  -e AUTHENTICATION_API_KEY=tu_key_aqui \
  -e DATABASE_PROVIDER=postgresql \
  -e DATABASE_URL=#43a047">"postgresql://user:pass@localhost:5432/evolution" \
  atendai/evolution-api:latest

Una vez corriendo, crear la instancia y registrar el webhook hacia n8n:

bash
curl -X POST http://localhost:8080/instance/create \
  -H #43a047">"apikey: tu_key_aqui" \
  -H #43a047">"Content-Type: application/json" \
  -d '{
    #43a047">"instanceName": "ventas",
    #43a047">"webhook": "https://tu-n8n.com/webhook/whatsapp-ventas",
    #43a047">"events": ["MESSAGES_UPSERT"]
  }'

2. Flujo de calificacion en n8n

En n8n, el workflow recibe cada mensaje y ejecuta la siguiente logica en Code nodes:

Recuperar historial de la sesion:

javascript
const sessionKey = #43a047">`session:${$json.data.key.remoteJid}`;
const history = await $redis.get(sessionKey) || '[]';
return { history: JSON.parse(history) };

Llamar al LLM con prompt estructurado:

javascript
const systemPrompt = #43a047">`
Eres el agente de ventas de [empresa].
Tu objetivo: calificar si el contacto tiene presupuesto, autoridad, necesidad y tiempo (BANT).
Una vez calificado positivo, solicita email y nombre completo.
Si detectas interes en comprar, ofrece agendar una llamada o demo.

Responde en maximo 2 oraciones. Tono: amigable y directo.
No hagas mas de una pregunta por mensaje.

DATOS YA RECOPILADOS: ${JSON.stringify($json.leadData || {})}
`;

const response = await fetch('https://api.anthropic.com/v1/messages', {
  method: 'POST',
  headers: {
    'x-api-key': process.env.ANTHROPIC_API_KEY,
    'anthropic-version': '2023-06-01',
    'content-type': 'application/json'
  },
  body: JSON.stringify({
    model: 'claude-sonnet-4-5',
    max_tokens: 200,
    system: systemPrompt,
    messages: [...historial, { role: 'user', content: mensajeActual }]
  })
});

Extraer datos y guardar en CRM:

javascript
// INSERT en PostgreSQL con upsert por telefono
await $postgres.query(#43a047">`
  INSERT INTO leads (phone, nombre, email, empresa, stage, "updatedAt")
  VALUES ($1, $2, $3, $4, 'calificando', NOW())
  ON CONFLICT (phone) DO UPDATE
  SET nombre=EXCLUDED.nombre, email=EXCLUDED.email, "updatedAt"=NOW()
`, [telefono, nombre, email, empresa]);

3. Seguimiento automatico para leads frios

El agente no solo responde en tiempo real. Un cron en n8n cada manana busca los leads que no respondieron en 24 horas:

sql
SELECT phone, nombre, stage FROM leads
WHERE #43a047">"updatedAt" < NOW() - INTERVAL '24 hours'
AND stage = 'calificando'
AND follow_up_count < 3;

Para cada lead sin respuesta, el LLM genera un mensaje de seguimiento con variacion natural — no el mismo texto copiado tres veces, que destruye la tasa de respuesta.

4. Escalado al equipo humano

Cuando el agente detecta una senal de compra clara ("cuanto cuesta", "cuando pueden empezar", "tengo el presupuesto aprobado"), ejecuta dos acciones en paralelo: responde con el precio o una propuesta de agenda, y notifica al equipo via Telegram con el resumen del lead.

javascript
await fetch(#43a047">`https://api.telegram.org/bot${BOT_TOKEN}/sendMessage`, {
  method: 'POST',
  body: JSON.stringify({
    chat_id: SALES_CHAT_ID,
    text: #43a047">`Lead caliente\nNombre: ${nombre}\nEmpresa: ${empresa}\nResumen: ${resumenConversacion}`
  })
});

El humano entra solo en el momento de mayor valor. Todo lo anterior fue automatico.

Arquitectura del sistema

El agente opera en tres capas independientes:

Capa de canal: Evolution API mantiene la sesion con WhatsApp y envia cada mensaje al webhook de n8n via HTTPS. No hay polling — es push puro.

Capa de orquestacion: n8n ejecuta el flujo completo — memoria de sesion en Redis, llamada al LLM, extraccion de datos estructurados, escritura en CRM, y respuesta de vuelta a WhatsApp. Cada ejecucion tarda entre 1 y 3 segundos.

Capa de inteligencia: El LLM mantiene el contexto de la venta, detecta intenciones, y decide la siguiente accion sin necesitar reglas manuales por cada caso. El prompt del negocio (precios, diferenciadores, politica de devolucion) viaja como system message en cada llamada.

Lo que aprendimos en produccion

  1. El historial importa mas que el prompt: Un prompt perfecto con historial truncado genera conversaciones rotas. Guardar siempre los ultimos 10 turnos como minimo.
  1. El LLM necesita datos del negocio como contexto fijo: precio, producto, diferenciadores, objeciones frecuentes. Sin esto, improvisa y pierde consistencia entre conversaciones.
  1. No automatizar el pago en el primer mes: El cierre economico siempre lo hace un humano al principio. Cuando ya se conoce el patron de objeciones, se puede agregar al agente.
  1. Los mensajes de seguimiento necesitan variacion: Enviar el mismo texto tres veces seguidas destruye la tasa de respuesta. El LLM genera variaciones automaticamente desde una instruccion simple.
  1. Medir conversion por etapa desde el dia uno: contactado → calificado → demo agendada → propuesta enviada → cerrado. Sin esas metricas en el CRM, no se puede saber donde optimizar el flujo.

En resumen

  1. Evolution API como puente entre WhatsApp y tu stack
  2. n8n orquesta memoria de sesion + llamada al LLM + escritura en CRM
  3. Claude Sonnet o GPT-4o califica leads con BANT, una pregunta por turno
  4. Cron diario para seguimiento automatico de leads sin respuesta
  5. Escalado al equipo humano cuando el agente detecta intencion de compra

Si quieres implementar este agente de ventas IA en WhatsApp en tu empresa sin construirlo desde cero, en AgentesNexo lo hacemos por ti. Escribenos en agentesnexo.com o por WhatsApp al +591 67564218.

Implementa tu agente de ventas IA en WhatsApp con AgentesNexo. Escríbenos en agentesnexo.com o por WhatsApp al +591 67564218.

Articulos relacionados