Revisar una sola conversación de WhatsApp con IA nos costaba cerca de 33 mil tokens y entre 20 y 30 segundos. El cliente tenía 7,527 conversaciones de unos dos meses, y trabajábamos con una cuenta de IA con tope de uso, no con una API key que cobra por token. Pasar las 7,527 por el modelo era como pedirle a un solo técnico del taller que revise cada cámara de Lima: puede empezar, nunca termina.
Lo que el cliente quería saber era concreto: cuánto tardaban en responder, cuántas personas se quedaban esperando, cuántas escribían de madrugada. Mi primer reflejo fue buscar un modelo más barato que aguantara el volumen. Hice la cuenta y tampoco cerraba. El proyecto se destrabó cuando acepté que casi todas esas preguntas se contestan con aritmética.
Pagar tokens por 7,527 chats
Una consulta SQL y dos horas de paciencia
Un primer piso que no gasta tokens
Saqué una copia de solo lectura de la base viva con VACUUM INTO, una instrucción de SQLite que escribe un archivo limpio aparte: 0.7 s, sin quitarle el candado de la base al proceso que en ese momento atendía los chats.
Sobre esa copia cortamos el historial en conversaciones cada vez que había más de 6 horas de silencio, y etiquetamos los 89,371 mensajes como cliente, bot, humano o sistema con reglas locales. Un mensaje saliente cuenta como bot solo si su texto coincide exacto con una plantilla de respuesta automática del negocio, o si es una foto pegada a menos de 15 segundos de una. El resto de lo saliente queda como humano, y nada de esto llama a un modelo.
Con eso calculamos tiempo de primera respuesta, esperas, abandono y mensajes fuera de horario sobre las 7,527 conversaciones, en SQL puro y repetible. A ese primer piso le decimos Tier 1.
El 43.6% terminó esperando a un humano
El 75.7% de las conversaciones recibió respuesta humana en algún momento y al 24.3% lo atendió solo el bot. El 57.9% empezó fuera del horario de atención. La mediana de primera respuesta humana fue 28 segundos, que suena bien hasta que la cruzas con el 43.6% que cerró con el cliente todavía esperando a un humano.
El triaje decide quién pasa con el especialista
En la compañía de bomberos usamos la palabra triaje para decidir a quién se atiende primero. Acá funciona como el monitor de signos vitales de un hospital: se lo pones a todos porque medir el pulso cuesta casi nada, y al especialista caro lo llamas solo por las fichas que el monitor marcó.
El monitor son señales que no cuestan nada: palabras de sentimiento negativo, conversaciones sin ninguna respuesta humana, esperas de más de 30 minutos e intención de compra. Le sumamos una muestra aleatoria de control, porque una lista armada solo con casos malos confirma la sospecha con la que entraste.
El triaje ordena las candidatas por gravedad y corta la lista en un límite: en esta corrida pasaron ocho conversaciones de los últimos 7 días al Tier 2, el piso caro. Una CLI de IA, el modelo corriendo por línea de comandos, recibe la transcripción etiquetada por rol y devuelve un JSON estricto con resumen, resuelto sí o no, sentimiento del cliente, cuatro notas de 1 a 5, bandera de venta perdida, hallazgos con severidad y bandera de escalamiento. El modelo no le responde a ningún cliente ni toca el chat: entrega una ficha y se va.
Lo que el SQL no podía ver
En promedio, las ocho dieron tono 2.6 de 5, claridad 2.1 de 5 y resolución 2.4 de 5. El 37.5% quedó marcado como venta perdida y la mitad como caso a escalar.
En esas ocho salieron tres cosas que ninguna consulta SQL habría encontrado: un caso de mal trato a terceros, un dato personal sensible escrito completo dentro del chat, y entregas coordinadas solo por el bot sin que ningún humano confirmara nada.
La mediana de 4 segundos que no me creo
La atribución por plantillas es una heurística y quedó escrita como tal en el README del proyecto. En la ventana más corta que validamos, la mediana de respuesta humana salió en 4 segundos, y para mí eso significa que algunas respuestas de personas se están contando como bot. Lo dejamos anotado como limitación del Tier 1, en el mismo reporte donde aparece el número.
Queda pendiente decidir cómo ocultar los datos personales de las transcripciones, y hay que resolverlo antes de que el Tier 2 entre a producción.
Antes de buscar un modelo más barato, ahora calculo cuánto de la respuesta sale con aritmética, y cada heurística barata viaja con su margen de error en el mismo reporte que la usa. El técnico sigue siendo uno, pero ya no le mando todas las cámaras de Lima: le mando ocho.
