Soluciones · Transporte y logística
Cuando el cliente pregunta dónde está el paquete, el agente no adivina: llama al courier, le pregunta y vuelve con la respuesta.
La despachación por voz, construida como mecanismo, no como promesa: una tabla con estados explícitos, tres intentos con dos minutos de distancia, el resultado de la llamada escrito de forma estructurada y un filtro que saca el número del conductor de todo lo que llega al modelo, para que no pueda dictarse al cliente.
Ya construidoEl mecanismo de despacho está escrito y migrado en nuestra plataforma vocal: la tabla `courier_calls` con siete estados posibles, tres intentos implícitos, pausa de 120.000 ms entre ellos y el resultado de la llamada guardado de forma estructurada, además de cinco funciones de servidor que lo usan — inicio de la llamada al courier, verificación del resultado, barrido de las llamadas que quedaron colgadas, identificación de quien llama de vuelta y el webhook posterior a la llamada. La segunda implementación es el filtro de salida escrito para un cliente de transporte, que elimina recursivamente los campos de contacto del conductor del resultado de la herramienta, manteniendo los números del despacho. La reserva, dicha antes de que preguntes: la parte de teléfono pasa por un host SIP, y el host por el que van nuestras líneas de prueba no responde a la fecha de escritura — no te damos un número de demostración que no pudiéramos levantar delante de ti.
En una empresa de transporte o de entrega, la mayoría de las llamadas recibidas son la misma pregunta hecha por personas distintas: dónde está la mercancía, a qué hora llega, por qué no ha llegado. La respuesta no está en un documento y no está en un sistema — está en la cabeza del conductor, que conduce. El despacho hace la conexión: toma la llamada del cliente, llama al conductor, vuelve al cliente. Ese trabajo ocupa a una persona entera y se hace cien veces al día, con las mismas tres frases.
Hemos construido exactamente esta cadena, como mecanismo con estados, no como función de marketing. Un agente habla con el cliente. Cuando necesita una respuesta que no tiene, llama a una función que inicia una segunda llamada — hacia el courier — vinculada a la conversación de la que salió. Esa llamada tiene su propia fila en una tabla, con estado que pasa por `calling`, `in_progress`, `retrying`, `completed`, `failed`, `no_answer`, `timeout`, con el número del intento, con un máximo de tres intentos y una pausa de dos minutos entre ellos. El resultado se escribe de forma estructurada: el resumen de lo que dijo el courier, el tiempo estimado, la posición.
La parte que se pasa por alto fácilmente y que nosotros tratamos como un requisito, no como una precaución: el número de teléfono del conductor no tiene derecho a llegar al cliente. No es una instrucción escrita en el prompt del agente, porque una instrucción en un prompt puede eludirse. Es un filtro que recorre recursivamente el resultado de la herramienta y elimina los campos de contacto del conductor antes de que ese resultado llegue al modelo — manteniendo los números del despacho. Lo que fue eliminado no puede dictarse, sin importar cómo pregunte el agente.
Y el límite más importante es uno de infraestructura, no de inteligencia: un agente de voz por teléfono depende de un host SIP entre tu operador y la plataforma. Cuando ese host cae, las llamadas no salen, y la firma del fallo es reconocible — solicitud caducada, identificador de llamada vacío, duración cero. El host por el que pasan nuestras líneas de prueba no responde a la fecha de escritura de esta página. En la web, el recorrido de voz es verificable hoy; por teléfono, la primera etapa de cualquier trabajo es establecer en qué host entran tus números.