Attributs du profil utilisateur
Cette page sert de référence pour les vues des attributs par défaut et personnalisés dans Snowflake. Il existe trois vues pour les attributs par défaut et trois vues pour les attributs personnalisés, chacune conçue pour un cas d’usage spécifique et présentant ses propres considérations en matière de performances.
Parité des données avec le tableau de bord
Dans de rares cas, les valeurs des attributs par défaut et personnalisés dans les vues Snowflake de cette page peuvent ne pas correspondre à ce que vous voyez sur le profil d’un utilisateur dans le tableau de bord de Braze.
Par exemple, un attribut peut apparaître comme NULL dans Snowflake alors que le tableau de bord affiche une valeur pour cet utilisateur.
Si vous constatez des écarts généralisés, contactez votre gestionnaire de la satisfaction client ou l’assistance Braze.
Disponibilité de l’ID utilisateur externe

Ne partez pas du principe que EXTERNAL_USER_ID est présent dans chaque enregistrement de profil utilisateur. Sa disponibilité dépend de la configuration propre à chaque espace de travail et de la manière dont les profils utilisateurs sont mis à jour. Ce champ peut être NULL pour de nombreux profils, en particulier lorsque certains feature flags ne sont pas activés dans un espace de travail. Lorsque vous interrogez les données utilisateur, tenez compte du fait que EXTERNAL_USER_ID peut être nul en gérant correctement les valeurs nulles dans vos requêtes SQL (par exemple, en utilisant LEFT JOIN au lieu de INNER JOIN, ou en filtrant avec IS NOT NULL lorsque l’ID externe est requis).
Vues disponibles
| Type | Vue | Description |
|---|---|---|
| Attribut par défaut | USER_DEFAULT_ATTRIBUTES_VIEW_SHARED |
Instantanés des profils utilisateurs |
USER_LATEST_STATE_DEFAULT_ATTRIBUTES_VIEW_SHARED |
Profils utilisateurs en temps réel | |
USER_DEFAULT_ATTRIBUTES_HISTORY_VIEW_SHARED |
Logs de l’historique des modifications | |
| Attribut personnalisé | USER_CUSTOM_ATTRIBUTES_VIEW_SHARED |
Instantanés des profils utilisateurs |
USER_LATEST_STATE_CUSTOM_ATTRIBUTE_VIEW_SHARED |
Profils utilisateurs en temps réel | |
USER_CUSTOM_ATTRIBUTES_HISTORY_VIEW_SHARED |
Logs de l’historique des modifications |
Instantanés des profils utilisateurs
Ces vues fournissent des instantanés périodiques des attributs des profils utilisateurs. Les données peuvent avoir jusqu’à 12 heures de retard, ce qui les rend utiles pour les requêtes qui ne nécessitent pas de mises à jour en temps réel.
USER_DEFAULT_ATTRIBUTES_VIEW_SHAREDUSER_CUSTOM_ATTRIBUTES_VIEW_SHARED
Utilisation
- Fournit un instantané des attributs utilisateur avec un délai maximal de 12 heures.
- Offre de bonnes performances pour les requêtes qui ne nécessitent pas une précision en temps réel.
- Exécution plus rapide des requêtes, en particulier lors du filtrage sur des attributs autres que
USER_ID. - Limitation : Les données ne sont pas mises à jour en temps réel.

Understanding date fields:
TIMEandTIME_MS: Represent the time the user profile update occurred in Braze (in seconds and milliseconds, respectively). For backfilled data, these values are the time of the backfill.SF_UPDATED_AT: Represents the time the data was last persisted in Snowflake. This field is most useful for determining data freshness—the time the row was most recently synced to your data warehouse.
Schéma de USER_DEFAULT_ATTRIBUTES_VIEW_SHARED
| Nom de la colonne | Type de données | Description |
|---|---|---|
APP_GROUP_ID |
VARCHAR | L’identifiant de votre espace de travail Braze |
APP_ID |
VARCHAR | L’application spécifique au sein de votre espace de travail |
USER_ID |
VARCHAR | L’identifiant unique de l’utilisateur dans Braze |
TIME |
NUMBER | Horodatage Unix (en secondes) de la mise à jour du profil |
TIME_MS |
NUMBER | Horodatage Unix (en millisecondes) de la mise à jour du profil |
UPDATE_SOURCE |
VARCHAR | La source de la mise à jour de l’attribut (API, SDK, tableau de bord, etc.) |
SF_UPDATED_AT |
TIMESTAMP_NTZ | Date de la dernière mise à jour des données dans Snowflake |
EXTERNAL_USER_ID |
VARCHAR | Votre propre identifiant utilisateur (s’il est défini). Peut être NULL pour de nombreux profils selon la configuration de l’espace de travail. |
FIRST_NAME |
VARCHAR | Prénom de l’utilisateur |
LAST_NAME |
VARCHAR | Nom de famille de l’utilisateur |
EMAIL_ADDRESS |
VARCHAR | Adresse e-mail de l’utilisateur |
GENDER |
VARCHAR | Genre de l’utilisateur |
PHONE_NUMBER |
VARCHAR | Numéro de téléphone de l’utilisateur |
DOB |
VARCHAR | Date de naissance de l’utilisateur |
TIME_ZONE |
VARCHAR | Fuseau horaire de l’utilisateur |
HOME_CITY |
VARCHAR | Ville de résidence de l’utilisateur |
COUNTRY |
VARCHAR | Pays de l’utilisateur |
LANGUAGE |
VARCHAR | Langue préférée de l’utilisateur |
ARCHIVED |
BOOLEAN | Indique si le profil utilisateur est archivé |

The ARCHIVED field has been populated in Snowflake since May 1, 2026. Users archived before that date don’t have the flag set, so ARCHIVED is NULL for those profiles. No backfill is available for earlier archives. Segment Extensions and queries that filter on ARCHIVED don’t include those users in archived-status results.
Schéma de USER_CUSTOM_ATTRIBUTES_VIEW_SHARED
| Nom de la colonne | Type de données | Description |
|---|---|---|
APP_GROUP_ID |
VARCHAR | L’identifiant de votre espace de travail Braze |
APP_ID |
VARCHAR | L’application spécifique au sein de votre espace de travail |
USER_ID |
VARCHAR | L’identifiant unique de l’utilisateur dans Braze |
EXTERNAL_USER_ID |
VARCHAR | Votre propre identifiant utilisateur (s’il est défini). Peut être NULL pour de nombreux profils selon la configuration de l’espace de travail. |
TIME |
NUMBER | Horodatage Unix (en secondes) de la mise à jour du profil |
TIME_MS |
NUMBER | Horodatage Unix (en millisecondes) de la mise à jour du profil |
UPDATE_SOURCE |
VARCHAR | La source de la mise à jour de l’attribut (API, SDK, tableau de bord, etc.) |
SF_UPDATED_AT |
TIMESTAMP_NTZ | Date de la dernière mise à jour des données dans Snowflake |
CUSTOM_ATTRIBUTES |
VARIANT | Objet JSON contenant tous les attributs personnalisés (paires clé-valeur) |
ARCHIVED |
BOOLEAN | Indique si le profil utilisateur est archivé |

The ARCHIVED field has been populated in Snowflake since May 1, 2026. Users archived before that date don’t have the flag set, so ARCHIVED is NULL for those profiles. No backfill is available for earlier archives. Segment Extensions and queries that filter on ARCHIVED don’t include those users in archived-status results.
Utiliser CUSTOM_ATTRIBUTES
La colonne CUSTOM_ATTRIBUTES stocke tous vos attributs personnalisés sous forme d’objet JSON. Vous pouvez accéder à chaque attribut à l’aide des fonctions JSON de Snowflake.
Exemple : Interroger des attributs personnalisés spécifiques
-- Get users with a specific loyalty tier
SELECT
USER_ID,
EXTERNAL_USER_ID,
CUSTOM_ATTRIBUTES:loyalty_tier::STRING as loyalty_tier,
CUSTOM_ATTRIBUTES:points::NUMBER as points
FROM USER_CUSTOM_ATTRIBUTES_VIEW_SHARED
WHERE CUSTOM_ATTRIBUTES:loyalty_tier::STRING = 'gold';
-- Get users who made a purchase above a certain amount
SELECT
USER_ID,
CUSTOM_ATTRIBUTES:last_purchase_amount::NUMBER as last_purchase_amount
FROM USER_CUSTOM_ATTRIBUTES_VIEW_SHARED
WHERE CUSTOM_ATTRIBUTES:last_purchase_amount::NUMBER > 100;
Exemple : Analyser les données des attributs personnalisés
-- Count users by subscription status
SELECT
CUSTOM_ATTRIBUTES:subscription_status::STRING as subscription_status,
COUNT(*) as user_count
FROM USER_CUSTOM_ATTRIBUTES_VIEW_SHARED
GROUP BY CUSTOM_ATTRIBUTES:subscription_status::STRING;
-- Find average order value by customer segment
SELECT
CUSTOM_ATTRIBUTES:customer_segment::STRING as segment,
AVG(CUSTOM_ATTRIBUTES:lifetime_value::NUMBER) as avg_lifetime_value
FROM USER_CUSTOM_ATTRIBUTES_VIEW_SHARED
WHERE CUSTOM_ATTRIBUTES:customer_segment IS NOT NULL
GROUP BY CUSTOM_ATTRIBUTES:customer_segment::STRING;
Vues du profil utilisateur en temps réel
Ces vues fournissent des mises à jour quasi en temps réel des attributs du profil utilisateur. Les données arrivent avec un délai maximal de 10 minutes après une mise à jour dans Braze.
USER_LATEST_STATE_DEFAULT_ATTRIBUTES_VIEW_SHAREDUSER_LATEST_STATE_CUSTOM_ATTRIBUTE_VIEW_SHARED
Utilisation
- Fournit des attributs utilisateur à jour avec un délai minimal (environ 10 minutes).
- Utile pour l’analyse en temps réel et pour les scénarios qui nécessitent des données récentes.
- Considérations relatives aux performances :
- Les requêtes portant sur des utilisateurs individuels sont plus rapides (moins d’une minute avec un entrepôt de grande taille).
- Les requêtes sans filtre USER_ID nécessitent une agrégation sur l’ensemble des utilisateurs, ce qui allonge considérablement les temps d’exécution.
- Les requêtes portant sur un jeu de données volumineux (plus de 100 millions d’utilisateurs, par exemple) peuvent prendre plusieurs minutes.

Understanding date fields:
TIMEandTIME_MS: Represent the time the user profile update occurred in Braze (in seconds and milliseconds, respectively). For backfilled data, these values are the time of the backfill.SF_UPDATED_AT: Represents the time the data was last persisted in Snowflake. This field is most useful for determining data freshness—the time the row was most recently synced to your data warehouse.
Schéma USER_LATEST_STATE_DEFAULT_ATTRIBUTES_VIEW_SHARED
| Nom de la colonne | Type de données | Description |
|---|---|---|
APP_GROUP_ID |
VARCHAR | Identifiant de votre espace de travail Braze |
APP_ID |
VARCHAR | L’application spécifique au sein de votre espace de travail |
USER_ID |
VARCHAR | L’identifiant unique de l’utilisateur dans Braze |
TIME |
NUMBER | Horodatage Unix (en secondes) de la mise à jour du profil |
TIME_MS |
NUMBER | Horodatage Unix (en millisecondes) de la mise à jour du profil |
UPDATE_SOURCE |
VARCHAR | La source de la mise à jour de l’attribut (API, SDK, tableau de bord, etc.) |
ARCHIVED |
BOOLEAN | Indique si le profil utilisateur est archivé |
SF_UPDATED_AT |
TIMESTAMP_LTZ | Date de la dernière mise à jour des données dans Snowflake |
EXTERNAL_USER_ID |
VARCHAR | Votre propre identifiant utilisateur (s’il est défini). Peut être NULL pour de nombreux profils selon la configuration de l’espace de travail. |
FIRST_NAME |
VARCHAR | Prénom de l’utilisateur |
LAST_NAME |
VARCHAR | Nom de famille de l’utilisateur |
EMAIL_ADDRESS |
VARCHAR | Adresse e-mail de l’utilisateur |
GENDER |
VARCHAR | Genre de l’utilisateur |
PHONE_NUMBER |
VARCHAR | Numéro de téléphone de l’utilisateur |
DOB |
VARCHAR | Date de naissance de l’utilisateur |
HOME_CITY |
VARCHAR | Ville de résidence de l’utilisateur |
COUNTRY |
VARCHAR | Pays de l’utilisateur |
LANGUAGE |
VARCHAR | Langue préférée de l’utilisateur |
TIME_ZONE |
VARCHAR | Fuseau horaire de l’utilisateur |

The ARCHIVED field has been populated in Snowflake since May 1, 2026. Users archived before that date don’t have the flag set, so ARCHIVED is NULL for those profiles. No backfill is available for earlier archives. Segment Extensions and queries that filter on ARCHIVED don’t include those users in archived-status results.
Schéma USER_LATEST_STATE_CUSTOM_ATTRIBUTE_VIEW_SHARED
| Column name | Data type | Description |
|---|---|---|
APP_GROUP_ID |
VARCHAR | Your Braze workspace identifier |
USER_ID |
VARCHAR | The unique Braze user identifier |
EXTERNAL_USER_ID |
VARCHAR | Your own user identifier (if set) |
TIME |
NUMBER | Unix timestamp (seconds) of the profile update |
TIME_MS |
NUMBER | Unix timestamp (milliseconds) of the profile update |
UPDATE_SOURCE |
VARCHAR | The source of the attribute update (API, SDK, dashboard, etc.) |
ARCHIVED |
BOOLEAN | Whether the user profile is archived |
SF_UPDATED_AT |
TIMESTAMP_NTZ | When the data was last updated in Snowflake |
APP_ID |
VARCHAR | The specific app within your workspace |
CUSTOM_ATTRIBUTES |
OBJECT | JSON object containing all custom attributes (key-value pairs) |
Note:
This view uses OBJECT type for CUSTOM_ATTRIBUTES instead of VARIANT. Use the same JSON accessor syntax (:attribute_name::TYPE) to query individual attributes.
Journaux d’historique des modifications
Ces vues conservent l’historique des modifications des attributs utilisateur, avec une granularité de 12 heures.
USER_DEFAULT_ATTRIBUTES_HISTORY_VIEW_SHAREDUSER_CUSTOM_ATTRIBUTES_HISTORY_VIEW_SHARED
Utilisation
- Fournit un enregistrement des modifications historiques des attributs utilisateur sur une période glissante de 6 mois.
- Un instantané des données est réalisé toutes les 12 heures : plusieurs mises à jour intervenues dans cet intervalle sont donc regroupées en un seul enregistrement. Les modifications individuelles effectuées pendant cette période ne sont pas conservées séparément.
EFF_DTetEND_DTindiquent le début et la fin d’un état d’attribut pour un utilisateur.

Understanding date fields:
TIMEandTIME_MS: Represent the time the user profile update occurred in Braze (in seconds and milliseconds, respectively). For backfilled data, these values are the time of the backfill.SF_UPDATED_AT: Represents the time the data was last persisted in Snowflake. This field is most useful for determining data freshness—the time the row was most recently synced to your data warehouse.
Schéma de USER_DEFAULT_ATTRIBUTES_HISTORY_VIEW_SHARED
| Nom de la colonne | Type de données | Description |
|---|---|---|
APP_GROUP_ID |
VARCHAR | Identifiant de votre espace de travail Braze |
USER_ID |
VARCHAR | Identifiant unique de l’utilisateur dans Braze |
APP_ID |
VARCHAR | Application spécifique au sein de votre espace de travail |
TIME |
NUMBER | Horodatage Unix (en secondes) de la mise à jour du profil |
TIME_MS |
NUMBER | Horodatage Unix (en millisecondes) de la mise à jour du profil |
UPDATE_SOURCE |
VARCHAR | Source de la mise à jour de l’attribut (API, SDK, tableau de bord, etc.) |
SF_UPDATED_AT |
TIMESTAMP_NTZ | Date de la dernière mise à jour des données dans Snowflake |
EXTERNAL_USER_ID |
VARCHAR | Votre propre identifiant utilisateur (s’il est défini). Peut être NULL pour de nombreux profils selon la configuration de l’espace de travail. |
FIRST_NAME |
VARCHAR | Prénom de l’utilisateur |
LAST_NAME |
VARCHAR | Nom de famille de l’utilisateur |
EMAIL_ADDRESS |
VARCHAR | Adresse e-mail de l’utilisateur |
GENDER |
VARCHAR | Genre de l’utilisateur |
PHONE_NUMBER |
VARCHAR | Numéro de téléphone de l’utilisateur |
DOB |
VARCHAR | Date de naissance de l’utilisateur |
TIME_ZONE |
VARCHAR | Fuseau horaire de l’utilisateur |
HOME_CITY |
VARCHAR | Ville de résidence de l’utilisateur |
COUNTRY |
VARCHAR | Pays de l’utilisateur |
LANGUAGE |
VARCHAR | Langue préférée de l’utilisateur |
EFF_DT |
TIMESTAMP_NTZ | Date d’effet : début de cet état d’attribut |
END_DT |
TIMESTAMP_NTZ | Date de fin : fin de cet état d’attribut (NULL pour l’état actuel) |
Schéma de USER_CUSTOM_ATTRIBUTES_HISTORY_VIEW_SHARED
| Column name | Data type | Description |
|---|---|---|
APP_GROUP_ID |
VARCHAR | Your Braze workspace identifier |
USER_ID |
VARCHAR | The unique Braze user identifier |
APP_ID |
VARCHAR | The specific app within your workspace |
EXTERNAL_USER_ID |
VARCHAR | Your own user identifier (if set) |
TIME |
NUMBER | Unix timestamp (seconds) of the profile update |
TIME_MS |
NUMBER | Unix timestamp (milliseconds) of the profile update |
UPDATE_SOURCE |
VARCHAR | The source of the attribute update (API, SDK, dashboard, etc.) |
SF_UPDATED_AT |
TIMESTAMP_NTZ | When the data was last updated in Snowflake |
CUSTOM_ATTRIBUTES |
VARIANT | JSON object containing all custom attributes (key-value pairs) |
ARCHIVED |
BOOLEAN | Whether the user profile is archived |
EFF_DT |
TIMESTAMP_NTZ | Effective date: when this attribute state began |
END_DT |
TIMESTAMP_NTZ | End date: when this attribute state ended (NULL for current state) |
Cas d’usage courants
Créer des segments d’utilisateurs
-- Find active users in a specific city who haven't received an email recently
SELECT
d.EXTERNAL_USER_ID,
d.EMAIL_ADDRESS,
d.HOME_CITY,
c.CUSTOM_ATTRIBUTES:last_email_sent::TIMESTAMP as last_email_sent
FROM USER_DEFAULT_ATTRIBUTES_VIEW_SHARED d
JOIN USER_CUSTOM_ATTRIBUTES_VIEW_SHARED c
ON d.USER_ID = c.USER_ID
WHERE d.HOME_CITY = 'New York'
AND d.EMAIL_ADDRESS IS NOT NULL
AND (c.CUSTOM_ATTRIBUTES:last_email_sent::TIMESTAMP < DATEADD(day, -30, CURRENT_TIMESTAMP())
OR c.CUSTOM_ATTRIBUTES:last_email_sent IS NULL);
Analyser le comportement des utilisateurs au fil du temps
-- Track how a user's loyalty tier changed over the past 6 months
SELECT
USER_ID,
CUSTOM_ATTRIBUTES:loyalty_tier::STRING as loyalty_tier,
EFF_DT,
END_DT
FROM USER_CUSTOM_ATTRIBUTES_HISTORY_VIEW_SHARED
WHERE USER_ID = 'user_123'
AND EFF_DT >= DATEADD(month, -6, CURRENT_TIMESTAMP())
ORDER BY EFF_DT DESC;
Combiner attributs par défaut et attributs personnalisés
-- Get a complete user profile with both default and custom attributes
SELECT
d.EXTERNAL_USER_ID,
d.FIRST_NAME,
d.LAST_NAME,
d.EMAIL_ADDRESS,
d.COUNTRY,
c.CUSTOM_ATTRIBUTES:subscription_status::STRING as subscription_status,
c.CUSTOM_ATTRIBUTES:lifetime_value::NUMBER as lifetime_value,
c.CUSTOM_ATTRIBUTES:last_purchase_date::DATE as last_purchase_date
FROM USER_DEFAULT_ATTRIBUTES_VIEW_SHARED d
LEFT JOIN USER_CUSTOM_ATTRIBUTES_VIEW_SHARED c
ON d.USER_ID = c.USER_ID
WHERE d.EXTERNAL_USER_ID = 'customer_456';
Identifier les clients à forte valeur
-- Identify users with high lifetime value who are at risk of churning
SELECT
d.EXTERNAL_USER_ID,
d.EMAIL_ADDRESS,
c.CUSTOM_ATTRIBUTES:lifetime_value::NUMBER as lifetime_value,
c.CUSTOM_ATTRIBUTES:days_since_last_purchase::NUMBER as days_since_last_purchase
FROM USER_DEFAULT_ATTRIBUTES_VIEW_SHARED d
JOIN USER_CUSTOM_ATTRIBUTES_VIEW_SHARED c
ON d.USER_ID = c.USER_ID
WHERE c.CUSTOM_ATTRIBUTES:lifetime_value::NUMBER > 1000
AND c.CUSTOM_ATTRIBUTES:days_since_last_purchase::NUMBER > 90
ORDER BY c.CUSTOM_ATTRIBUTES:lifetime_value::NUMBER DESC;
Bonnes pratiques
Utilisation recommandée des requêtes
| Cas d’usage | Vues recommandées | Remarques |
|---|---|---|
| Requêtes générales qui ne nécessitent pas de mises à jour récentes | USER_DEFAULT_ATTRIBUTES_VIEW_SHARED et USER_CUSTOM_ATTRIBUTES_VIEW_SHARED |
Exécution rapide, avec des données datant de 12 heures au maximum. |
| Requêtes nécessitant les derniers attributs utilisateur | USER_LATEST_STATE_DEFAULT_ATTRIBUTES_VIEW_SHARED et USER_LATEST_STATE_CUSTOM_ATTRIBUTE_VIEW_SHARED |
Fournit des mises à jour quasi en temps réel, mais peut être plus lent pour les jeux de données volumineux. |
| Suivi historique des modifications d’attributs | USER_DEFAULT_ATTRIBUTES_HISTORY_VIEW_SHARED et USER_CUSTOM_ATTRIBUTES_HISTORY_VIEW_SHARED |
Stocke les modifications d’attributs avec une granularité de 12 heures. |
Considérations relatives aux performances
- Les requêtes sur
USER_DEFAULT_ATTRIBUTES_VIEW_SHAREDouUSER_CUSTOM_ATTRIBUTES_VIEW_SHAREDdevraient renvoyer des résultats en moins de 10 secondes pour les jeux de données volumineux (environ 1 milliard d’utilisateurs) sur un entrepôt de grande taille. - Les requêtes sur
USER_LATEST_STATE_DEFAULT_ATTRIBUTES_VIEW_SHAREDouUSER_LATEST_STATE_CUSTOM_ATTRIBUTE_VIEW_SHAREDpour un seul utilisateur renvoient des résultats en moins d’une minute, mais passent mal à l’échelle sans filtrage surUSER_ID. - Les requêtes portant sur plus de 100 millions d’utilisateurs dans
USER_LATEST_STATE_DEFAULT_ATTRIBUTES_VIEW_SHAREDouUSER_LATEST_STATE_CUSTOM_ATTRIBUTE_VIEW_SHAREDpeuvent prendre plusieurs minutes en raison de l’agrégation par utilisateur.