Skip to content

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.

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

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.

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:

  1. Ve a Configuración > Archivado de mensajes.
  2. Selecciona tus canales.
  3. Selecciona Guardar cambios.

La página Archivado de mensajes tiene tres canales para seleccionar: Correo electrónico, Push y SMS.

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
{
  "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 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.alert es un objeto que contiene campos como title y body) frente a las notificaciones simples (donde aps.alert es 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.

New Stuff!