Archivado de mensajes
El archivado de mensajes te permite guardar una copia de los mensajes enviados a los usuarios con fines de archivo o cumplimiento normativo en tu contenedor de AWS S3, contenedor de Azure Blob Storage o contenedor de Google Cloud Storage.
Este artículo trata sobre cómo configurar el archivado de mensajes, las referencias de carga útil JSON y las preguntas frecuentes.
El archivado de mensajes está disponible como característica adicional. Para empezar a archivar mensajes, ponte en contacto con tu administrador del éxito del cliente de Braze.
Cómo funciona
Cuando esta característica está activada, Braze escribe un archivo JSON comprimido con gzip por cada mensaje enviado a un usuario a través de los canales seleccionados (correo electrónico, SMS/MMS o push). Braze escribe estos archivos en tu destino predeterminado de exportación de datos. Esto incluye todos los tipos de campaña para cada canal, como las campañas de correo electrónico transaccional enviadas a través de la API de correo electrónico transaccional.
Este archivo contendrá los campos definidos en Referencias de archivos y reflejará los mensajes finales con plantilla enviados al usuario. Cualquier valor de plantilla definido en tu campaña (por ejemplo, {{${first_name}}}) mostrará el valor final que el usuario recibió basándose en la información de su perfil. Esto te permite conservar una copia del mensaje enviado para satisfacer requisitos de cumplimiento, auditoría o atención al cliente.
Si configuras credenciales para varios proveedores de almacenamiento en la nube, el archivado de mensajes solo se exportará al marcado como destino predeterminado de exportación de datos. Si no estableces un valor predeterminado explícito y hay un contenedor de AWS S3 conectado, el archivado de mensajes se cargará en ese contenedor.
Al activar esta característica, se verá afectada la velocidad de entrega de tus mensajes, ya que la carga de archivos se realiza inmediatamente antes de enviar el mensaje para garantizar la precisión. La latencia introducida por el archivado de mensajes dependerá del proveedor de almacenamiento en la nube y del rendimiento y tamaño de los documentos guardados.
El JSON se guardará en tu contenedor de almacenamiento utilizando la siguiente estructura de claves:
sent_messages/{channel, one of: email, push, sms}/{MD5 digest of downcased: email address, push token, or E.164 phone number}/{campaign or Canvas step API ID}/{dispatch ID}.json.gz
Un archivo de ejemplo puede tener este aspecto:
sent_messages/email/819baa08d8d7e77e19d4666f5fc6050b/ee965cb2-8934-4b0a-acf1-91c899c2f915/651fd10b282850b39e1169c13975234b.json.gz
El resumen MD5 solo puede calcularse utilizando una dirección de correo electrónico, un token de notificaciones push o un número de teléfono E.164 conocidos en minúsculas. No se puede invertir un resumen MD5 conocido para obtener la dirección de correo electrónico, el token de notificaciones push o el número de teléfono E.164.
¿Tienes problemas para encontrar tus tokens de notificaciones push en tus contenedores?
Braze convierte tus tokens de notificaciones push a minúsculas antes de aplicarles el hash. El resultado es que el token de notificaciones push Test_Push_Token12345 se convierte a test_push_token12345 en la ruta de claves con el hash 32b802170652af2b5624b695f34de089.
Configurar el archivado de mensajes
Esta sección te guía en la configuración del archivado de mensajes para tu espacio de trabajo. Antes de continuar, confirma que tu empresa ha adquirido y activado el archivado de mensajes.
Paso 1: Conecta un contenedor de almacenamiento en la nube
Si aún no lo has hecho, conecta un contenedor de almacenamiento en la nube a Braze. Para conocer los pasos, consulta la documentación de nuestros socios sobre Amazon S3, Azure Blob Storage o Google Cloud Storage.
No es necesario configurar Currents para el archivado de mensajes, por lo que puedes omitir ese requisito previo en la documentación para socios.
Paso 2: Selecciona canales para el archivado de mensajes
La página de configuración de Archivado de mensajes controla qué canales guardarán una copia de los mensajes enviados en tu contenedor de almacenamiento en la nube.
Para seleccionar canales:
- Ve a Configuración > Archivado de mensajes.
- Selecciona tus canales.
- Selecciona Guardar cambios.

Si no ves Archivado de mensajes en Configuración, confirma que tu empresa ha adquirido y activado el archivado de mensajes.
Referencias de archivos
A continuación se incluyen referencias a la carga útil JSON entregada a tu contenedor de almacenamiento en la nube cada vez que se envía un mensaje. Consulta nuestro repositorio de ejemplos de código para ver archivos de ejemplo de archivado de mensajes.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"version": 1, //numerical version of the JSON structure
"to": ToAddress, ("[email protected]")
"subject": SubjectLine ("20% off coupon inside!"),
"from_name": DisplayName ("Braze"),
"from_address": FromAddress ("[email protected]"),
"html_body": HtmlBody,
"plaintext_body": PlainTextBody,
"amp_body": AMPEmailBody,
"extras": Hash of key-value pairs from Email Extras configured in the email editor,
"headers": HashOfHeaders,
"sent_at": UnixTimestamp,
"dispatch_id": DispatchIdFromBraze,
"campaign_id": CampaignApiId, // may not be available
"canvas_id": CanvasApiId, // may not be available
"canvas_step_id": CanvasStepApiId, // may not be available
"canvas_variation_id" : CanvasVariationApiId, // may not be available
"message_variation_id": MessageVariationApiId, // may not be available,
"attachments": Array of JSON Objects containing 'bytes' and 'file_name', // may not be available
"user_id": String,
"campaign_name": String, // will only be available if the message is from a campaign
"canvas_name": String, // will only be available if the message is from Canvas
"canvas_step_name": String, // will only be available if the message is from a Canvas
"external_id": String
}
El campo extras contiene los pares clave-valor configurados en el campo Extras de correo electrónico al redactar un correo electrónico en el editor HTML. Los extras de correo electrónico funcionan con todos los proveedores de servicios de correo electrónico (incluidos SendGrid y Sparkpost) y se incluyen en los mensajes archivados independientemente del proveedor que se utilice. Para obtener más información sobre cómo configurar los extras de correo electrónico, consulta Crear una campaña de correo electrónico. Para enviar datos de vuelta a Currents, consulta Extras de mensajes.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"version": 1 //numerical version of the JSON structure
"to": PhoneNumber, ("+15555555555"),
"body": Body ("Hi there!"),
"subscription_group": SubscriptionGroupExternalId,
"provider": StringOfProviderName,
"media_urls": ArrayOfString, // indicates a message is MMS
"sent_at": UnixTimestamp,
"dispatch_id": DispatchIdFromBraze,
"campaign_id": CampaignApiId, // may not be available
"canvas_id": CanvasApiId, // may not be available
"canvas_step_id": CanvasStepApiId, // may not be available
"canvas_variation_id" : CanvasVariationApiId, // may not be available
"message_variation_id": MessagVariationApiId, // may not be available
"user_id": String,
"campaign_name": String, // will only be available if the message is from a campaign
"canvas_name": String, // will only be available if the message is from Canvas
"canvas_step_name": String, // will only be available if the message is from a Canvas
"external_id": String
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"version": 1, //numerical version of the JSON structure
"to": PushToken,
"payload": JsonOfEntirePushPayload,
"platform": one of "android_push" | "ios_push" | "kindle_push" | "web_push",
"app_id": ApiKeyOfApp,
"sent_at": UnixTimestamp,
"dispatch_id": DispatchIdFromBraze,
"campaign_id": CampaignApiId, // may not be available
"canvas_id": CanvasApiApiId, // may not be available
"canvas_step_id": CanvasStepApiId, // may not be available
"canvas_variation_id" : CanvasVariationApiId, // may not be available
"message_variation_id": MessagVariationApiId, // may not be available
"user_id": String,
"campaign_name": String, // will only be available if the message is from a campaign
"canvas_name": String, // will only be available if the message is from a Canvas
"canvas_step_name": String, // will only be available if the message is from a Canvas
"external_id": String
}
Variaciones en la estructura de la carga útil push
El campo payload de nivel superior en los archivos de notificaciones push contiene toda la carga útil del proveedor tal como se envía al dispositivo. Dentro de este JSON, claves como aps (para APNs) o notification y data (para FCM) pueden variar significativamente dependiendo del tipo de mensaje, la plataforma y la configuración.
El archivado de mensajes captura la carga útil del mensaje en sí, pero no incluye los metadatos de entrega que se envían a FCM o APNs. Los metadatos de entrega incluyen:
- Tokens de dispositivo
- Configuración de prioridades
- Tiempo de vida (TTL)
- ID de colapso
- Encabezados de APNs
- Marcas de tiempo de caducidad
- Otros campos de configuración de entrega
Estos campos actúan como instrucciones de entrega para el proveedor push. Por lo general, no se consideran parte del contenido del mensaje.
Por ejemplo:
- Las notificaciones push de iOS pueden tener diferentes estructuras para las notificaciones enriquecidas (donde
aps.alertes un objeto que contiene campos comotitleybody) frente a las notificaciones simples (dondeaps.alertes una cadena). - Las notificaciones push de Android (por ejemplo, FCM) utilizan mensajes de datos con claves personalizadas. La estructura de la carga útil puede incluir diferentes campos opcionales dependiendo de la configuración del mensaje, como botones push, carruseles o metadatos adicionales.
Además, los envíos de prueba desde el dashboard pueden generar estructuras de carga útil diferentes a las de los mensajes de producción.
El formato de la carga útil JSON puede variar entre mensajes y cambiar con el tiempo. Al analizar las cargas útiles push archivadas, no asumas que tienen una estructura fija ni esperes que siempre estén presentes los mismos campos. Implementa una lógica de análisis flexible que maneje varios formatos de carga útil.
Preguntas frecuentes
¿Qué plantillas no se incluyen en la carga útil?
Las modificaciones realizadas después de que el mensaje salga de Braze no se reflejarán en el archivo guardado en tu contenedor de almacenamiento en la nube. Esto incluye las modificaciones que hacen nuestros socios de entrega de correo, como envolver los enlaces para el seguimiento de clics e insertar píxeles de seguimiento.
¿Qué mensajes aparecen bajo el valor “no asociado” en la ruta de la campaña?
Cuando un mensaje se envía fuera de una campaña o Canvas, el ID de la campaña en el nombre del archivo será “no asociado”. Esto ocurrirá cuando envíes mensajes de prueba desde el dashboard, cuando Braze envíe respuestas automáticas por SMS/MMS o cuando los mensajes enviados a través de la API no especifiquen un ID de campaña.
¿Cómo puedo encontrar más información sobre este envío?
Puedes utilizar external_id o dispatch_id junto con user_id para cruzar la información del mensaje con plantilla con nuestros datos de Currents y obtener más información, como la fecha y hora en que se entregó, si el usuario abrió o hizo clic en el mensaje, y mucho más.
¿Cómo se gestionan los reintentos?
Si no se puede acceder a tu contenedor de almacenamiento en la nube, Braze lo reintentará hasta tres veces con un jitter de retroceso. Braze gestiona automáticamente los reintentos del límite de velocidad de AWS S3.
¿Qué ocurre si mis credenciales no son válidas?
Si tus credenciales de almacenamiento en la nube dejan de ser válidas en algún momento, Braze no podrá guardar ningún mensaje en tu contenedor de almacenamiento en la nube, y esos mensajes se perderán. Te recomendamos que configures tus preferencias de notificación para Amazon Web Services, Google Cloud Services o Azure (Microsoft Cloud Services) para que recibas alertas sobre cualquier problema relacionado con las credenciales.
¿Por qué la marca de tiempo sent_at de mi archivo difiere ligeramente de la marca de tiempo de envío en Currents?
La copia renderizada se carga inmediatamente antes de enviar el mensaje al usuario. Debido a los tiempos de carga del almacenamiento en la nube, puede haber un retraso de unos segundos entre la marca de tiempo sent_at de la copia renderizada y el momento real en que se produce el envío.
¿Puedo crear un nuevo contenedor específico para el archivado de mensajes y mantener el contenedor actual para los datos de Currents?
No. Si estás interesado en crear estos contenedores específicos, envía tus comentarios sobre el producto.
¿Los datos archivados se escriben en una carpeta dedicada en un contenedor existente, de forma similar a cómo se estructuran las exportaciones de datos de Currents?
Los datos se escriben en una sección sent_messages del contenedor. Consulta Cómo funciona para obtener más detalles.
¿Puedo utilizar el archivado de mensajes para agrupar archivos en diferentes espacios de trabajo?
No. El archivado de mensajes no admite la agrupación de archivos por espacios de trabajo. En su lugar, puedes determinar a qué espacio de trabajo pertenece el ID de API de la campaña o del paso en Canvas y, a continuación, agruparlos en función de esa información.
Editar esta página en GitHub