Mensajes 15 de octubre de 2025 13:33 Esta tabla contiene registros de los mensajes intercambiados entre los usuarios y el contacto inteligente, así como mensajes del sistema entre subbots.Latencia nominal: 5 minutosLatencia máxima: 15 minutosObjeto: clients_trustedzone.deltashare_core.messagesRetención: 3 días (D-0, D-1, D-2)Carga histórica inicial (en objeto separado): 360 díasLa carga histórica debe combinarse con Blip para su disponibilidad, el objeto estará disponible durante 7 días para ingestión.El contenido de los mensajes se encuentra disponible en la columna "Content" de la tabla.IMPORTANTE: Los mensajes dentro de esta tabla están enmascarados en base64, es decir, es necesario decodificarlos para visualizar su contenido.Contenido de la columna "Content" codificado en base64Decodificar la columna "Content"A continuación se muestra cómo decodificar el contenido de la columna usando SQL: SELECT decode(unbase64(Content), 'UTF-16LE') as mensaje, * FROM tabla.messages Columna "Content" decodificada con unbase64 Relación de columnasLa relación de columnas, diccionario y metadatos disponibles en cada tabla, se encuentra en un documento externo. Ejemplos de consultas para análisis de datosVolumen de Mensajes Intercambiados (por Bot y Usuario)Para el siguiente ejemplo, utilizaremos las siguientes columnas de la tabla "Messages" para generar las vistas de mensajes enviados por el bot y por el usuario, agrupados por día:OwnerIdentity → Id del bot (en formato id@msging.net). Ej.: botid@msging.netStorageDateDayBR → Fecha del mensaje en UTC-3 (Horario Oficial de Brasilia)FromIdentity → Responsable del envío del mensaje. Ej.: botid@msging.net, 5531999999999@wa.gw.msging.net, etc.ToIdentity → Destinatario del mensaje, guardado en formato id@domain. Ej.: botid@msging.net, 5531999999999@wa.gw.msging.net, etc.ToDomain → Dominio del canal del destinatario del mensaje. Ej.: broadcast.msging.net, wa.gw.msging.net, 0mn.io, googlersc.gw.msging.net, etc.SELECT OwnerIdentity, StorageDateDayBR as Data, COUNT(CASE WHEN FromIdentity RLIKE '@msging.net' AND ToDomain != 'broadcast.msging.net' THEN FromIdentity ELSE NULL END) AS MensajesBot, COUNT(CASE WHEN FromIdentity RLIKE '@wa.gw.msging.net' THEN FromIdentity ELSE NULL END) AS MensajesUsuario, COUNT(DISTINCT CASE WHEN ToIdentity RLIKE '@wa.gw.msging.net' THEN ToIdentity ELSE NULL END) AS UsuarioUnico, COUNT(DISTINCT CASE WHEN FromIdentity RLIKE '@wa.gw.msging.net' THEN FromIdentity ELSE NULL END) AS UsuarioComprometido, COUNT(*) AS TotalMensajes FROM tabla.messages WHERE TenantId = 'idContrato' AND StorageDateDayBR >= '2024-09-19' GROUP BY OwnerIdentity, Data Calculando el tiempo entre mensajesLa columna StorageDateBR contiene la fecha y hora de los mensajes; con ella es posible ordenar y calcular la diferencia entre los tiempos de los mensajes.Es importante agrupar por usuario y botid para segmentar en conversaciones.Opciones de análisis:Tiempo entre todos los mensajes para entender el comportamiento del usuario a lo largo de la conversación.Tiempo desde el inicio hasta el final de una conversación, ya sea dentro del bot o en atención.Tiempo de respuesta para una NA u otra comunicación más crítica, como un campo que espera algún documento.Al realizar análisis con tiempos, recomendamos construir un boxplot, mediana y cuartiles. Es común que la media temporal se vea afectada por usuarios outliers, lo que puede impactar en la toma de decisiones.Separar conversaciones dentro del DeskEjemplo de consulta para obtener las conversaciones realizadas en Blip Desk entre Agente y Usuario:SELECT StorageDateDayBR, StorageDateBR, CASE WHEN FromDomain = 'desk.msging.net' THEN 'Agente' ELSE 'Usuario' END AS MensajeDe, CASE WHEN ToDomain = 'desk.msging.net' THEN 'Agente' ELSE 'Usuario' END AS MensajePara, FromIdentity, ToIdentity, decode(unbase64(Content), 'UTF-16LE') AS Mensaje FROM Database.messages WHERE TenantId = 'TenantId' AND StorageDateDayBR = '2025-03-19' AND (ToDomain = 'desk.msging.net' OR FromDomain = 'desk.msging.net') VOLUMEN DE MENSAJES INTERCAMBIADOS (Usuario x Agente)Objetivo: Esta consulta calcula el volumen total de mensajes intercambiados entre agentes y usuarios dentro de la plataforma, permitiendo analizar la distribución de interacciones.Métrica calculada:Total de mensajes por tipo de remitente: contabiliza cuántos mensajes fueron enviados por agentes y cuántos por usuarios.Explicación de la consulta:Clasificación de mensajes:Si FromDomain = desk.msging.net, el mensaje se clasifica como "Agente".De lo contrario, se clasifica como "Usuario".Agrupación y conteo:La consulta agrupa los registros por la clasificación del remitente (MensajeDe) y cuenta el número total de mensajes por grupo.SELECT MensajeDe, COUNT(*) AS TotalMensajes FROM ( SELECT StorageDateDayBR, StorageDateBR, CASE WHEN FromDomain = 'desk.msging.net' THEN 'Agente' ELSE 'Usuario' END AS MensajeDe, CASE WHEN ToDomain = 'desk.msging.net' THEN 'Agente' ELSE 'Usuario' END AS MensajePara, FromIdentity, ToIdentity, DECODE(UNBASE64(Content), 'UTF-16LE') AS Mensaje FROM clients_trustedzone.deltashare_core.messages WHERE TenantId = 'tenant' AND StorageDateDayBR = '2025-03-25' AND (ToDomain = 'desk.msging.net' OR FromDomain = 'desk.msging.net') ) AS Subquery GROUP BY MensajeDe; Filtros aplicados:Solo se consideran mensajes de la empresa tenant.Filtra mensajes enviados en la fecha 2025-03-25.Solo considera mensajes que involucren el dominio desk.msging.net (interacciones con agentes).Ejemplo de salida:Análisis incluidos en la documentación:Volumen de accesos y usuarios por fechaVolumen de usuarios nuevos y recurrentesTasa de retorno de usuariosRespuestas a notificaciones activasSegmentación de mensajes asociados a un ticket de Blip DeskSegmentación de la conversación de un único usuario con fines regulatorios a partir del teléfonoPara más información, acceda a la discusión en nuestra comunidad o a los videos en nuestro canal. 😃 Artículos relacionados Tickets – Nuevos Datos Conversacionales Contacto Cómo crear y aprobar una plantilla de mensaje en WhatsApp Tickets de cierre de usuario