Fusionar usuarios
/users/merge
Utiliza este punto de conexión para fusionar un usuario con otro usuario.
Se pueden especificar hasta 50 fusiones por solicitud. Este punto de conexión es asíncrono.
Requisitos previos
Para utilizar este punto de conexión, necesitarás una clave de API con el permiso users.merge.
Límite de velocidad
Aplicamos un límite de velocidad compartido de 20 000 solicitudes por minuto a este punto de conexión. Este límite de velocidad se comparte con los puntos finales /users/delete, /users/alias/new, /users/identify y /users/alias/update, como se documenta en Límites de velocidad de la API.
Cuerpo de la solicitud
1
2
Content-Type: application/json
Authorization: Bearer YOUR_REST_API_KEY
1
2
3
{
"merge_updates" : (required, array of objects)
}
Parámetros de la solicitud
| Parámetro | Obligatorio | Tipo de datos | Descripción |
|---|---|---|---|
merge_updates |
Obligatorio | Matriz | Una matriz de objetos. Cada objeto debe contener un objeto identifier_to_merge y un objeto identifier_to_keep, cada uno de los cuales debe hacer referencia a un usuario mediante external_id, user_alias, phone o email. |
Comportamiento de la fusión
El comportamiento que se documenta a continuación es válido para todas las características de Braze que no funcionan con Snowflake. Las fusiones de usuarios no se reflejarán en la pestaña Historial de mensajería, Extensiones de segmento, Generador de consultas ni Currents.

El punto de conexión no garantiza la secuencia de actualización de los objetos de merge_updates.
Este punto de conexión fusiona los siguientes campos si no se encuentran en el usuario de destino.
- Nombre
- Apellido
- Direcciones de correo electrónico (a menos que estén encriptadas
- Género
- Fecha de nacimiento
- Número de teléfono
- Zona horaria
- Ciudad de origen
- País
- Idioma
- Información del dispositivo
- Recuento de sesiones (la suma de las sesiones de ambos perfiles)
- Fecha de la primera sesión (Braze elige la fecha más temprana de las dos)
- Fecha de la última sesión (Braze elige la fecha más reciente de las dos)
- Atributos personalizados (Braze conserva los atributos personalizados existentes en el perfil de destino e incluye los atributos personalizados que no existían en el perfil de destino)
- Datos de eventos personalizados y eventos de compra
- Propiedades de eventos personalizados y de eventos de compra para la segmentación «X veces en Y días» (donde X<=50 e Y<=30)
- Resumen segmentable de eventos personalizados
- Recuento de eventos (la suma de ambos perfiles)
- Primera vez que ocurrió el evento (Braze elige la fecha más temprana de las dos)
- Última vez que ocurrió el evento (Braze elige la fecha más reciente de las dos)
- Total de compras dentro de la aplicación en céntimos (la suma de ambos perfiles)
- Número total de compras (la suma de ambos perfiles)
- Fecha de la primera compra (Braze elige la fecha más temprana de las dos)
- Fecha de la última compra (Braze elige la fecha más reciente de las dos)
- Resúmenes de la aplicación
- Campos Last_X_at (Braze actualiza los campos si los campos del perfil huérfano son más recientes)
- Datos de interacción de Campaign (Braze selecciona los campos de fecha más recientes)
- Resúmenes del flujo de trabajo (Braze selecciona los campos de fecha más recientes)
- Historial de mensajes e interacción con mensajes
- Braze fusiona los datos de sesión solo si la aplicación existe en ambos perfiles de usuario.

Al fusionar usuarios, el uso del punto de conexión /users/merge funciona del mismo modo que el método changeUser().
Comportamiento de la fecha de eventos personalizados y la fecha de eventos de compra
Estos campos fusionados actualizan los filtros «para X eventos en Y días». Para los eventos de compra, estos filtros incluyen «número de compras en Y días» y «dinero gastado en los últimos Y días».
Fusionar usuarios por correo electrónico o número de teléfono
Si se especifica email o phone como identificador, debes incluir un valor adicional de prioritization en el identificador. prioritization debe ser una matriz ordenada que especifique qué usuario fusionar si se encuentran varios usuarios. Esto significa que, si más de un usuario coincide a partir de una priorización, la fusión no se produce.
Los valores permitidos para la matriz son:
identifiedunidentifiedmost_recently_updated(se refiere a dar prioridad al usuario actualizado más recientemente)least_recently_updated(se refiere a dar prioridad al usuario actualizado menos recientemente)
En la matriz de priorización solo puede existir una de las siguientes opciones a la vez:
identifiedse refiere a dar prioridad a un usuario con unexternal_idunidentifiedse refiere a dar prioridad a un usuario sin unexternal_id

Si ambos perfiles tienen números de teléfono no válidos, Braze no los fusiona. Los números no válidos no se almacenan en formato E.164 y el proceso de fusión no combina esos perfiles. El punto de conexión sigue devolviendo 202 Accepted con un mensaje de éxito, por lo que la respuesta HTTP no indica que la fusión se omitió. Corrige los números de teléfono en uno o ambos perfiles antes de fusionar.
Ejemplos de solicitudes
Solicitud básica
Este es un cuerpo de solicitud básico para mostrar el patrón de la solicitud.
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
curl --location --request POST 'https://rest.iad-01.braze.com/users/merge' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_REST_API_KEY' \
--data-raw '{
{
"merge_updates": [
{
"identifier_to_merge": {
"external_id": "old-user1"
},
"identifier_to_keep": {
"external_id": "current-user1"
}
},
{
"identifier_to_merge": {
"email": "[email protected]",
"prioritization": ["unidentified", "most_recently_updated"]
},
"identifier_to_keep": {
"email": "[email protected]",
"prioritization": ["identified", "most_recently_updated"]
}
},
{
"identifier_to_merge": {
"user_alias": {
"alias_name": "[email protected]",
"alias_label": "email"
}
},
"identifier_to_keep": {
"user_alias": {
"alias_name": "[email protected]",
"alias_label": "email"
}
}
}
]
}'
Fusionar usuario no identificado
La siguiente solicitud fusionaría el usuario no identificado actualizado más recientemente con la dirección de correo electrónico [email protected] con el usuario con ID externo john. En este ejemplo, el uso de most_recently_updated filtra la consulta a un usuario no identificado. Por lo tanto, si hubiera dos usuarios no identificados con esta dirección de correo electrónico, solo uno se fusionaría con el usuario que tiene el ID externo john.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
curl --location --request POST 'https://rest.iad-01.braze.com/users/merge' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_REST_API_KEY' \
--data-raw '{
{
"merge_updates": [
{
"identifier_to_merge": {
"email": "[email protected]",
"prioritization": ["unidentified", "most_recently_updated"]
},
"identifier_to_keep": {
"external_id": "john"
}
}
]
}'
Fusionar usuario no identificado en usuario identificado
El siguiente ejemplo fusiona el usuario no identificado actualizado más recientemente con la dirección de correo electrónico [email protected] con el usuario identificado actualizado más recientemente con la dirección de correo electrónico [email protected].
El uso de most_recently_updated filtra las consultas a un usuario (un usuario no identificado para identifier_to_merge y un usuario identificado para identifier_to_keep).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
curl --location --request POST 'https://rest.iad-01.braze.com/users/merge' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_REST_API_KEY' \
--data-raw '{
{
"merge_updates": [
{
"identifier_to_merge": {
"email": "[email protected]",
"prioritization": ["unidentified", "most_recently_updated"]
},
"identifier_to_keep": {
"email": "[email protected]",
"prioritization": ["identified", "most_recently_updated"]
}
}
]
}'
Fusionar un usuario no identificado sin incluir la priorización most_recently_updated
Si hay dos usuarios no identificados con la dirección de correo electrónico [email protected], esta solicitud de ejemplo no fusiona ningún usuario porque hay dos usuarios no identificados con esa dirección de correo electrónico. Esta solicitud solo funciona si hay un único usuario no identificado con la dirección de correo electrónico [email protected].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
curl --location --request POST 'https://rest.iad-01.braze.com/users/merge' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_REST_API_KEY' \
--data-raw '{
{
"merge_updates": [
{
"identifier_to_merge": {
"email": "[email protected]",
"prioritization": ["unidentified"]
},
"identifier_to_keep": {
"external_id": "john"
}
}
]
}'
Respuesta
Hay dos respuestas de código de estado para este punto de conexión: 202 y 400.
Ejemplo de respuesta satisfactoria
El código de estado 202 podría devolver el siguiente cuerpo de respuesta.
1
2
3
{
"message": "success"
}
Ejemplo de respuesta de error
El código de estado 400 podría devolver el siguiente cuerpo de respuesta. Consulta la sección Solución de problemas para obtener más información sobre los errores que puedes encontrar.
1
2
3
{
"message": "'merge_updates' must be an array of objects"
}
Solución de problemas
En la tabla siguiente se enumeran los posibles mensajes de error que pueden aparecer.
| Error | Solución de problemas |
|---|---|
'merge_updates' must be an array of objects |
Comprueba que merge_updates es una matriz de objetos. |
a single request may not contain more than 50 merge updates |
Solo puedes especificar hasta 50 actualizaciones de fusión en una única solicitud. |
identifiers must be objects with an 'external_id' property that is a string, 'user_alias' property that is an object, 'email' property that is a string, or 'phone' property that is a string |
Comprueba los identificadores de tu solicitud. |
'merge_updates' must only have 'identifier_to_merge' and 'identifier_to_keep' |
Comprueba que merge_updates solo contiene los dos objetos identifier_to_merge e identifier_to_keep. |