Ir al contenido

Objeto de atributos del usuario

Una solicitud API con cualquier campo del objeto de atributos crea o actualiza un atributo con ese nombre y el valor indicado en el perfil de usuario especificado.

Utiliza los nombres de campo de perfil de usuario de Braze (enumerados a continuación o cualquiera de los enumerados en la sección de campos de perfil de usuario de Braze) para actualizar esos valores especiales en el perfil de usuario en el panel o añade tus propios datos de atributos personalizados al usuario.

Cuerpo del objeto

{
  // One of "external_id" or "user_alias" or "braze_id" or "email" or "phone" is required
  "external_id" : (optional, string) see external user ID,
  "user_alias" : (optional, User alias object),
  "braze_id" : (optional, string) Braze user identifier,
  "email": (optional, string) User email address,
  "phone": (optional, string) User phone number,
  // Setting this flag to true puts the API in "Update Only" mode.
  // When using a "user_alias", "Update Only" defaults to true.
  "_update_existing_only" : (optional, boolean),
  // See note regarding anonymous push token imports
  "push_token_import" : (optional, boolean),
  // Braze User Profile Fields
  "first_name" : "Alex",
  "email" : "[email protected]",
  // Custom Attributes
  "my_custom_attribute" : value,
  "my_custom_attribute_2" : {"inc" : int_value},
  "my_array_custom_attribute":[ "Value1", "Value2" ],
  // Adding a new value to an array custom attribute
  "my_array_custom_attribute" : { "add" : ["Value3"] },
  // Removing a value from an array custom attribute
  "my_array_custom_attribute" : { "remove" : [ "Value1" ]},
  // Array of objects custom attribute
  "my_array_of_objects_attribute": [{"key": "value"}, {"key": "value"}],
  // Adding to an array of objects (nested custom attribute syntax)
  "my_array_of_objects_attribute": { "$add": [{"key": "value"}] },
  // Removing from an array of objects (nested custom attribute syntax)
  "my_array_of_objects_attribute": { "$remove": [{"$identifier_key": "key", "$identifier_value": "value"}] },
}

Para eliminar un atributo de perfil, establécelo como null. Algunos campos, como external_id y user_alias, no pueden eliminarse después de haberse añadido a un perfil de usuario.

Resolución de identificadores

A menos que estés realizando una importación anónima de tokens de notificaciones push, cada objeto de atributos de usuario debe incluir al menos un identificador: external_id, user_alias, braze_id, email o phone. Cuando sea posible, incluye solo un identificador por objeto para evitar ambigüedades sobre qué perfil de usuario se está actualizando o creando.

Ten en cuenta lo siguiente al utilizar identificadores:

  • external_id y user_alias son mutuamente excluyentes. Incluir ambos en el mismo objeto de atributos de usuario devuelve un error. Para añadir un alias a un usuario que ya tiene un external_id, usa el endpoint /users/alias/new.
  • email tiene prioridad sobre phone. Si tanto email como phone se incluyen en el mismo objeto, Braze usa email como identificador. Esto significa que los atributos se aplican al perfil de usuario asociado con esa dirección de correo electrónico, incluso si el número de teléfono pertenece a un perfil diferente.

Actualizar solo perfiles existentes

Si deseas actualizar solo perfiles de usuario existentes en Braze, debes pasar la clave _update_existing_only con un valor de true dentro del cuerpo de tu solicitud. Si se omite este valor, Braze crea un nuevo perfil de usuario si el external_id aún no existe.

Importación de tokens de notificaciones push

Antes de importar tokens de notificaciones push a Braze, verifica si realmente lo necesitas. Cuando los SDK de Braze están implementados, gestionan los tokens de notificaciones push de forma automática sin necesidad de cargarlos a través de la API.

Si necesitas cargarlos a través de la API, pueden cargarse para usuarios identificados o usuarios anónimos. Esto significa que se necesita un external_id presente, o los usuarios anónimos deben tener la marca push_token_import establecida en true.

Al especificar push_token_import como true:

  • external_id y braze_id no deben especificarse
  • El objeto de atributo debe contener un token de notificaciones push
  • Si el token ya existe en Braze, la solicitud se ignora; de lo contrario, Braze crea un perfil de usuario temporal y anónimo para cada token que te permita seguir enviando mensajes a estos individuos

Después de la importación, a medida que cada usuario inicie la versión de tu aplicación habilitada con Braze, Braze mueve automáticamente su token de notificaciones push importado a su perfil de usuario de Braze y limpia el perfil temporal.

Braze comprueba una vez al mes si hay algún perfil anónimo con la marca push_token_import que no tenga un token de notificaciones push. Si el perfil anónimo ya no tiene un token de notificaciones push, Braze elimina el perfil. Sin embargo, si el perfil anónimo todavía tiene un token de notificaciones push, lo que sugiere que el usuario real aún no ha iniciado sesión en el dispositivo con dicho token de notificaciones push, Braze no realiza ninguna acción.

Para más información, consulta Migración de tokens de notificaciones push.

Tipos de datos de atributos personalizados

Los siguientes tipos de datos pueden almacenarse como un atributo personalizado:

Tipo de datos Notas
Matrices Las matrices de atributos personalizados son compatibles. Cuando agregas un elemento, se añade al final de la matriz. Si el elemento ya existe, se mueve de su posición actual al final.

Solo se almacenan valores únicos. Por ejemplo, importar ['hotdog','hotdog','hotdog','pizza'] da como resultado ['hotdog', 'pizza'].

Puedes establecer una matriz directamente (por ejemplo, "my_array_custom_attribute":[ "Value1", "Value2" ]), agregar a una matriz existente con "my_array_custom_attribute" : { "add" : ["Value3"] }, o eliminar valores con "my_array_custom_attribute" : { "remove" : [ "Value1" ]}.

La cantidad predeterminada y máxima de elementos en una matriz es 500. Puedes actualizar la cantidad máxima de matrices en el panel de Braze, en Configuración de datos > Atributos personalizados. Para más información, consulta Matrices.
Matriz de objetos Usa una matriz de objetos para definir una lista de objetos donde cada objeto contiene un conjunto de atributos. Usa este tipo para almacenar múltiples conjuntos de datos relacionados para un usuario, como estadías en hoteles, historial de compras o preferencias.

Por ejemplo, define un atributo personalizado llamado hotel_stays en un perfil de usuario como una matriz donde cada objeto representa una estadía independiente, con atributos como hotel_name, check_in_date y nights_stayed.

Las matrices de objetos no tienen límite en la cantidad de elementos, pero sí tienen un tamaño máximo de 100 KB. Si una actualización hace que la matriz supere este límite, Braze descarta la actualización y el atributo no se modifica.

Para las cargas útiles de /users/track y SDK, usa $add, $remove y $update para las operaciones de matrices de objetos. Usa add y remove (sin $) para los atributos personalizados de matriz regulares que contienen valores escalares. Para más detalles, consulta Ejemplo de API de matriz de objetos, Ejemplo de SDK de matriz de objetos y Ejemplo de matriz de objetos.
Booleanos true o false
Fechas Almacena las fechas en formato ISO 8601 (recomendado) o en cualquiera de estos formatos:
- yyyy-MM-ddTHH:mm:ss:SSSZ
- yyyy-MM-ddTHH:mm:ss
- yyyy-MM-dd HH:mm:ss
- yyyy-MM-dd
- MM/dd/yyyy
- ddd MM dd HH:mm:ss.TZD YYYY

Ten en cuenta que “T” es un designador de tiempo, no un marcador de posición, y no debe cambiarse ni eliminarse.

Los valores de fecha que no coincidan con ninguno de los formatos enumerados se almacenan como cadenas en el perfil de usuario en lugar de como el tipo de datos Time. Esto significa que los filtros de segmentación basados en tiempo (como “antes de”, “después de” o “en los últimos X días”) no funcionan para esos atributos. Por ejemplo, Mar 26 2026 06:12 PM +00:00 se almacena como cadena porque no coincide con un formato compatible. Para evitarlo, usa el formato ISO 8601 (como 2026-03-26T18:12:00Z).

Los atributos de tiempo sin zona horaria se predeterminan a la medianoche UTC (y se muestran en el panel como el equivalente de la medianoche UTC en la zona horaria de la empresa). Para especificar una zona horaria, agrega un desplazamiento UTC a la marca de tiempo (por ejemplo, 2024-11-10T18:00:00-05:00 para EST). Si el desplazamiento de zona horaria falta o tiene un formato incorrecto, el valor se predetermina a UTC.

Las horas se muestran en el panel en la zona horaria de tu empresa. Por ejemplo, 2024-11-10T18:00:00-05:00 (6:00 PM EST) aparecería como la hora equivalente en la zona horaria configurada de tu empresa.

Los eventos con marcas de tiempo en el futuro se predeterminan a la hora actual.

Para los atributos personalizados regulares, si el año es menor que 0 o mayor que 3000, Braze almacena el valor como cadena en el perfil de usuario.
Flotantes Los atributos personalizados flotantes son números positivos o negativos con punto decimal. Por ejemplo, puedes usar flotantes para almacenar saldos de cuenta o calificaciones de usuario para productos o servicios.
Enteros Puedes incrementar atributos personalizados enteros asignando un objeto con el campo “inc” y la cantidad a sumar.

Ejemplo: "my_custom_attribute_2" : {"inc" : int_value},
Atributos personalizados anidados Los atributos personalizados anidados definen un conjunto de atributos como propiedad de otro atributo. Cuando defines un objeto de atributo personalizado, agregas un conjunto de atributos a ese objeto. Para más información, consulta Atributos personalizados anidados.
Cadenas Los atributos personalizados de cadena son secuencias de caracteres que se usan para almacenar datos de texto. Por ejemplo, puedes usar cadenas para almacenar nombres y apellidos, direcciones de correo electrónico o preferencias.
Ejemplo de matriz de objetos

Esta matriz de objetos te permite crear Segments basados en criterios específicos dentro de las estadías y personalizar tus mensajes usando los datos de cada estadía con plantillas de Liquid.

{"hotel_stays": [
  { "hotel_name": "Ocean View Resort", "check_in_date": "2023-06-15", "nights_stayed": 5 },
  { "hotel_name": "Mountain Lodge", "check_in_date": "2023-09-10", "nights_stayed": 3 }
]}

Para ejemplos de matrices de objetos que usan $add, $remove y $update, consulta Ejemplo de API de matriz de objetos y Ejemplo de SDK de matriz de objetos.

Campos del perfil de usuario de Braze

Campo del perfil de usuario Especificación del tipo de datos
alias_name (cadena)
alias_label (cadena)
braze_id (cadena, opcional) Cuando un perfil de usuario es reconocido por el SDK, se crea un perfil de usuario anónimo con un braze_id asociado. El braze_id es asignado automáticamente por Braze, no puede editarse y es específico del dispositivo.
country (cadena) Requerimos que los códigos de país se pasen a Braze en el estándar ISO-3166-1 alpha-2. Nuestra API hace su mejor esfuerzo para asignar los países recibidos en diferentes formatos. Por ejemplo, “Australia” puede asignarse a “AU”. Sin embargo, si la entrada no coincide con un estándar ISO-3166-1 alpha-2 determinado, el valor del país se establece como NULL.

Establecer country en un usuario mediante importación CSV o API evita que Braze capture automáticamente esta información a través del SDK.
current_location (objeto) Con el formato {“longitude”: -73.991443, “latitude”: 40.753824}
date_of_first_session (fecha en que el usuario usó la aplicación por primera vez) Cadena en formato ISO 8601 o en cualquiera de los siguientes formatos:
- yyyy-MM-ddTHH:mm:ss:SSSZ
- yyyy-MM-ddTHH:mm:ss
- yyyy-MM-dd HH:mm:ss
- yyyy-MM-dd
- MM/dd/yyyy
- ddd MM dd HH:mm:ss.TZD YYYY
date_of_last_session (fecha en que el usuario usó la aplicación por última vez) Cadena en formato ISO 8601 o en cualquiera de los siguientes formatos:
- yyyy-MM-ddTHH:mm:ss:SSSZ
- yyyy-MM-ddTHH:mm:ss
- yyyy-MM-dd HH:mm:ss
- yyyy-MM-dd
- MM/dd/yyyy
- ddd MM dd HH:mm:ss.TZD YYYY
dob (fecha de nacimiento) Cadena en formato “YYYY-MM-DD”, por ejemplo, 1980-12-21.
email (cadena)
email_subscribe (cadena) Los valores disponibles son “opted_in” (registrado explícitamente para recibir mensajes de correo electrónico), “unsubscribed” (canceló la suscripción explícitamente a mensajes de correo electrónico) y “subscribed” (ni optó ni canceló la suscripción).
email_open_tracking_disabled (booleano) Se acepta true o false. Establécelo en true para desactivar el píxel de seguimiento de apertura en todos los correos electrónicos futuros enviados a este usuario.
email_click_tracking_disabled (booleano) Se acepta true o false. Establécelo en true para desactivar el seguimiento de clics en todos los enlaces de un correo electrónico futuro enviado a este usuario.
external_id (cadena) Un identificador único para un perfil de usuario. Después de asignar un external_id, Braze identifica el perfil de usuario en todos los dispositivos del usuario. En la primera instancia de asignar un external_id a un perfil de usuario desconocido, Braze migra todos los datos existentes del perfil de usuario al nuevo perfil de usuario.
facebook Hash que contiene cualquiera de id (cadena), likes (matriz de cadenas), num_friends (entero).
first_name (cadena)
gender (cadena) “M”, “F”, “O” (otro), “N” (no aplica), “P” (prefiere no decir) o null (desconocido).
home_city (cadena)
language (cadena) Requerimos que el idioma se pase a Braze en el estándar ISO-639-1. Para los idiomas compatibles, consulta nuestra lista de idiomas aceptados.

Establecer language en un usuario mediante importación CSV o API evita que Braze capture automáticamente esta información a través del SDK.
last_name (cadena)
marked_email_as_spam_at (cadena) Fecha en la que el correo electrónico del usuario fue marcado como correo no deseado. Aparece en formato ISO 8601 o en cualquiera de los siguientes formatos:
- yyyy-MM-ddTHH:mm:ss:SSSZ
- yyyy-MM-ddTHH:mm:ss
- yyyy-MM-dd HH:mm:ss
- yyyy-MM-dd
- MM/dd/yyyy
- ddd MM dd HH:mm:ss.TZD YYYY
phone (cadena) Recomendamos proporcionar los números de teléfono en el formato E.164. Para más detalles, consulta Números de teléfono del usuario.
push_subscribe (cadena) Los valores disponibles son “opted_in” (registrado explícitamente para recibir mensajes push), “unsubscribed” (canceló la suscripción explícitamente a mensajes push) y “subscribed” (ni optó ni canceló la suscripción).
push_tokens Matriz de objetos con app_id y cadena token. Opcionalmente puedes proporcionar un device_id para el dispositivo al que está asociado este token, por ejemplo, [{"app_id": App Identifier, "token": "abcd", "device_id": "optional_field_value"}]. Si no se proporciona un device_id, se genera uno aleatoriamente.
subscription_groups Matriz de objetos con subscription_group_id y cadena subscription_state, por ejemplo, [{"subscription_group_id" : "subscription_group_identifier", "subscription_state" : "subscribed"}]. Los valores disponibles para subscription_state son “subscribed” y “unsubscribed”.
time_zone (cadena) Nombre de zona horaria de la base de datos de zonas horarias de IANA (por ejemplo, “America/New_York” o “Eastern Time (US & Canada)”). Solo se establecen valores de zona horaria válidos.
twitter Hash que contiene cualquiera de id (entero), screen_name (cadena, nombre de usuario de X (anteriormente Twitter)), followers_count (entero), friends_count (entero), statuses_count (entero).

Los valores de idioma que se establecen explícitamente a través de esta API tienen prioridad sobre la información de configuración regional que Braze recibe automáticamente del dispositivo.

Ejemplo de solicitud de atributos de usuario

Este ejemplo contiene cuatro objetos de atributos de usuario, de un total de 75 objetos de atributos permitidos por llamada a la API.

POST https://YOUR_REST_API_URL/users/track
Content-Type: application/json
Authorization: Bearer YOUR-REST-API-KEY
{
  "attributes" : [
    {
      "external_id" : "user1",
      "first_name" : "Alex",
      "has_profile_picture" : true,
      "dob": "1988-02-14",
      "music_videos_favorited" : { "add" : [ "calvinharris-summer" ], "remove" : ["nickiminaj-anaconda"] }
    },
    {
      "external_id" : "user2",
      "first_name" : "Lee",
      "has_profile_picture" : false,
      "push_tokens": [{"app_id": "Your App Identifier", "token": "abcd", "device_id": "optional_field_value"}]

    },
    {
      "user_alias" : { "alias_name" : "device123", "alias_label" : "my_device_identifier"},
      "first_name" : "Yuri",
      "has_profile_picture" : false
    },
    {
      "external_id": "user3",
      "subscription_groups" : [{"subscription_group_id" : "subscription_group_identifier", "subscription_state" : "subscribed"}]
    }
  ]
}

Migrar tokens de notificaciones push

Si enviabas notificaciones push antes de integrar Braze, ya sea por tu cuenta o a través de otro proveedor, la migración de tokens de notificaciones push te permite seguir enviando notificaciones push a tus usuarios con tokens de notificaciones push registrados.

Migración automática a través del SDK

Después de integrar el SDK de Braze, los tokens de notificaciones push de los usuarios que han dado su consentimiento se migran automáticamente la próxima vez que abran tu aplicación. Hasta entonces, no puedes enviar notificaciones push a esos usuarios a través de Braze.

Como alternativa, puedes migrar tus tokens de notificaciones push manualmente, lo que te permite volver a captar a tus usuarios de forma más rápida.

Consideraciones sobre tokens web

Debido a la naturaleza de los tokens de notificaciones push web, ten en cuenta lo siguiente al implementar push para web:

Consideración Detalles
Prestadores de servicios De forma predeterminada, el SDK Web busca un prestador de servicios en ./service-worker a menos que se especifique otra opción, como manageServiceWorkerExternally o serviceWorkerLocation. Si tu prestador de servicios no está configurado correctamente, puede provocar que los tokens de notificaciones push de tus usuarios caduquen.
Tokens caducados Si un usuario no ha iniciado una sesión web en 60 días, su token de notificaciones push caduca. Dado que Braze no puede migrar tokens de notificaciones push caducados, debes enviar un mensaje preparatorio de push para volver a captarlos.

Migración manual a través de la API

La migración manual de tokens de notificaciones push es el proceso de importar estas claves previamente creadas a tu plataforma Braze a través de la API.

Migra de forma programática tokens de iOS (APNs) y Android (FCM) a tu plataforma utilizando el endpoint users/track. Puedes migrar tanto usuarios identificados (usuarios con un ID externo asociado) como usuarios anónimos (usuarios sin un ID externo).

Especifica el app_id de tu aplicación durante la migración de tokens de notificaciones push para asociar el token de notificaciones push adecuado con la aplicación correspondiente. Cada aplicación (iOS, Android, etc.) tiene su propio app_id, que se puede encontrar en la sección Identification de la página Claves de API. Asegúrate de usar el app_id de la plataforma correcta.

Para usuarios identificados, establece la marca push_token_import en false (u omite el parámetro) y especifica los valores external_id, app_id y token en el objeto attributes del usuario.

Por ejemplo:

curl --location --request POST 'https://rest.iad-01.braze.com/users/track' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-API-KEY-HERE' \
--data-raw '{
  "attributes" : [
    {
      "push_token_import" : false,
      "external_id": "example_external_id",
      "country": "US",
      "language": "en",
      "YOUR_CUSTOM_ATTRIBUTE": "YOUR_VALUE",
      "push_tokens": [
        {"app_id": "APP_ID_OF_OS", "token": "PUSH_TOKEN_STRING"}
      ]
    }
  ]
}'

Al importar tokens de notificaciones push de otros sistemas, no siempre se dispone de un external_id. En esta circunstancia, establece la marca push_token_import en true y especifica los valores app_id y token. Braze crea un perfil de usuario temporal y anónimo para cada token, lo que te permite seguir enviando mensajes a estas personas. Si el token ya existe en Braze, la solicitud se ignora.

Por ejemplo:

curl --location --request POST 'https://rest.iad-01.braze.com/users/track' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-API-KEY-HERE' \
--data-raw '{
  "attributes": [
    {
      "push_token_import" : true,
      "email": "[email protected]",
      "country": "US",
      "language": "en",
      "YOUR_CUSTOM_ATTRIBUTE": "YOUR_VALUE",
      "push_tokens": [
        {"app_id": "APP_ID_OF_OS", "token": "PUSH_TOKEN_STRING", "device_id": "DEVICE_ID"}
      ]
    },

    {
      "push_token_import" : true,
      "email": "[email protected]",
      "country": "US",
      "language": "en",
      "YOUR_CUSTOM_ATTRIBUTE_1": "YOUR_VALUE",
      "YOUR_CUSTOM_ATTRIBUTE_2": "YOUR_VALUE",
      "push_tokens": [
        {"app_id": "APP_ID_OF_OS", "token": "PUSH_TOKEN_STRING", "device_id": "DEVICE_ID"}
      ]
    }
  ]
}'

Tras la importación, cuando el usuario anónimo lance la versión de tu aplicación con Braze habilitado, Braze mueve automáticamente su token de notificaciones push importado a su perfil de usuario de Braze y limpia el perfil temporal.

Braze comprueba una vez al mes si hay algún perfil anónimo con la marca push_token_import que no tenga un token de notificaciones push. Si el perfil anónimo ya no tiene un token de notificaciones push, Braze elimina el perfil. Sin embargo, si el perfil anónimo aún tiene un token de notificaciones push, lo que sugiere que el usuario real aún no ha iniciado sesión en el dispositivo con dicho token, Braze no hace nada.

Importar tokens de notificaciones push de iOS

Al migrar tokens de notificaciones push de iOS con /users/track, el campo gateway no se establece en el token de notificaciones push. Braze asume que los tokens importados a través de la API son tokens push de primer plano válidos, pero no puede determinar a qué entorno de APNs pertenece el token.

Sin el campo gateway, Braze utiliza la configuración de entorno alternativo configurada en tu aplicación al enviar notificaciones push. Esto puede provocar errores BadDeviceToken si el entorno real del token difiere del entorno alternativo configurado. Por ejemplo, un token de desarrollo enviado a través de la pasarela de producción fallará.

Para evitar problemas de entrega:

  • Asegúrate de que la configuración de entorno de tu aplicación en el panel de Braze coincida con los tokens que estás importando.
  • Para aplicaciones en producción, importa solo tokens de producción.
  • Para entornos de prueba, verifica que tanto la configuración de tu aplicación como los tokens importados utilicen el entorno de desarrollo.

Importar tokens de notificaciones push de Android

Si necesitas enviar notificaciones push de Android a tus usuarios antes de que la integración del SDK de Braze esté completa, utiliza pares clave-valor para validar las notificaciones push.

Debes tener un receptor para gestionar y mostrar las cargas útiles de push. Para notificar al receptor de la carga útil de push, añade los pares clave-valor necesarios a la Campaign de push. Los valores de estos pares dependen del partner de push específico que hayas utilizado antes de Braze.

Preguntas frecuentes

¿Cómo encuentro usuarios tratados como correo no deseado o bloqueados para la mensajería?

Braze no proporciona una lista de correo no deseado específica en el panel. Braze bloquea perfiles de usuario individuales (“usuarios ficticios”) con más de cinco millones de sesiones, más de 20 000 nombres de eventos personalizados distintos o más de 20 000 nombres de productos distintos en compras, y deja de ingerir todos los datos entrantes para ese perfil tanto de los SDK como de la REST API. Si un identificador está bloqueado, /users/track puede devolver el error "provided external_id is blacklisted and disallowed". Esta redacción se toma textualmente de la respuesta de la API. Para encontrar perfiles bloqueados por sesiones excesivas, crea un Segment con el filtro Session Count configurado en more than 5,000,000, exporta el Segment como CSV y comprueba los campos del perfil en Engagement > Search users o con el endpoint /users/export/ids. No existe un filtro equivalente para nombres de eventos personalizados o nombres de productos distintos, así que contacta a tu director de cuentas de Braze para identificar perfiles bloqueados por esas razones. Para obtener más información, consulta Bloqueo de correo no deseado.

New Stuff!