Étiquettes des contacts
Range tes contacts avec tes propres mots — « client-vip », « intéressé-caftan », « salon-casablanca », « à-rappeler » — puis sers-t'en partout : un segment « a l'étiquette vip », un envoi ponctuel vers ce segment, une condition de parcours, une variante de contenu dynamique. Les étiquettes se posent à la main, en masse, depuis un formulaire de landing, ou toutes seules par des règles.
Concept
Une étiquette appartient à une adresse e-mail, pas à une inscription : une adresse inscrite à trois listes porte les mêmes étiquettes sur les trois (comme le score et les préférences). Supprimer une inscription ne retire pas les étiquettes de l'adresse tant qu'il lui reste une autre ligne. Une adresse qui n'a plus aucune ligne d'abonné n'apparaît dans aucune liste ni aucun compteur, et ses étiquettes sont effacées par le moteur dans les dix minutes (une donnée personnelle ne traîne pas). D'ici là, tu peux encore les lire et les retirer.
Une étiquette a :
- un nom — 1 à 40 caractères, sans virgule ni caractère invisible (espace sans chasse, marque de direction…), unique sans tenir compte des majuscules (« VIP » et « vip » sont la même) ; les accents sont normalisés (un « é » s'écrit d'une seule façon) ;
- une couleur parmi les 8 du socle : gris, rouge, orange, jaune, vert, bleu, violet, rose ;
- une description facultative (200 caractères) ;
- l'option « Depuis un formulaire » — éteinte par défaut — qui autorise un formulaire de landing à la poser.
500 étiquettes au plus dans le catalogue, 50 au plus par adresse. Renommer une étiquette garde son identité : les segments, les règles et les contacts suivent.
Où les régler
- E-mail → Étiquettes : le catalogue (pastille, nom, nombre de contacts, « utilisée par », formulaire oui/non), créer, modifier, supprimer ; en dessous, les règles automatiques.
- Liste des abonnés : les pastilles de chaque contact (5 + « +n »), un filtre par étiquette, et dans les actions sur la sélection « Poser une étiquette » / « Retirer une étiquette ».
- Chronologie d'un abonné : ses étiquettes, « Ajouter », retirer (×), et chaque pose ou retrait dans le fil (« Étiquette vip posée par la règle n° 3 »).
- Constructeur de segments : le champ « Étiquette ».
Poser et retirer
| Comment | Source notée | Plafond de 50 atteint |
|---|---|---|
| À la main (chronologie) | manuel |
refusé (« trop d'étiquettes ») |
| Sur une sélection d'abonnés (5 000 lignes au plus ; celles d'une liste supprimée sont ignorées et comptées) ou un segment entier (100 000 adresses au plus) | masse |
compté dans « refusées », rien n'est écrit |
Formulaire de landing (champ caché tags) |
formulaire |
ignoré en silence |
| Règle automatique | regle |
ignoré (le serveur le note au journal) |
Agent MCP (tag_email_contacts) |
mcp |
compté dans « refusées » |
Une action de masse se fait par adresse distincte, par lots de 1 000 adresses : chaque lot est écrit d'un coup, et entre deux lots les poses à la main, les formulaires et les règles passent — une masse de 100 000 contacts ne fige jamais le reste. La réponse dit tout : combien de contacts, combien de poses, combien l'avaient déjà, combien ont été refusées, combien de lignes ont été ignorées. Si une panne arrête la masse au milieu, la réponse le dit (interrompue) avec ce qui a été fait : relance-la pour finir (ce qui est déjà posé est compté « déjà »). Chaque pose et chaque retrait laisse une trace dans la chronologie (un seul événement par adresse pour une action de masse).
Si les étiquettes sont occupées plus de 5 secondes (une grosse masse en cours), une pose à la main répond « occupé, réessaie » (503 occupe_reessaie) au lieu d'attendre.
Dans les segments, les parcours et le contenu dynamique
Le champ Étiquette fait partie de la langue des conditions :
op |
Valeur | Vrai quand |
|---|---|---|
a |
une liste d'étiquettes | l'adresse porte au moins une des étiquettes |
n_a_pas |
une liste d'étiquettes | l'adresse ne porte aucune des étiquettes |
{ "champ": "etiquette", "op": "a", "valeur": [3, 7] }
La même condition marche telle quelle dans un segment (donc un envoi ponctuel), la condition d'une étape ou l'objectif de sortie d'une séquence, et une variante de contenu dynamique. Une étiquette qui n'existe pas est refusée à l'enregistrement.
Depuis un formulaire de landing
Un formulaire ne crée jamais d'étiquette et n'en retire jamais. Il pose seulement celles qui existent déjà et dont l'option « Depuis un formulaire » est allumée ; tout autre nom est ignoré, sans aucune erreur visible du visiteur. Les étiquettes se posent seulement si l'inscription de ce formulaire est active : tout de suite pour une liste en simple opt-in, à la confirmation pour une liste en double opt-in (les noms attendent sur l'inscription). Jamais sur une adresse désinscrite, en rebond, en plainte ou en suppression. Les poses des formulaires passent l'une après l'autre, en fond : la réponse au visiteur ne les attend pas.
À savoir. En simple opt-in, quelqu'un qui connaît une adresse peut l'inscrire par le formulaire et lui faire poser une étiquette autorisée. N'allume « Depuis un formulaire » que pour des étiquettes sans conséquence sensible (« salon-casablanca », « intéressé-caftan ») — jamais pour « client-vip » ou une étiquette qui ouvre un avantage.
Ajoute un champ caché au formulaire qui poste vers /api/lead :
<form method="POST" action="/api/lead">
<input type="hidden" name="landing_id" value="12">
<input type="hidden" name="tags" value="salon-casablanca, intéressé-caftan">
<input type="email" name="email" required>
<button type="submit">Je m'inscris</button>
</form>
En JSON, tags peut aussi être un tableau : { "email": "…", "landing_id": 12, "tags": ["salon-casablanca"] }. 10 noms au plus sont gardés (le texte est lu sur ses 2 000 premiers caractères, un tableau sur ses 40 premiers éléments) ; la casse ne compte pas, dans toutes les langues. La réponse de /api/lead ne change pas : un nom inconnu ou non autorisé ne se voit pas.
Les règles automatiques
Une règle dit : quand un contact fait quelque chose, poser ou retirer une étiquette. 20 règles au plus.
| Déclencheur | Cible | Exemple de phrase |
|---|---|---|
| Inscription | une liste, ou toutes | Quand un contact s'inscrit à la liste Clients → poser vip |
| Clic | un envoi ponctuel, une étape de séquence, ou tout e-mail | Quand un contact clique dans l'envoi Promo caftan → poser intéressé-caftan |
| Ouverture | mêmes cibles que le clic | Quand un contact ouvre l'étape 2 de la séquence Bienvenue → poser lecteur |
| Achat | une boutique native, ou toutes | Quand un contact achète → retirer à-rappeler |
| Visite (v150) | un type de page (landing, produit, catalogue, panier, paiement, étape de funnel, autre) — et facultativement sa landing, son produit, son étape —, ou toute page | Quand un contact visite le produit Caftan bleu → poser intéressé-caftan |
- Une règle ne s'applique qu'aux faits à venir. Rien n'est rattrapé sur le passé ; rallumer une règle éteinte ou changer sa définition repart de maintenant.
- Les règles jouent dans le passage du moteur, sur les faits de plus d'une minute (le temps que tout soit bien enregistré) : compte une à deux minutes entre le clic et l'étiquette, jamais à l'instant.
- Pour un même fait, retirer passe après poser.
- Une inscription compte à chaque passage d'une ligne à « inscrite » : création en simple opt-in, confirmation d'un double opt-in, réinscription depuis la page de préférences, réactivation d'une ligne en attente — une fois par passage (la chronologie le montre par un événement « inscription »). L'annulation d'un nettoyage de liste, qui rend un statut d'avant, n'en est pas une. Une ouverture préchargée par un robot de messagerie (
open_prefetch) ne compte pas ; un achat compte quand la commande est payée (ni annulée ni remboursée au moment où le moteur la lit). - Pour choisir une cible au-delà des 200 premières (listes, envois, étapes, boutiques), cherche-la par son nom.
- Deux règles identiques sont refusées ; une règle éteinte ne fait rien.
- Une visite ne déclenche que si l'appareil est déjà rattaché par un lien prouvé (vrai clic dans un e-mail, commande payée, confirmation — pas un formulaire seul) à une adresse quand le moteur la lit (une minute après) : les pages vues d'un visiteur encore anonyme ne déclenchent rien, même s'il s'identifie plus tard (elles restent dans sa chronologie et dans les segments). Seules les pages des domaines où le suivi des visites est actif existent.
Supprimer une étiquette
La suppression est définitive (le catalogue n'a pas de corbeille) et efface l'étiquette de tous les contacts. Elle est refusée tant que quelque chose s'en sert, et le refus nomme chacun : « segment VIP », « règle n° 3 », « séquence Bienvenue, étape 2 », « séquence Bienvenue, objectifs », « envoi Promo, bloc accueil », « formulaire Newsletter » (un formulaire d'inscription qui la pose). Retire-la de chacun, puis supprime.
API
Sous /admin/api, lecture landings:read, écriture landings:write :
GET /email/etiquettes·POST /email/etiquettes{ nom, couleur?, description?, depuis_formulaire? }·PUT /email/etiquettes/:id·DELETE /email/etiquettes/:idGET /email/etiquettes/regles(→{ regles, choix, max, note }) ·GET /email/etiquettes/regles/cibles?type=liste|envoi|etape|boutique&q=…(→{ type, q, cibles: [{ id, libelle }] }, 50 au plus) ·POST /email/etiquettes/regles{ declencheur, cible_type?, cible_id?, action, etiquette_id, actif? }·PUT /email/etiquettes/regles/:id·DELETE /email/etiquettes/regles/:idPOST /email/etiquettes/masse{ action: "poser" | "retirer", etiquette_ids, subscriber_ids | segment_id }→{ adresses, posees, deja, refusees_plafond, retirees, absentes, interrompue, ignorees?, message }GET /email/etiquettes/contact/:email·PUT /email/etiquettes/contact/:email{ poser: [ids], retirer: [ids] }(retirer marche aussi sur une adresse sans ligne d'abonné ; poser, non)GET /email/lists/:id/subscribers?etiquette_id=3— chaque ligne porteetiquettes(5 au plus) etetiquettes_plus.
Refus nommés : etiquette_en_double, catalogue_plein, etiquette_utilisee, trop_d_etiquettes, trop_de_contacts, regle_en_double, trop_de_regles, contact_introuvable, occupe_reessaie (503 : réessaie dans un instant), migration_absente (base sans la migration v149).
Outils MCP : list_email_tags, create_email_tag, update_email_tag, delete_email_tag, tag_email_contacts, update_email_contact_tags, get_email_contact_tags, list_email_tag_rules, create_email_tag_rule, update_email_tag_rule, search_email_tag_rule_targets, delete_email_tag_rule — voir la référence MCP. Ce qui ne se défait pas se confirme : supprimer une étiquette, retirer des étiquettes, ou agir sur un segment entier rend d'abord un aperçu (combien d'adresses, qui utilise l'étiquette) et un jeton de confirmation ; l'agent doit te le montrer avant de confirmer.
Voir aussi
- Segments — le champ « Étiquette » dans une audience
- Contenu dynamique — une variante pour les contacts « vip »
- Sequences — conditions d'étape et objectifs de sortie
- Score des contacts — l'autre façon de ranger les contacts, calculée