Mensagens 15 de outubro de 2025 13:33 Atualizado Essa tabela contém registros das mensagens trafegadas entre usuários e o contato inteligente, bem como mensagens de sistema entre subbots. Latência nominal: 5 minutos Latência máxima: 15 minutos Objeto: clients_trustedzone.deltashare_core.messages Retenção: 3 dias (D-0, D-1, D-2) Carga histórica inicial (em objeto separado): 360 dias A carga histórica deve ser combinada com a Blip para disponibilização, o objeto fica disponível por 7 dias para ingestão. O conteúdo das mensagens é disponibilizado na coluna "Content" da tabela. IMPORTANTE: As mensagens dentro dessa tabela, encontram-se mascaradas em base64, ou seja, é necessário fazer a decodificação para visualizar o seu conteúdo. Conteúdo da coluna "Content" codificado em base64 Decodificar a coluna "Content" Abaixo mostraremos como decodificar a conteúdo da coluna, utilizando a linguagem SQL. SELECT decode(unbase64(Contect), 'UTF-16LE') as mensagem, * FROM tabela.messages Coluna "Content" decodificada com unbase64 Relação de colunas A relação de colunas, dicionário e metadados disponíveis em cada tabela, está disponível em um documento externo Exemplos de queries que podem ser utilizadas para análise dos dados Volume de Mensagens Trafegada (por Bot e Usuário) Para o exemplo abaixo, utilizaremos as seguintes colunas da tabela "Messages" para gerar as visões de mensagens enviadas pelo pelo bot e pelo usuário, agrupadas por dia: OwnerIdentity -> Id do bot (no formato id@msging.net). Ex.: botid@msging.net. StorageDateDayBR -> Data da mensagem em UTC-3 (Horário Oficial de Brasília). FromIdentity -> Responsável pelo envio da mensagem. Ex.: botid@msging.net, 5531999999999@wa.gw.msging.net etc... ToIdentity -> Destinatário da mensagem , salvo no formato id@domain. Ex.: botid@msging.net, 5531999999999@wa.gw.msging.net etc... ToDomain -> Nessa constam o domínio do canal do destinatário da mensagem. Ex.: 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 MensagensBot, COUNT(case when fromIdentity rlike '@wa.gw.msging.net' then fromIdentity else NULL end) as MensagensUsario, COUNT(distinct case when ToIdentity rlike '@wa.gw.msging.net' then ToIdentity else NULL end) as UsuárioUnico, COUNT(distinct case when FromIdentity rlike '@wa.gw.msging.net' then FromIdentity else NULL end) as UsuárioEngajado, count(*) as totalMensagens -- count(FromDomain) as qtde FROM tabela.messages WHERE TenantId = 'idContrato' AND StorageDateDayBR >= '2024-09-19' GROUP BY OwnerIdentity, Data Calculando o tempo entre mensagens A coluna StorageDateBR possui a data e hora das mensagens, por ela é possível ordenar e realizar a diferença entre os tempos das mensagens. É importante lembrar de agrupar o usuário e botid, dessa forma segmentando em conversas. Algumas opções de análise: O tempo entre todas as mensagens afim de entender o comportamento do usuário ao longo da conversa; O tempo entre o começo e final de uma conversa, pode ser ela dentro do bot ou do atendimento O tempo de resposta para uma NA ou outra comunicação mais essencial, como um campo que aguarda algum documento. Ao realizar análises utilizando tempos, recomendamos que construa um boxplot, mediana e quartis. É extremamente comum que a média temporal seja mascarada por usuários outliers e isso pode impactar em tomadas de decisões. Separar conversas dentro do Desk Exemplo de query de como obter as conversas realizadas no Blip Desk entre Atendente e Usuário select StorageDateDayBR, StorageDateBR, case when FromDomain = 'desk.msging.net' then "Atendente" when FromDomain != 'desk.msging.net' then "Usuario" end as MensagemDe, case when toDomain = 'desk.msging.net' then "Atendente" when ToDomain != 'desk.msging.net' then "Usuario" end as MensagemPara, FromIdentity, ToIdentity, decode(unbase64(Content), 'UTF-16LE') as Mensagem from Database.messages where TenantId = 'TenandId' and StorageDateDayBR = '2025-03-19' and (ToDomain = 'desk.msging.net' or FromDomain = 'desk.msging.net') VOLUME DE MENSAGENS TRAFEGADAS (Usuário x Atendente) Objetivo: Essa query calcula o volume total de mensagens trafegadas entre atendentes e usuários dentro da plataforma, permitindo analisar a distribuição das interações. Métrica Calculada: Total de Mensagens por Tipo de Remetente: Contabiliza quantas mensagens foram enviadas por atendentes e quantas por usuários. Explicação da Query: Classificação das Mensagens: Se a coluna FromDomain for desk.msging.net, a mensagem é classificada como "Atendente". Caso contrário, a mensagem é classificada como "Usuário". Agrupamento e Contagem: A query agrupa os registros pela classificação do remetente (MensagemDe). Conta o número total de mensagens para cada grupo. Query de Exemplo: SELECT MensagemDe, COUNT(*) AS TotalMensagens FROM ( SELECT StorageDateDayBR, StorageDateBR, CASE WHEN FromDomain = 'desk.msging.net' THEN 'Atendente' ELSE 'Usuario' END AS MensagemDe, CASE WHEN ToDomain = 'desk.msging.net' THEN 'Atendente' ELSE 'Usuario' END AS MensagemPara, FromIdentity, ToIdentity, DECODE(UNBASE64(Content), 'UTF-16LE') AS Mensagem FROM clients_trustedzone.deltashare_core.messages WHERE TenantId = 'tenant' -- Cliente AND StorageDateDayBR = '2025-03-25' -- Data de referência AND (ToDomain = 'desk.msging.net' OR FromDomain = 'desk.msging.net') ) AS Subquery GROUP BY MensagemDe; Filtros Aplicados: Considera apenas mensagens da empresa tenant. Filtra mensagens enviadas na data 2025-03-25. Considera apenas mensagens que tenham envolvimento com o domínio desk.msging.net (interações com atendentes). Exemplo de Saída: Análises no roadmap da documentação: Volume de acessos e usuários por data Volume de usuários novos e recorrentes Taxa de Retorno de Usuários Respostas a Notificações Ativas Segmentando as mensagens associadas a um ticket do Blip Desk Segmentando a conversa de um único usuário para fins regulatórios a partir do telefone Para mais informações, acesse a discussão sobre o assunto em nossa comunidade ou os vídeos no nosso canal. 😃 Artigos relacionados Tickets – Novos [Data Flow] [Cliente] Guia e Documentação V1 Dados Conversacionais Contato Encerramento de tickets pelo Usuário