[deliver]
Article Deliver · 2026-05-29 · Charlotte Rodrigues

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


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 :

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
  1. help.klaviyo.com/hc/en-us/articles/115000250912
  2. help.klaviyo.com/hc/en-us/articles/115005074627
  3. developers.klaviyo.com/en/docs/javascript_api
CR
Charlotte Rodrigues · CRM Lead, Deliver. Une question sur cet article ? charlotte@agence-deliver.com

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 →