Klaviyo custom properties : enrichir ses profils pour une segmentation avancée
Klaviyo stocke par défaut des informations basiques sur chaque contact : email, prénom, nom, numéro de téléphone, ville. C'est suffisant pour envoyer un email. À notre avis, cela ne suffit pas pour personnaliser.
Les custom properties (propriétés personnalisées) sont ce qui permet de passer d'une liste plate à une base de données client exploitable. Programme de fidélité, préférences produit, type de peau, date d'anniversaire, statut d'abonnement : tout ce qui caractérise un client et ne rentre pas dans les champs natifs peut y trouver sa place.
Ce guide explique comment les utiliser concrètement, de la collecte à la segmentation.
TL;DR
- L'aide Klaviyo mentionne notamment les types texte, liste, booléen et date
- Klaviyo demande de garder le total des données envoyées dans chaque mise à jour de profil sous 100 Ko, et indique qu'il n'y a pas de limite au nombre de custom properties par profil
- On les peuple via 4 canaux : API REST,
klaviyo.js(côté front), intégrations natives Shopify, et formulaires Klaviyo - En segmentation, les opérateurs varient selon le type : par exemple, selon Klaviyo,
containss'applique aux types texte et liste - Les custom properties sont utilisables dans les segments, les filtres de flows et le contenu dynamique des emails (documentation)
- La distinction clé avec les event properties : les custom properties persistent sur le profil, les event properties sont attachées à un moment précis
- Bien structurées, elles permettent de multiplier la pertinence des flows sans multiplier le nombre de listes
Introduction
Un profil Klaviyo sans custom properties ressemble à une fiche client avec seulement un nom et une adresse. Vous savez que la personne existe. Vous ne savez pas pourquoi elle achète, ce qu'elle préfère, ni à quel stade de sa relation avec votre marque elle se trouve.
Les custom properties changent cette équation. Elles permettent d'écrire sur le profil tout ce que votre site sait d'un visiteur ou d'un acheteur : ses préférences déclarées (via un quiz ou un formulaire), ses comportements accumulés (nombre de commandes, catégories achetées, montant total dépensé), ou ses caractéristiques métier (taille de vêtement, type de peau, fréquence d'achat attendue).
Une fois ces données sur le profil, Klaviyo indique pouvoir les utiliser dans les segments, dans les filtres de flows et dans les emails via le filtre lookup.
Les types de custom properties
Klaviyo supporte plusieurs types de données. À notre avis, le système détecte le type selon la valeur envoyée, mais il est important de rester cohérent sur la façon de formater ses données pour éviter les conflits.
| Type | Description | Exemple de valeur |
|---|---|---|
| String | Texte libre, valeur catégorielle | "Gold", "femme", "Paris" |
| Number | Entier ou décimal | 3, 149.90, 0.75 |
| Boolean | Vrai ou faux | true, false |
| Datetime | Date et heure au format ISO 8601 | "2025-03-15T00:00:00+00:00" |
| List (array) | Tableau de valeurs | ["sneakers", "running", "trail"] |
Ce tableau est une présentation à notre avis ; l'aide de Klaviyo mentionne les types texte, liste, booléen et date. Pour un import CSV, la référence des propriétés de profil demande de formater une liste comme un tableau (["valeur 1", "valeur 2"]) et une date en YYYY-MM-DD ou MM/DD/YYYY (heure HH:MM:SS facultative).
Limite indiquée par Klaviyo : gardez le total des données envoyées dans chaque mise à jour de profil, custom properties comprises, sous 100 Ko. L'aide précise qu'il n'y a pas de limite au nombre de custom properties par profil.
Note importante sur les arrays et les objets : selon Klaviyo, contains s'applique aux types texte et liste : pour du texte, il correspond à une partie de la valeur ; pour une liste, à un élément complet. À notre avis, l'utilisation des objets imbriqués en segmentation est limitée et peut ne pas fonctionner dans tous les contextes. Préférez des propriétés à plat quand la segmentation est l'objectif principal.
Comment peupler ses custom properties : 4 méthodes
1. L'API REST Klaviyo (côté serveur)
À notre avis, c'est la méthode la plus complète et la plus fiable. L'API Profiles de Klaviyo permet de créer ou mettre à jour un profil avec un objet properties contenant n'importe quelle clé-valeur.
POST https://a.klaviyo.com/api/profiles
{
"data": {
"type": "profile",
"attributes": {
"email": "client@example.com",
"properties": {
"programme_fidelite": "Gold",
"nombre_commandes": 7,
"categorie_preferee": "sneakers",
"date_anniversaire": "1990-06-15T00:00:00+00:00",
"accepte_sms": true
}
}
}
}
À notre avis, cette approche convient bien aux synchronisations batch (mise à jour quotidienne depuis votre CRM ou ERP), les intégrations post-commande, et les données calculées côté back-end (LTV, nombre de commandes, score d'engagement).
Pour mettre à jour un profil existant, l'endpoint est PATCH /api/profiles/{id}. À notre avis, seules les clés présentes dans la requête sont modifiées ; ce comportement, et l'effacement d'une propriété, sont à vérifier dans la référence de l'API Profiles (non relue ici).
2. Klaviyo.js côté front (identify)
Pour les données collectées directement dans le navigateur, la méthode klaviyo.identify() permet d'associer des custom properties à une personne (guide de l'API JavaScript) ; l'appel doit inclure un email ou, pour les contacts SMS uniquement, un numéro de téléphone.
klaviyo.identify({
'email': 'client@example.com',
'type_peau': 'mixte',
'taille_vetement': 'M',
'quiz_complete': true,
'derniere_categorie_visitee': 'soin-visage'
});
Cette méthode est particulièrement utile après un quiz produit, une page de préférences, ou un configurateur. L'avantage : pas de serveur intermédiaire.
Attention : klaviyo.js s'exécute côté client. À notre avis, n'y incluez pas de données sensibles ou calculées que l'utilisateur ne devrait pas pouvoir manipuler (niveau de fidélité, LTV, statut VIP).
3. Intégration Shopify native
L'intégration Shopify de Klaviyo synchronise automatiquement certaines propriétés sur les profils (l'aide cite par exemple la propriété booléenne Accepts Marketing). La liste complète figure dans la documentation de l'intégration, que nous n'avons pas relue pour cet article.
Klaviyo précise qu'une custom property est distincte du statut d'abonnement email ou SMS d'un profil : lui donner la valeur true n'abonne personne au marketing. Pour des propriétés qui ne font pas partie des champs natifs Shopify (pointure, type de morphologie, préférence de livraison), vous pouvez, à notre avis, passer par l'API, Klaviyo.js, un formulaire Klaviyo ou un import CSV.
4. Formulaires Klaviyo
Les formulaires natifs Klaviyo (popups, embeds, fly-outs) permettent de collecter des custom properties directement depuis le front, sans développement.
Dans le constructeur de formulaire, chaque champ peut être associé à une custom property de profil. Exemple : un champ "Type de peau" avec les options sèche, grasse, mixte, normale écrira la valeur choisie directement sur la propriété type_peau du profil.
À notre avis, c'est la méthode la plus accessible pour les équipes sans ressources techniques. Idéale pour les préférences déclarées, les centres d'intérêt, et les données de segmentation de base collectées à l'inscription.
Custom properties vs event properties : quand utiliser quoi
C'est l'une des confusions les plus fréquentes chez les équipes qui débutent sur Klaviyo.
Les custom properties sont des attributs du profil. Elles décrivent qui est le contact : son statut, ses préférences, ses caractéristiques. Elles persistent dans le temps ; selon Klaviyo, une nouvelle valeur remplace la précédente pour la même propriété.
Les event properties sont des attributs d'un événement. Elles décrivent ce qui s'est passé à un moment précis : qu'est-ce qui a été acheté, quel produit a été consulté, quel email a été ouvert. Elles sont attachées à l'événement et ne changent pas rétroactivement.
Tableau de synthèse, à notre avis (seul le remplacement de la valeur précédente est documenté par Klaviyo) :
| Critère | Custom properties (profil) | Event properties (événement) |
|---|---|---|
| Portée | Persistent sur le profil | Attachées à un événement précis |
| Mise à jour | Écrasées à chaque write | Immuables une fois enregistrées |
| Usage en segmentation | Directs sur le profil | Via "has done event where..." |
| Usage en flows | Flow filters, conditional splits | Trigger conditions, dynamic content |
| Exemples | programme_fidelite, taille_vetement |
item_name, order_value, category |
Règle pratique, à notre avis : si la donnée décrit l'état actuel du client, c'est une custom property. Si elle décrit quelque chose qui s'est passé (et dont on veut garder l'historique), c'est une event property.
À notre avis, pour la segmentation basée sur le comportement (a acheté dans la catégorie X, a visité la page Y), les event properties sont plus pertinentes car elles conservent l'historique complet. Pour la personnalisation statique (taille de vêtement, préférence de genre, statut d'abonné), les custom properties sont plus simples à exploiter.
Segmentation et flows : exploiter ses données
Dans les segments
Klaviyo expose les custom properties dans le constructeur de segments sous la condition "Properties about someone", dès qu'elles sont présentes sur au moins un profil. Les opérateurs proposés dépendent du type de la propriété : consultez le constructeur de segments, car les pages d'aide relues ne les détaillent pas (hors contains, décrit pour les types texte et liste).
Exemple indicatif (libellés des opérateurs à vérifier dans le constructeur) : pour cibler tous les membres Gold de votre programme de fidélité inscrits depuis plus de 90 jours, combinez une condition sur programme_fidelite égale à Gold et une condition sur date_adhesion antérieure à 90 jours.
Dans les flow filters
Selon Klaviyo, les filtres de profil d'un flow servent à cibler selon l'information stockée sur la personne. À notre avis, les custom properties y sont disponibles avec des opérateurs proches de ceux de la segmentation. Cela permet de restreindre un flow à un sous-ensemble de contacts sans créer un segment dédié.
Exemple courant : un flow de réactivation qui s'exclut automatiquement si statut_abonnement equals actif. Inutile de relancer un client qui est déjà abonné à votre service.
Dans les conditional splits
À notre avis, les conditional splits permettent de brancher le flow selon la valeur d'une custom property au moment où le contact atteint ce point (les pages d'aide relues ne le détaillent pas), et c'est l'outil le plus puissant pour la personnalisation dans les flows.
Exemple : dans un post-purchase flow, un conditional split sur programme_fidelite envoie un email différent aux membres Gold (cross-sell premium) et aux membres Silver (invitation à monter de niveau). Pour approfondir la logique des flows, consultez notre article sur Klaviyo Flows vs Campaigns.
Cas d'usage concrets en e-commerce
| Secteur | Custom property | Usage en segmentation/flow |
|---|---|---|
| Mode | taille_vetement, style_prefere |
Recommandations personnalisées, sélection de nouveautés ciblée |
| Beauté / soin | type_peau, routine_preferee |
Flow quiz post-inscription, emails éducatifs segmentés |
| Sport | sport_pratique, niveau |
Sélection de produits adaptés, contenu expert vs débutant |
| Alimentaire | regime_alimentaire, allergies |
Exclusion produits incompatibles, recettes personnalisées |
| B2B / grossistes | statut_revendeur, remise_negociee |
Tarification personnalisée, catalogue restreint |
| Abonnement / SaaS | plan_actif, date_prochaine_facturation |
Relance avant renouvellement, upsell au bon moment |
| Fidélité | points_cumules, niveau_fidelite |
Paliers de récompense, emails de statut mensuels |
| Multi-marché | langue_preferee, devise |
Flow multilingue, offres géolocalisées |
Pour aller plus loin sur la logique de segmentation comportementale, notre article sur la segmentation Klaviyo détaille comment combiner custom properties et event conditions.
Pièges à éviter
Incohérence de nommage. Si vous envoyez tantôt programme_fidelite, tantôt ProgrammeFidelite, tantôt programme fidelite (avec espace), Klaviyo crée trois propriétés distinctes. Le résultat : des segments incomplets et des données dispersées. Klaviyo indique que les noms de propriétés sont sensibles à la casse. Définissez une convention de nommage dès le départ (snake_case, à notre avis) et documentez-la.
Écraser des données utiles. À notre avis, quand vous mettez à jour un profil via l'API, seules les propriétés incluses dans la requête sont modifiées (à vérifier dans la référence de l'API Profiles). Mais si vous reconstruisez l'objet propriétés côté serveur sans inclure toutes les valeurs existantes, vous risquez d'écraser des données que vous n'aviez pas l'intention de toucher. Privilégiez les mises à jour partielles (patch) plutôt que des remplacements complets.
Stocker des données volatiles en custom property. Le panier actuel d'un client, le produit vu il y a 5 minutes, ou le coupon en cours d'application : à notre avis, ces données changent trop vite pour être des custom properties. Utilisez les event properties pour capturer ce type d'informations à un instant T.
Dates mal formatées. Pour un import CSV, Klaviyo accepte les dates en YYYY-MM-DD ou MM/DD/YYYY. À notre avis, une date dans un autre format, comme 15/06/2025, risque d'être stockée comme du texte et de ne pas fonctionner avec les opérateurs de date ; pour l'API, testez le format ISO 8601 (2025-06-15T00:00:00+00:00). Pour un import CSV également, Klaviyo indique de laisser de côté les colonnes de consentement si vous ne voulez pas modifier le statut d'abonnement : les importer, ou choisir Apply bulk consent, peut le changer.
Accumuler des propriétés inutilisées. À notre avis, chaque custom property créée peut rendre la segmentation confuse pour les équipes. Klaviyo recommande de supprimer les propriétés devenues inutiles. Faites un audit régulier : une propriété qui n'est utilisée dans aucun segment ni aucun flow peut être retirée (import CSV avec une colonne $unset, ou purge via le support Klaviyo).
Segmenter sur des objets imbriqués complexes. À notre avis, les opérateurs de segmentation Klaviyo ne peuvent pas toujours naviguer finement dans des structures JSON imbriquées. Si vous avez besoin de segmenter sur une valeur précise, remontez-la à plat en tant que propriété distincte.
Pour aller plus loin
Les custom properties sont la fondation d'une stratégie email véritablement personnalisée. Elles ne servent à rien si elles restent dans les profils sans être exploitées dans des segments actifs ou des flows bien construits.
Quelques ressources complémentaires pour aller au bout de la démarche :
- Segmentation avancée : notre article sur la segmentation Klaviyo et les conditions avancées montre comment combiner propriétés de profil et comportements
- Utiliser les données dans les flows : voir Klaviyo Flows vs Campaigns pour comprendre où les custom properties s'intègrent le mieux
- Post-purchase flow : l'article sur le post-purchase flow Klaviyo illustre comment les custom properties enrichissent les séquences post-achat
Faire le point sur les propriétés déjà exploitées et celles qui manquent encore, c'est l'objet d'un audit Klaviyo de 30 minutes, gratuit et sans engagement, avec un expert.
Si vous souhaitez mettre en place une stratégie de données client structurée sur Klaviyo, de la collecte à l'exploitation en segmentation, notre agence Klaviyo peut vous accompagner sur l'audit, l'architecture des données et l'implémentation.
Provenance et vérification
Contrôle du 2026-11-03, HTML brut converti en texte et lu en entier. Article sur les custom properties de profil (mis à jour le 2025-11-18) : absence de limite au nombre de propriétés par profil, ajout manuel et par CSV, collecte par formulaire et page de préférences, remplacement de la valeur précédente lors d'un nouvel envoi, exemple booléen (propriété distincte du statut d'abonnement), disponibilité dans le constructeur de segments dès qu'elle est présente sur un profil, filtre lookup. Référence des propriétés de profil (mise à jour le 2026-03-30) : propriétés custom et propriétés Klaviyo, limite de segmentation en cas de même nom, 100 Ko par mise à jour de profil, formats de date et de tableau pour le CSV, noms sensibles à la casse, suppression par $unset, contains sur texte et liste, filtres de flows et déclencheurs de propriété date. Guide de l'API JavaScript : méthode identify. Les documentations de l'API Profiles et de l'intégration Shopify n'ont pas été relues : leurs détails ont été retirés ou marqués.
- Sources contrôlées le
- Relu par
- Claude (relecture IA, articles d'aide Klaviyo rouverts et lus le 2026-11-03)
- Assistance IA
- Oui
- Sources
Besoin d'appliquer ça à votre stack ?
30 minutes avec Charlotte. On audit votre setup CRM en direct, on chiffre l'opportunité, vous repartez avec un plan d'attaque.
Réserver 30 minutes →