Definición del Tiempo de Respuesta del Agente
🧭 1. Entender el contexto
Hay tres tipos de mensajes:
- TYPE_USER_IN → el usuario envía un mensaje (cliente).
- TYPE_BOT_OUT → el bot responde.
- TYPE_AGENT_OUT → un agente en vivo responde.
Los agentes pueden unirse a mitad de la conversación, cuando el bot ya está respondiendo automáticamente. Cuando el agente responde, el bot se pausa temporalmente.
El objetivo es medir:
"Cuánto tiempo tarda un agente en responder al mensaje de un usuario que requiere atención humana."
🧩 2. Definición principal del Tiempo de Respuesta del Agente
Tiempo de Respuesta del Agente (ART) =
La diferencia de tiempo entre el último mensaje del usuario que requiere una respuesta humana y el primer mensaje saliente del agente después de ese mensaje.
Sin embargo, como un bot puede responder automáticamente antes de que el agente tome el control, necesitamos ignorar los mensajes del bot al calcular el ART.
Eso significa:
- Medir solo desde el mensaje del usuario (TYPE_USER_IN)
- Hasta la siguiente respuesta del agente (TYPE_AGENT_OUT)
- Ignorando los mensajes intermedios del bot (TYPE_BOT_OUT)
🧠 3. Reglas para una medición precisa
| Caso | Descripción | ¿Debe contar como tiempo de respuesta? |
| --- | --- | --- |
| El usuario envía un mensaje → el agente responde directamente | Caso estándar | ✅ Sí |
| El usuario envía un mensaje → el bot responde → el agente se une después | El agente tomó el control después del bot | ✅ Sí (empieza desde el mensaje del usuario, no desde el del bot) |
| El bot envía un mensaje proactivo → el agente responde | Ningún mensaje del usuario lo activó | ❌ No |
| Un agente responde a otro agente | Colaboración interna | ❌ No |
| El agente responde después de un mensaje del usuario pero tras una larga espera (bot en pausa, esperando al agente) | Sigue contando | ✅ Sí |
| El usuario envía varios mensajes antes de que responda el agente | Usa el último mensaje del usuario antes de la respuesta del agente | ✅ Sí |
🧮 4. Algoritmo / Flujo lógico
Puedes calcular el tiempo de respuesta del agente así:
Para cada mensaje TYPE_AGENT_OUT:
- Busca hacia atrás en el tiempo el mensaje TYPE_USER_IN más reciente.
- Ignora cualquier mensaje TYPE_BOT_OUT o TYPE_AGENT_OUT entre ambos.
Calcula la diferencia de tiempo:
Excluye:
- Si no hay un TYPE_USER_IN previo.
- Si el último mensaje antes de la respuesta del agente fue otro mensaje de agente.
- Si el mensaje del agente forma parte de una secuencia rápida (el mismo agente continúa la conversación).
Si el agente envía varios mensajes seguidos, solo el primer mensaje después de la entrada del usuario cuenta como una "respuesta".
🧾 5. Escenarios y ejemplos
🧩 Escenario A: Caso básico
| Marca de tiempo | Tipo | Mensaje | |
| --- | --- | --- | --- |
| 10:00:00 | TYPE_USER_IN | "Hola, necesito ayuda" | |
| 10:00:05 | TYPE_BOT_OUT | "¡Hola! ¿Cómo puedo ayudarte?" | |
| 10:00:20 | TYPE_AGENT_OUT | "Hola John, te ayudaré con eso." | |
Tiempo de Respuesta del Agente = 10:00:20 − 10:00:00 = 20 s
✅ Se cuenta, aunque el bot respondió primero.
🧩 Escenario B: El bot atiende primero, luego el agente se une más tarde
| Hora | Tipo | Mensaje |
| --- | --- | --- |
| 11:00:00 | TYPE_USER_IN | "¿Puedo obtener un reembolso?" |
| 11:00:03 | TYPE_BOT_OUT | "Por favor, proporciona tu ID de pedido." |
| 11:00:10 | TYPE_USER_IN | "Pedido #12345" |
| 11:00:12 | TYPE_BOT_OUT | "Las solicitudes de reembolso suelen tardar 3 días..." |
| 11:00:40 | TYPE_AGENT_OUT | "Hola, puedo confirmar que tu reembolso ya fue procesado." |
✅ Tiempo de respuesta = 11:00:40 − 11:00:10 = 30 s
(último mensaje del usuario antes de la respuesta del agente)
🧩 Escenario C: Un agente responde a otro agente
| Hora | Tipo | Mensaje |
| --- | --- | --- |
| 12:00:00 | TYPE_AGENT_OUT | "Por favor, atiende este ticket." |
| 12:00:05 | TYPE_AGENT_OUT | "Claro, me encargo." |
❌ No se registra tiempo de respuesta: comunicación interna entre agentes.
🧩 Escenario D: Varios mensajes del usuario antes del agente
| Hora | Tipo | Mensaje |
| --- | --- | --- |
| 13:00:00 | TYPE_USER_IN | "Hola" |
| 13:00:05 | TYPE_USER_IN | "¿Hay alguien ahí?" |
| 13:00:10 | TYPE_AGENT_OUT | "Sí, aquí estoy." |
✅ Tiempo de respuesta = 13:00:10 − 13:00:05 = 5 s
(Usa el mensaje más reciente del usuario)
🧩 Escenario E: Mensaje del usuario después de que el agente ya está activo
| Hora | Tipo | Mensaje |
| --- | --- | --- |
| 14:00:00 | TYPE_AGENT_OUT | "¡Hola! ¿En qué puedo ayudarte?" |
| 14:00:05 | TYPE_USER_IN | "Necesito cambiar mi correo electrónico." |
| 14:00:10 | TYPE_AGENT_OUT | "Claro, puedo hacerlo." |
✅ Tiempo de respuesta = 14:00:10 − 14:00:05 = 5 s