vende-ia · anatomía del stack
agente de ventas · WhatsApp real

Del caos a la plata, en un mensaje.

Un cliente escribe por WhatsApp. Un agente LLM lo atiende, lo califica, le pasa precio y stock del catálogo, y deriva el lead caliente a un humano. Esta es la anatomía completa de cómo está hecho.

Caos→Orden→Inteligencia→Plata
demo
01📱

Canal

La puerta de entrada
🟢

WhatsApp vía Baileys

Conexión a WhatsApp Web no oficial, vinculada por QR con un número dedicado. Cualquiera escribe sin verificación de negocio de Meta.

@whiskeysockets/baileys v7QR linkingLID → teléfono
⚙️

Worker 24/7

Proceso Node que escucha mensajes, responde y sirve el QR por HTTP. Sesión persistida en disco para reconectar sin re-escanear.

Node 22tsxsocket de eventos
02🧠

Cerebro

El núcleo que piensa
🧩

atender() · orquestador

Un solo core compartido: memoria → extraer producto → buscar en catálogo → conversar → guardar. Mismo cerebro para WhatsApp y para el simulador del dashboard.

TypeScriptZodcore compartido
✨

Lima · el agente

Embudo de 6 etapas (enganche → derivación), pitch de valor antes que precio, playbook de objeciones y scoring del lead en cada turno.

DeepSeek v4-flashOpenAI-compatiblesalida JSON
🛡️

Guardrails

Defensa en profundidad contra prompt-injection: filtro de entrada (corta antes del LLM) + hardening del system prompt. Validado con ataques reales de la comunidad.

regex es + ensystem prompt blindado
03🗄️

Datos

Memoria y verdad
🐘

Supabase · Postgres

Tres tablas: pedidos (leads + scoring), mensajes (memoria de la charla) y productos (el catálogo). Es la fuente de verdad que el dashboard lee en vivo.

PostgresRLSservice role
🔎

Catálogo · 754 productos

Parseados de un PDF de 127 páginas. La búsqueda es una función SQL full-text en español: el catálogo nunca va al LLM, así que cuesta 0 tokens.

full-text tsvectorRPC buscar_productoPDF → SQL
04📊

Front

Lo que ve el negocio
🎛️

Dashboard en vivo

Pipeline de leads tipo CRM (Frío → Tibio → Caliente) con tarjetas que migran de columna al recalentarse, y chat tipo WhatsApp al costado con un click.

Next.js 16App RouterTurbopackTailwind
🔥

Handoff humano

Cuando un lead se pone caliente, el bot le manda un WhatsApp al asesor con el resumen, el producto y un link directo al chat del cliente.

aviso por WhatsApplink wa.me
05☁️

Infra

Dónde vive todo
🚂

Railway · el worker

Hospeda el proceso 24/7 con un volumen para la sesión de WhatsApp y dominio público para escanear el QR. Auto-deploy desde GitHub.

NIXPACKSvolumendeploy on push
▲

Vercel · el dashboard

Sirve la app de Next.js con protección de despliegue. El negocio mira los leads logueado; los clientes entran por WhatsApp.

VercelDeployment Protection
🧪

GitHub · Vitest

Repo privado con todo el core cubierto por tests unitarios: orquestador, guardrails, catálogo, handoff y la agrupación de conversaciones.

git69 tests verdeTDD

Diagrama de secuencia

El recorrido de un solo mensaje, de punta a punta.

ver el flujo

— el mismo recorrido que corre en producción —