Geotecno
Un vendedor de WhatsApp que cotiza, toma usados y le pasa al asesor la venta lista para cerrar. A WhatsApp sales agent that quotes, takes trade-ins and hands the advisor a sale ready to close.
Antes
El WhatsApp contestaba con el link a una página. El cliente buscaba solo, preguntaba igual y alguien terminaba respondiendo a mano: modelo, color, precio en dólares, en pesos, en cuotas y cuánto le tomaban su usado. La mayoría de esas consultas llegaba desde publicidad, justo cuando más rápido había que contestar.
Qué entregamos
- Cotizador en dólares, pesos y cuotas, leído de las planillas que el cliente ya usa. Cambia un precio ahí y el bot contesta con el nuevo.
- Toma de usados con cálculo de saldo y pago combinado.
- Listas por marca y presupuesto, búsqueda de modelos, colores con distinto precio y respuesta a mensajes citados.
- Pase al asesor con aviso por Telegram y link directo al chat. El bot no regala nada ni cierra por su cuenta.
- Silenciado de proveedores y filtro de grupos.
- Monitor de catálogo, alerta de fallas y un detector diario de charlas problemáticas.
- Panel con embudo, anuncios contra orgánico, mapa de calor y modelos más pedidos.
Lo difícil
Tiramos la primera versión
La v1 era un agente que contestaba libre, con 108 expresiones regulares detrás corrigiendo lo que salía mal. Cada falla nueva era una regla más, y las reglas empezaban a chocar entre sí. Lo rediseñamos: la IA solo devuelve qué pide el cliente y con qué datos, y el código decide y arma toda la respuesta. Así casi todo el bot se puede probar sin gastar una sola llamada al modelo.
La gente escribe en ráfagas
"Quiero un 18 Pro Max" y, seis segundos después, "¿tenés o no tenés?". El segundo mensaje leía el estado antes de que el primero lo guardara, y al terminar borraba lo que el cliente acababa de pedir. Por afuera parecía que el bot perdía el hilo. Lo resolvimos con un turno por chat: una marca que vence sola, una espera corta y una relectura del estado antes de seguir.
El mensaje que llegaba vacío
Los clientes que entraban desde un anuncio a veces aparecían como un error de WhatsApp, y el bot les pedía repetir. Leímos las ejecuciones reales: 19 de cada 24 de esos "vacíos" llegaban después como texto normal, con el mismo identificador. Contestar al instante era una falsa alarma. Ahora espera 45 segundos y solo responde si la charla sigue quieta.
Respuestas inventadas con una cita real
Para que no inventara, le pedimos que citara la frase de la información que respaldaba cada respuesta, y verificamos en código que esa frase existiera. El modelo encontró la salida: citó una frase verdadera de otro tema. Sumamos un segundo chequeo que compara el tema de la cita con el de la pregunta. Lo que no pasa va al asesor.
Tres capas de prueba, porque ninguna alcanza
Antes de cada publicación corren los tests del diálogo y un replay de charlas reales que detecta regresiones. Una batería con IA real encuentra lecturas distintas del modelo y un verificador independiente encuentra frases nuevas. Cada falla real que arreglamos se suma como caso.
Before
WhatsApp replied with a link to a page. Customers browsed alone, asked anyway, and someone ended up answering by hand: model, color, price in dollars, in pesos, in installments, and how much their used phone was worth. Most of those inquiries came from ads, exactly when speed mattered most.
What we delivered
- Quotes in dollars, pesos and installments, read from the spreadsheets the client already uses. Change a price there and the bot answers with the new one.
- Trade-ins with balance calculation and combined payment.
- Lists by brand and budget, model search, per-color pricing and replies to quoted messages.
- Handoff to the advisor with a Telegram alert and a direct link to the chat. The bot never gives anything away or closes on its own.
- Supplier muting and group filtering.
- Catalog monitor, failure alerts and a daily detector of problematic chats.
- Dashboard with funnel, ads versus organic, heat map and most requested models.
The hard part
We threw away the first version
V1 was an agent answering freely, with 108 regular expressions behind it fixing what went wrong. Every new failure meant one more rule, and the rules started to collide. We redesigned it: AI only returns what the customer wants and with which data, and code decides and builds the whole reply. Almost all of the bot can now be tested without a single model call.
People type in bursts
"I want an 18 Pro Max" and, six seconds later, "do you have it or not?". The second message read the state before the first one saved it, and when it finished it erased what the customer had just asked for. From the outside, the bot seemed to lose the thread. We solved it with one turn per chat: a self-expiring mark, a short wait and a fresh read of the state before continuing.
The message that arrived empty
Customers coming from an ad sometimes showed up as a WhatsApp error, and the bot asked them to repeat. We read the real executions: 19 out of 24 of those "empties" arrived later as normal text with the same identifier. Replying instantly was a false alarm. Now it waits 45 seconds and only answers if the chat is still quiet.
Made-up answers with a real quote
To stop it from making things up, we asked it to quote the sentence backing each answer, and code verified the sentence existed. The model found the way out: it quoted a true sentence about a different topic. We added a second check comparing the quote's topic with the question's. Whatever fails goes to the advisor.
Three test layers, because none is enough
Before every release, the dialogue tests run along with a replay of real conversations that catches regressions. A battery with real AI finds different model readings, and an independent verifier finds new phrasings. Every real failure we fix becomes a new case.
- tests automáticos del diálogoautomated dialogue tests
- 300
- turnos reales en el replayreal turns in the replay
- 665
- escenarios con IA realscenarios with real AI
- 60
- de aciertos en controles con charlas nuevaspass rate on controls with unseen chats
- 85–92,5%
n8n · WhatsApp API oficial (YCloud) · Claude Haiku · Google Sheets · Telegram · Vercel