Esta tabla contiene información de los contactos que pasan por los bots.
Latencia nominal: 5 minutos
Latencia máxima: 15 minutos
Objeto: clients_trustedzone.deltashare_core.contact
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 está disponible durante 7 días para la ingestión.
Conceptos importantes:
Identity y Owner
Identity es el ID del usuario, y Owner será el nombre del bot en el formato "botid@msging.net". Para buscar información del usuario, es necesario utilizar las claves identity y Owner para recuperar el contexto del usuario dentro del bot deseado.
Esta tabla normalmente se utiliza como un catálogo de información de los usuarios. Se recomienda el almacenamiento de información fija relacionada con el usuario, como por ejemplo: CPF, código interno del cliente, tipo de cliente. Su uso se dará cuando, al analizar alguna de las otras tablas, sea necesario asociar alguna información que quede registrada al ID del usuario.
Cabe resaltar que los extras globales son extras asociados a eventos/tracking; en la tabla de contactos tendremos los extras asociados al ID del usuario.
El registro de información asociada a los contactos está directamente relacionado con el desarrollo del Bot.
Posibilidades de análisis (TBD)
Responsable del envío de la campaña
Cuando una campaña se envía desde la pantalla de Growth, el responsable del envío puede visualizarse a través de la tabla Contact. Esta información no está disponible en la tabla Messages.
Primer paso: armar la tabla para recuperar el ID del/los envío(s).
Si es necesario, se puede aplicar un filtro por el nombre de la plantilla (template) o el nombre de la campaña, como se muestra en la imagen a continuación:
Sugerencia de query:
WITH disparosRealizados AS (
SELECT
decode(unbase64(Content), 'UTF-16LE') AS Mensaje,
Id AS IdEnvio,
FromIdentity AS BotId,
ToIdentity AS UserId,
json_tuple(Metadata, '#activecampaign.name') AS NombreCampaña,
get_json_object(
get_json_object(decode(unbase64(Content), 'UTF-16LE'), '$.template'),
'$.name'
) AS templateName,
Metadata
FROM tabla.messages
WHERE tenantId = 'tenantId'
AND OwnerIdentity = 'BOTID@msging.net' -- ID del bot
AND PpDomain = 'broadcast.msging.net'
AND StorageDateDayBR = '2025-01-21'
)
SELECT *
FROM disparosRealizados
WHERE NombreCampaña RLIKE 'NOMBRE DE LA CAMPAÑA';
Luego, el responsable del envío puede recuperarse directamente de la tabla Contact.
Dentro de esta tabla, el ID del envío (campaignId) y el responsable (campaignOriginator) están disponibles dentro del JSON en la columna Extras.
campaignId y campaignOriginator
Ejemplo de query con solo la información necesaria para buscar estos datos en la tabla Contact:
SELECT
get_json_object(t2.Extras, '$.campaignId') AS campaignId,
get_json_object(t2.Extras, '$.campaignMessageTemplate') AS MessageTemplate,
get_json_object(t2.Extras, '$.campaignOriginator') AS campaignSender
FROM tabla.contact t2
WHERE get_json_object(t2.Extras, '$.campaignId') = 'xxxxxx-yyyyy-bbbb-b6a1354eac85'
AND t2.Owner = 'BOTID@msging.net'
AND t2.StorageDateDayBR = '2025-01-21';
Información del envío disponible en la tabla Contact
Importante:
El campo campaignId de los contactos no tiene el prefijo "activecampaign:" que posee el ID en la tabla Message, por lo que es necesario hacer un split en la columna de mensaje para cruzar con el ID de la tabla de contacto.
Ejemplo:
ID tabla Message: activecampaign:123456
ID tabla Contact: 123456
Ejemplo de join:
SELECT *
FROM disparosRealizados t1
INNER JOIN base.contact t2
ON split(t1.IdEnvio, '[:]')[1] = get_json_object(t2.Extras, '$.campaignId')
AND t1.Botid = t2.Owner;
Después de cruzar la información de ambas tablas, es posible obtener los datos correlacionados correctamente:
Ejemplo de visualización después de unir las tablas Messages y Contact para obtener la información sobre el envío.