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 minutos
Latencia máxima: 15 minutos
Objeto: clients_trustedzone.deltashare_core.messages
Retención: 3 días (D-0, D-1, D-2)
Carga histórica inicial (en objeto separado): 360 días
La 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 base64
Decodificar 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 columnas
La relación de columnas, diccionario y metadatos disponibles en cada tabla, se encuentra en un documento externo.
Ejemplos de consultas para análisis de datos
Volumen 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.net
StorageDateDayBR → 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 mensajes
La 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 Desk
Ejemplo 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 fecha
Volumen de usuarios nuevos y recurrentes
Tasa de retorno de usuarios
Respuestas a notificaciones activas
Segmentación de mensajes asociados a un ticket de Blip Desk
Segmentación de la conversación de un único usuario con fines regulatorios a partir del teléfono
Para más información, acceda a la discusión en nuestra comunidad o a los videos en nuestro canal. 😃