Propriétés de contact
Définissez des champs personnalisés pour les contacts — comme le type de compte, la région ou le niveau de contrat — et transmettez-les via le widget. Les propriétés sont affichées sur le profil du contact, modifiables par les agents et filtrables dans la boîte de réception.
Vue d’ensemble#
Les propriétés de contact vous permettent d’attacher des données structurées aux conversations, au-delà des champs intégrés (email, name, userId). Contrairement aux metadata libres, les propriétés possèdent un schéma défini avec des types, des libellés et une validation — semblable aux champs personnalisés de HubSpot ou Salesforce.
Définir le schéma
Créez des définitions de propriétés dans les Paramètres de l’agent avec des types comme string, number, enum, boolean, date, url
Transmettre depuis le widget
Envoyez les valeurs des propriétés via Respondo.identify() — elles sont stockées et affichées automatiquement
Filtrer & modifier
Filtrez les conversations par valeurs de propriétés dans la boîte de réception. Les agents peuvent consulter et modifier les attributs d’un contact sur son profil.
Définir des propriétés#
Les propriétés sont définies par agent dans Paramètres de l’agent → Propriétés de contact. Chaque propriété possède :
| Champ | Description |
|---|---|
| key | Identifiant unique utilisé dans le code. Généré automatiquement à partir du libellé (modifiable). Lettres minuscules, chiffres et tirets bas ; doit commencer par une lettre ; 2 à 63 caractères. Les clés système (user_id, visitor_id, timezone, page_url, …) sont réservées. Exemple : account_type |
| label | Nom lisible affiché dans le tableau de bord. Exemple : "Account Type" |
| type | Type de valeur : string, number, boolean, enum, date, url |
| enum_values | Pour le type enum — liste des valeurs autorisées. Exemple : ["starter", "pro", "enterprise"] |
| is_filterable | Réservé pour un futur contrôle de filtrage ; stocké avec la définition, mais le sélecteur de filtres de la boîte de réception liste actuellement toutes les propriétés définies (par défaut : true) |
| is_visible | Réservé pour un futur contrôle d’affichage ; stocké avec la définition mais pas encore appliqué dans l’interface (par défaut : true) |
Transmettre depuis le widget#
Transmettez les valeurs des propriétés dans le champ properties de Respondo.identify(). Les clés doivent correspondre aux définitions de propriétés des Paramètres de l’agent.
Respondo.identify({
email: 'user@example.com',
name: 'Jane Smith',
userId: 'usr_456',
properties: {
account_type: 'enterprise', // enum
region: 'eu-west', // chaîne
monthly_spend: '15000', // nombre (transmis sous forme de chaîne)
is_partner: 'true', // booléen (transmis sous forme de chaîne)
contract_end: '2026-12-31', // date
dashboard_url: 'https://app.example.com/org/123' // url
}
});Extrait d’intégration#
L’extrait d’intégration apparaît automatiquement dans Paramètres de l’agent → Propriétés de contact dès que vous avez défini au moins une propriété, avec toutes vos clés de propriétés préremplies. Cliquez sur Copier pour le récupérer et le coller dans votre application. L’extrait généré inclut aussi un espace réservé userHash pour la vérification d’identité (HMAC-SHA256).
Comment les valeurs sont stockées#
Les valeurs des propriétés sont stockées dans le champ JSONB metadata de la conversation avec un préfixe cp_. Par exemple, une propriété avec la clé account_type est stockée sous cp_account_type.
Les propriétés sont mises à jour à chaque message — si le widget envoie de nouvelles valeurs, elles écrasent les existantes. Cela signifie que les valeurs des propriétés reflètent toujours les données les plus récentes de votre application.
Filtrer dans la boîte de réception#
Filtrez les conversations par valeurs de propriétés via la barre de filtres de la boîte de réception ou une vue enregistrée. Ajoutez une condition Propriété, choisissez la propriété par son nom — le sélecteur liste toutes les définitions de vos agents et accepte aussi une clé brute sans définition — puis choisissez une valeur. Le champ de valeur suggère les valeurs observées et les valeurs enum au fil de la saisie.
Via l’API, les endpoints de liste des conversations acceptent un paramètre de requête cp.<key>=<value> (alias exact de attr.<key>). Il n’existe pas de syntaxe de requête en texte libre :
GET /api/v1/conversations?cp.account_type=enterpriseModification des valeurs#
Les valeurs des propriétés sont définies par votre application — via l’intégration du widget ou l’API — et sont en lecture seule dans le panneau de détails de la conversation. Le panneau renvoie vers le profil du contact, où les agents peuvent consulter et modifier les attributs du contact (Contacts → contact → Attributs).
Propriétés vs Metadata
| Fonctionnalité | properties | metadata |
|---|---|---|
| Schéma | Défini dans les Paramètres de l’agent avec des types | Paires clé-valeur libres |
| Filtrable | Oui, via la barre de filtres / les vues enregistrées (API : paramètre cp.<key>) | Non |
| Modifiable par les agents | Non — les valeurs proviennent de votre application ; les attributs du contact se modifient sur le profil du contact | Non |
| Affichage typé | Oui (badges, liens, dates, booléens) | Texte brut uniquement |
| Autocomplétion | Oui, suggestions de valeurs dans le champ de valeur du filtre | Non |
metadata pour des champs ponctuels qui n’ont pas besoin de filtrage ou d’affichage typé. Utilisez properties pour des données structurées que votre équipe utilisera activement pour la segmentation et les workflows.