Historial de Mensajes WhatsApp
El historial de mensajes te permite revisar la conversación completa entre un paciente y el bot de WhatsApp, incluyendo:- Todos los mensajes enviados y recibidos
- Herramientas invocadas por el bot (create_appointment, get_availability, etc.)
- Timestamps precisos de cada mensaje
- Metadatos técnicos (IDs, latencia, cache hits)
Acceder al Historial
Desde la Lista de Conversaciones
1
Ve a WhatsApp → Conversaciones
Navega a la sección WhatsApp → Conversaciones desde el menú lateral.
2
Encuentra la conversación
Usa búsqueda o filtros para encontrar la conversación deseada.
3
Haz clic en 'Ver'
Haz clic en el botón “Ver” o en la fila completa para abrir el historial.
Vista de Historial
El historial muestra mensajes en orden cronológico (más antiguo arriba, más reciente abajo), similar a una conversación de WhatsApp.
Elementos del Historial
Mensajes del Paciente
Los mensajes del paciente se muestran con:
- Icono de usuario a la izquierda
- Timestamp preciso (formato: DD/MM/YYYY HH:MM:SS)
- Texto del mensaje tal como fue enviado
- Alineación izquierda (convención de chat)
- Texto plano: Mensajes escritos normalmente
- Notas de voz: Se muestra la transcripción con icono 🎤
- Emojis: Se muestran correctamente (unicode)
Mensajes del Bot
Los mensajes del bot se muestran con:
- Icono de robot a la derecha
- Timestamp preciso
- Texto de respuesta formateado
- Alineación derecha (convención de chat)
- Metadatos técnicos (ver abajo)
Metadatos Técnicos
Para mensajes del bot que invocan herramientas, el sistema muestra metadatos expandibles:🔧 Herramienta Usada
🔧 Herramienta Usada
Qué muestra: Nombre de la herramienta invocada por el LLM.Ejemplos:
get_availability- Consultó horarios disponiblescreate_appointment- Creó una cita nuevareschedule_appointment- Modificó una cita existentecancel_appointment- Canceló una citaget_patient_appointments- Buscó citas del pacientelist_services- Listó servicios de la clínica
⏱️ Latencia
⏱️ Latencia
Qué muestra: Tiempo que tomó procesar el mensaje.Valores típicos:
- 2-5ms (cache hit): Resultado obtenido desde cache, ultra rápido
- 200-600ms (DB query): Query a base de datos, normal
- 3-5s (LLM call): Invocación del modelo de lenguaje, aceptable
- >10s: Latencia alta, posible problema de performance
💾 Cache Status
💾 Cache Status
Qué muestra: Si el resultado vino de cache o requirió query nuevo.Valores:
- Cache HIT: Resultado cacheado (ahorro de 99% de latencia)
- Cache MISS: Requirió query a DB o API
- Cache INVALIDATED: Cache limpiado por cambio de estado
🔑 IDs Técnicos
🔑 IDs Técnicos
Qué muestra: IDs de base de datos para debugging.Campos:
message_id: ID único del mensaje en DBconversation_id: ID de la conversación completaappointment_id: ID de la cita creada/modificada (si aplica)trace_id: ID de LangSmith para tracing (si LangSmith está activo)
⚠️ Errores y Warnings
⚠️ Errores y Warnings
Qué muestra: Si hubo errores o advertencias durante el procesamiento.Ejemplos:
[ERROR] Service not found- Servicio solicitado no existe[WARNING] Appointment limit reached- Límite de plan alcanzado[ERROR] Invalid phone format- Número de teléfono inválido[WARNING] Hallucination detected- Audio corto con transcripción dudosa
Funcionalidades Interactivas
Expandir/Contraer Metadatos
Por defecto, los metadatos técnicos están contraídos para no saturar la vista. Puedes:- Clic en icono 🔧 para expandir/contraer metadatos de un mensaje específico
- Botón “Expandir todos” para ver metadatos de todos los mensajes
- Botón “Contraer todos” para ocultar todos los metadatos
Copiar Texto de Mensaje
Haz clic en el icono de “copiar” (📋) junto a cada mensaje para copiar el texto al portapapeles. Útil para:- Reportar bugs con texto exacto
- Compartir conversación con equipo técnico
- Documentar casos de uso
Buscar en Historial
Usa el campo de búsqueda en la parte superior para encontrar mensajes específicos: Ejemplos de búsqueda:cancelar- Encuentra mensajes donde el paciente pidió cancelar10:00- Encuentra menciones de horarios específicoscorte- Encuentra menciones del servicio “corte de pelo”create_appointment- Encuentra mensajes donde el bot creó una cita
La búsqueda es case-insensitive (no distingue mayúsculas/minúsculas) y busca en texto de mensajes y nombres de herramientas.
Indicadores Visuales
Transcripción de Notas de Voz
Los mensajes de voz transcritos se muestran con formato especial:- Icono 🎤: Indica que fue nota de voz, no texto escrito
- Duración: Segundos de audio
- Texto transcrito: Lo que Whisper entendió del audio
- Metadatos: Servicio usado (Whisper) y latencia desglosada
Mensajes con Errores
Los mensajes donde el bot falló se muestran con banner rojo:- Lee el detalle del error
- Sigue la sugerencia (si aplica)
- Reporta a equipo técnico con
message_idsi no puedes resolver
Casos de Uso Comunes
Validar que el Bot Agendó Correctamente
Objetivo: Verificar que una cita fue creada con datos correctos.1
Abre el historial
Desde la lista de conversaciones, haz clic en “Ver” para la conversación deseada.
2
Busca 'create_appointment'
Usa la búsqueda para encontrar mensajes con herramienta
create_appointment.3
Expande metadatos
Haz clic en 🔧 para ver parámetros enviados a la herramienta.
4
Verifica datos
Confirma que:
- Fecha y hora son correctas
- Servicio es el solicitado por el paciente
- Teléfono está en formato E.164 correcto (+34612345678)
- Nombre del paciente es correcto
5
Valida en calendario
Ve al calendario de citas para confirmar que la cita existe en el sistema.
Debugging de Conversación Problemática
Objetivo: Identificar por qué el bot no pudo ayudar al paciente.1
Identifica síntomas
¿Qué indica que hay problema?
- Paciente repite la misma pregunta 3+ veces
- Bot invoca la misma herramienta múltiples veces sin éxito
- Conversación tiene 15+ mensajes sin resolver
- Paciente usa palabras como “error”, “no funciona”, “no entiendo”
2
Expande todos los metadatos
Haz clic en “Expandir todos” para ver detalles técnicos completos.
3
Busca errores
Revisa mensajes con banner rojo (⚠️ ERROR).
4
Analiza herramientas
¿Qué herramientas se invocaron?
- Si
get_availabilityse llamó 5+ veces → problema con detección de disponibilidad - Si
create_appointmentfalló → problema con validación de datos - Si
search_patientfalló → problema con formato de teléfono
5
Verifica parámetros
Expande metadatos de herramientas fallidas para ver qué parámetros se enviaron.Problemas comunes:
- Fecha en formato incorrecto (debe ser YYYY-MM-DD)
- Teléfono sin formato E.164 (+34…)
- Service ID incorrecto (no existe en DB)
6
Reporta con IDs
Copia
message_id, conversation_id, y trace_id (si LangSmith está activo) para reportar al equipo técnico.Analizar Performance del Bot
Objetivo: Identificar mensajes lentos que frustran al paciente.1
Filtra por latencia alta
Busca mensajes con ⏱️ Latencia > 10s.
2
Identifica patrón
¿La latencia alta es sistemática o aislada?
- Sistemática: Problema de infraestructura (DB lenta, API de OpenAI lenta)
- Aislada: Problema con herramienta específica o query compleja
3
Revisa cache status
¿Los resultados vienen de cache o requieren queries?
- Cache HIT frecuente: Sistema optimizado ✓
- Cache MISS frecuente: Cache no está funcionando, problema de TTL
4
Analiza herramientas lentas
¿Qué herramientas toman más tiempo?
get_availabilitydebería ser 2-5ms (cache) o 200-400ms (DB)create_appointmentdebería ser 400-600ms- Si toma >1s → problema de query o índices faltantes
5
Reporta performance issues
Reporta a equipo técnico con:
message_iddel mensaje lento- Latencia observada
- Herramienta invocada
- Cache status (HIT o MISS)
Exportar Historial
Copiar Conversación Completa
Haz clic en el botón “Copiar todo” en la parte superior para copiar el historial completo al portapapeles. Formato:- Compartir con equipo técnico
- Documentar casos de uso
- Reportar bugs con contexto completo
Descargar como JSON (Técnico)
Haz clic en “Descargar JSON” para obtener el historial en formato JSON con todos los metadatos técnicos. Formato:- Análisis técnico profundo
- Import a herramientas de análisis (LangSmith, etc.)
- Debugging avanzado
Mejores Prácticas
Troubleshooting
No veo metadatos técnicos
Causa: Los metadatos están contraídos por defecto. Solución: Haz clic en el icono 🔧 junto al mensaje o en “Expandir todos”.Mensaje aparece como “[Contenido no disponible]”
Causas posibles:- Mensaje eliminado: El paciente eliminó el mensaje en WhatsApp antes de que llegara al servidor
- Formato no soportado: El paciente envió un formato de mensaje que el sistema no procesa (video, imagen, documento)
- Error de sincronización: Problema temporal con Twilio webhook
conversation_id.
Latencia muy alta (>30s)
Causas comunes:- API de OpenAI saturada: Picos de tráfico en OpenAI
- Base de datos lenta: Queries complejas sin índices
- Timeout de cache: Cache expiró y requiere query completa
- Verifica si es problema aislado o sistemático (revisa otras conversaciones)
- Si es sistemático, contacta a equipo técnico
- Si es aislado, simplemente reintenta la acción