Séquences
Une séquence, c'est une suite d'étapes rattachée à une liste. Chaque étape = un modèle et un délai compté depuis l'inscription de l'abonné, jamais depuis l'étape précédente. La séquence par défaut d'une liste démarre toute seule pour chaque nouvel inscrit. Une séquence de cible Commande annulée démarre toute seule quand un client annule, et ses délais comptent depuis l'annulation.
Concept
Une séquence appartient à une liste, et n'en change pas : ses étapes sont liées aux modèles du compte de cette liste. Une liste peut porter plusieurs séquences, mais une seule est sa séquence par défaut — celle dans laquelle entre chaque nouvel inscrit.
Chaque étape porte :
- un délai depuis l'inscription (jours, heures, minutes) — J+0, J+2, J+5 se lisent tels quels, sans cumul ;
- un modèle, obligatoire ;
- ses paramètres : la valeur de chaque variable du modèle ;
- un interrupteur Étape active, et un nom interne (« Relance J+2 »).
| # | Délai | Exemple de contenu |
|---|---|---|
| 1 | 0 j 0 h 5 min | « Votre commande est enregistrée » |
| 2 | 2 j | « Votre colis est en route » |
| 3 | 10 j | Une offre complémentaire, pour ceux qui ont accepté le marketing |
L'ordre des étapes à l'écran sert à les lire. C'est le délai qui décide du moment où chacune part.
Créer une séquence
WhatsApp Marketing → Séquences → Nouvelle séquence : la liste, un nom, une description, et la cible. Puis Étapes → Ajouter une étape.
| Cible | Qui elle vise | Comment on y entre |
|---|---|---|
| Commande active — parcours normal (par défaut) | Les abonnés dont la commande tient, et les prospects sans commande | Par la séquence par défaut de la liste, à l'inscription. Ses étapes sont sautées pour un client dont la commande est annulée. |
| Commande annulée — relance après annulation | Les clients qui viennent d'annuler leur commande | Toute seule, à l'annulation (voir plus bas). Jamais par défaut. |
La cible se choisit à la création et ne change plus : pour une autre cible, créez une autre séquence. À l'écran, une relance porte la pastille Commandes annulées.
Une séquence n'envoie rien tant qu'elle n'a pas d'étape. Une séquence « Commande active » n'accueille les nouveaux inscrits que lorsque la liste la désigne comme séquence par défaut (Listes → Modifier → Séquence par défaut).
Relancer un client qui a annulé
Une séquence Commande annulée relance autrement un client qui vient d'annuler — avec un code promo, par exemple. Elle vit dans la liste où le client est inscrit par sa commande (en général la liste post-achat de la campagne).
- Quand elle démarre. Dans la minute qui suit l'annulation (le moteur passe toutes les 30 secondes), chaque abonné de la liste dont la commande vient d'être annulée y entre. « Annulée » veut dire : la commande a été annulée dans Trackily — à la main, par une action de masse, par l'agent IA, ou par le refus WhatsApp d'une COD si l'option Annuler la commande si l'acheteur refuse est cochée. Un remboursement seul n'est pas une annulation.
- Depuis quand comptent les délais. Depuis l'annulation : une étape à 0 part tout de suite, une étape à 2 jours part deux jours après l'annulation. L'écran d'une étape le dit (« Délai depuis l'annulation de la commande »).
- Qui n'y entre pas. Les annulations antérieures à la création de la séquence (elle n'arrose pas le passé), celles de plus de 7 jours, un abonné désinscrit, une liste ou une séquence en pause. Un client n'y entre qu'une fois : s'il annule une seconde commande, il n'est pas relancé une seconde fois — même si vous ajoutez une étape ensuite : ses délais comptent depuis l'annulation qui l'a fait entrer. Il n'y entre pas non plus tant qu'une autre de ses commandes tient dans la liste : l'annulation d'un doublon (formulaire envoyé deux fois, ou commande repassée faute de confirmation) ne relance pas un client dont la vraie commande part en livraison. Si celle-ci est annulée à son tour dans la semaine, il entre.
- Qui ne la reçoit pas. Juste avant chaque envoi, Trackily relit la commande : si elle n'est plus annulée, l'étape est sautée (
commande_active) ; si une autre commande du client tient dans cette liste, aussi (commande_remplacee) — pas de « revenez, -10 % » à quelqu'un qui vient de racheter, y compris par un funnel à upsells dont le message attend la fin du funnel (à une exception près, ci-dessous), ni à celui dont seul un doublon a été annulé. - Ce qui compte comme « une autre commande qui tient ». Une commande principale, non annulée, payée ou COD, de la même liste (sa campagne y inscrit ses acheteurs), et du même client : soit elle l'a inscrit dans la liste dans les 30 jours autour de l'annulation (« 06… » et « +33 6… » sont le même abonné, donc le même client), soit c'est un achat en cours dans un funnel à upsells dont le message attend la fin du funnel, au même numéro (comparé sur ses 8 derniers chiffres). Le tableau des abonnés l'affiche alors « Active ». À la fin du funnel, l'achat payé est vu parce que son message l'inscrit dans la liste ; un funnel terminé sans paiement ne protège plus. L'exception : entre la fin du funnel et cette inscription, l'achat n'est vu par rien. Trackily termine d'abord le reste de la fermeture (stock des upsells non payés, conversions envoyées aux régies), ce qui prend quelques secondes : une étape de relance due à ce moment précis part vers quelqu'un qui vient de racheter, et si l'envoi de fin de funnel échoue, cet achat n'est jamais vu. Une commande passée par une campagne d'une autre liste, ou sous un autre numéro, n'est pas vue. Pour les commandes passées avant la mise à jour qui a introduit cette règle, Trackily ne connaît que celle que l'abonné portait à ce moment-là : une commande plus ancienne encore n'est pas vue (au plus 30 jours après la mise à jour). Cette vérification ne ralentit ni le tableau, ni le filtre, ni l'export : elle ne relit que les commandes de l'abonné (avant le correctif du 2026-09-27, elle relisait toutes les commandes de la campagne, et le filtre Commande annulée d'une grosse liste pouvait prendre une demi-minute).
Le code promo
Créez le code à l'avance (un code fixe, le même pour tous), puis mettez-le dans les paramètres de l'étape : { "body.1": "{{first_name}}", "body.2": "RETOUR10" }. Des codes uniques par client ne sont pas gérés.
Un message avec un code promo est un modèle MARKETING, et deux règles s'appliquent :
- La liste ne doit pas viser le groupe Commandes. Une liste rattachée au groupe de SIM Commandes (ou à une SIM rangée dedans) refuse une étape MARKETING (
vocation_contraire) : une promotion partirait du numéro qui confirme les commandes. Créez la relance dans une liste qui vise le groupe Marketing, ou aucun groupe — sinon, utilisez un modèle UTILITY sans promotion. Voir Rotation. - Le consentement. Seuls les abonnés qui ont coché la case de consentement reçoivent un MARKETING, si la liste l'exige. Beaucoup d'acheteurs COD ne l'ont pas cochée : ceux-là ne recevront pas la relance.
Relancer des clients qui viennent d'annuler augmente aussi le risque de signalements sur votre numéro Marketing : gardez la relance courte et utile.
Voir qui est concerné
Le tableau des abonnés d'une liste a une colonne Commande (Active, Annulée, ou — sans commande) et un filtre Commande annulée ; l'export CSV suit le filtre. Le statut est lu sur les commandes elles-mêmes, au moment de l'affichage : il n'est jamais recopié sur l'abonné. Une commande annulée dont une autre commande du client tient (voir plus haut) s'affiche « Active ».
Ce que Trackily refuse d'enregistrer
Une étape qui ne pourrait pas partir est refusée à l'enregistrement, plutôt que six heures plus tard sur chaque abonné :
- une étape sans modèle ;
- un modèle d'un autre compte que celui de la liste (sauf, sur les cartes SIM, un modèle local d'une SIM du même groupe) — le fournisseur le refuserait à l'envoi ;
- des paramètres qui ne couvrent pas toutes les variables du modèle ;
- sur un modèle UTILITY (quel que soit le fournisseur, Twilio compris — avant le 26 septembre 2026, les paramètres d'une étape Twilio n'étaient pas relus), des valeurs fixes qui vendent : une remise chiffrée, un code promo, des soldes… que les paramètres ajoutent au texte du modèle. Le refus cite les passages en cause : prenez un modèle MARKETING, retirez-les, ou — si le message ne vend vraiment rien — cochez « Je confirme que ce message n’est pas promotionnel » dans la boîte de l'étape et enregistrez à nouveau (voir Modèles). Changer un délai, un nom ou mettre l'étape en pause ne redemande rien. À l'inverse, passer le modèle local en UTILITY, ou changer son texte, relit les valeurs fixes de toutes ses étapes, même en pause : le refus s'affiche alors sur le modèle et nomme l'étape ;
- un délai de plus d'un an : l'étape ne serait à l'heure pour personne.
Une liste sans compte ni groupe accepte n'importe quel modèle : ses envois partent alors du compte de chaque modèle.
Comment les étapes sont programmées
À l'inscription d'un nouvel abonné dans une liste qui a une séquence par défaut, toutes les étapes actives sont programmées d'un coup : une ligne en file par étape, datée de l'inscription plus le délai. Le moteur les prend quand leur heure est venue, à son passage suivant (il tourne toutes les 30 secondes), si les plafonds du compte le permettent.
Trois règles tiennent ce mécanisme :
- Une étape ne part qu'une fois par abonné, quoi qu'il soit arrivé à sa première ligne (partie, annulée, sautée, échouée).
- Une étape n'est jamais programmée en retard. Si son moment est déjà passé de plus de cinq minutes quand elle est programmée, elle est sautée — une ligne annulée au journal, avec sa raison. Un « J+2 » reçu à J+90 serait une campagne que personne n'a lancée. En revanche, un message déjà en file peut partir plus tard que prévu : plafonds atteints, licence coupée (la file attend son retour), nouvelles tentatives après une erreur, SIM indisponible. Si un retard change le sens du message, annulez sa file depuis le journal.
- Ce qui est programmé est figé. Le modèle et les paramètres sont copiés sur la ligne en file au moment de la programmation. Modifier ensuite les paramètres ou le délai d'une étape ne change pas les messages déjà en file : ils partent comme ils ont été programmés. (Une exception : retoucher le texte d'un modèle local réaligne la file sur ses nouvelles variables.)
Ce qui arrête une séquence tout seul
- Le prospect achète. Un abonné entré par le formulaire d'une landing sort de toutes les séquences de sa liste dès qu'il passe commande (commande non annulée, avec son téléphone) ou qu'une conversion approuvée remonte pour lui — même sans déclencheur WhatsApp sur l'offre. Ses messages en file sont annulés, et sa chronologie note la sortie avec le motif « conversion ». Le reconnaître se fait par le numéro, sous toutes ses écritures. Un abonné entré par un achat ou une conversion n'est pas concerné : c'est un client, sa séquence est faite pour lui. La liste que l'achat remplit (liste post-achat de la campagne, listes des déclencheurs de l'offre) n'est jamais vidée par lui. Une sortie est définitive pour cette séquence.
- La commande est annulée. Chaque étape qui porte une commande — celles de la liste post-achat — relit la commande juste avant de partir : annulée ou supprimée, l'étape est sautée (
commande_annulee,commande_introuvable), et les suivantes le seront à leur tour. Un remboursement seul ne l'arrête pas. Le client reste dans la liste : si elle a une séquence Commande annulée, c'est elle qui prend le relais.
Ajouter une étape à une séquence qui tourne déjà
Les abonnés déjà entrés dans la séquence sont rattrapés par le moteur, au fil de ses passages : rien n'est à reprogrammer à la main. Mais le rattrapage suit la règle du retard :
- si le moment de la nouvelle étape est encore à venir pour un abonné, elle est programmée à son heure ;
- s'il était déjà passé quand vous avez créé l'étape, elle est sautée pour cet abonné ;
- s'il est passé entre la création de l'étape et le moment où le rattrapage atteint cet abonné (le rattrapage avance par lots, à chaque passage du moteur), l'étape part quand même, en retard. Si plusieurs étapes ajoutées sont dans ce cas pour le même abonné, seule la plus récente part ; les autres sont sautées.
Exemple : vous ajoutez une étape « J+2 ». Un abonné inscrit hier la recevra demain ; un abonné inscrit il y a dix jours ne la recevra pas.
Le rattrapage ne concerne que les étapes créées après l'inscription de l'abonné. Une étape qui existait déjà, désactivée, puis réactivée, n'est pas rattrapée pour les abonnés déjà inscrits.
Changer la séquence par défaut
Changer la séquence par défaut d'une liste ne l'envoie pas aux abonnés déjà inscrits : seuls les nouveaux inscrits y entrent. Une ré-inscription ne fait pas non plus entrer un abonné existant dans une séquence qu'il ne suivait pas.
Pause, archivage, suppression
| Geste | Nouveaux inscrits | Messages déjà en file |
|---|---|---|
| Mettre la séquence en pause (décocher « Séquence active ») | N'y entrent plus | Partent quand même : une pause n'est pas une annulation |
| Archiver la séquence | N'y entrent plus | Partent quand même |
| Désactiver une étape | L'étape n'est plus programmée | Partent quand même |
| Supprimer une étape | — | Annulés ; ce qui est déjà parti reste au journal |
Quand vous mettez en pause ou archivez la séquence par défaut d'une ou plusieurs listes, Trackily nomme ces listes : sans cela, elles cesseraient silencieusement d'accueillir qui que ce soit.
Pour arrêter des messages déjà programmés : désinscrivez les abonnés concernés (leur file est vidée), ou annulez les messages depuis le Journal des envois (seul un message encore « En file » s'annule).
Les variables
Les paramètres d'une étape associent chaque clé du modèle à un texte, qui peut contenir les variables de Trackily :
{ "body.1": "{{first_name}}", "body.2": "{{order_number}}" }
La liste complète des variables est sur la page Modèles. Une variable qui se rend vide au moment de l'envoi (un abonné sans nom pour {{first_name}}) fait échouer l'envoi en parametre_manquant : choisissez des variables que vos abonnés ont vraiment.
Les séquences et les cartes SIM
Pour la rotation des SIM, le métier d'un message de séquence — Commandes ou Marketing — est celui de la cible de sa liste : le groupe qu'elle vise, ou le groupe de la SIM qu'elle vise. Une liste qui vise une SIM sans groupe, ou rien, envoie du Marketing. Le modèle n'y change rien : une étape UTILITY d'une liste de campagne reste du Marketing, et une liste « Suivi de commande » rattachée au groupe Commandes part des SIM Commandes. C'est en rattachant la liste que vous déclarez ce métier.
Ce métier est revérifié juste avant chaque envoi, même quand l'étape porte déjà une SIM (une liste qui vise un compte, ou pas de cible) : une SIM rangée dans un groupe de l'autre métier ne l'envoie pas. Le routage lui cherche une SIM du bon métier ; à défaut, l'étape attend, puis échoue en vocation_sans_sim 24 heures après son échéance. Une SIM sans groupe, elle, n'a pas de métier : elle envoie comme avant. Voir Rotation.
La catégorie du modèle, elle, continue de décider des gardes : un modèle UTILITY d'une séquence passe sans consentement marketing. C'est pourquoi un message UTILITY qui ressemble à une promotion est refusé à l'enregistrement — le texte d'un modèle local comme les valeurs fixes d'une étape.
Les mesures
Mesures sur la ligne d'une séquence : les 30 derniers jours, taux de livraison, de lecture et d'échec calculés sur les messages partis, et le détail par étape (partis, livrés, lus, échoués).
Via l'agent IA
// 1. La séquence
{ "name": "create_whatsapp_sequence", "arguments": { "list_id": 3, "name": "Suivi de commande" } }
// 2. Une étape à J+2, sur un modèle à deux variables
{ "name": "add_whatsapp_sequence_step", "arguments": {
"sequence_id": 7, "name": "Colis en route", "delay_days": 2,
"template_id": 12, "params": { "body.1": "{{first_name}}", "body.2": "{{order_number}}" }
}}
// 3. La poser en séquence par défaut de la liste
{ "name": "update_whatsapp_list", "arguments": { "id": 3, "default_sequence_id": 7 } }
// 4. Une relance après annulation, dans une liste qui vise le groupe Marketing
{ "name": "create_whatsapp_sequence", "arguments": { "list_id": 5, "name": "On vous garde votre remise", "cible_commande": "annulee" } }
{ "name": "add_whatsapp_sequence_step", "arguments": {
"sequence_id": 8, "name": "Code retour", "delay_hours": 2,
"template_id": 21, "params": { "body.1": "{{first_name}}", "body.2": "RETOUR10" }
}}
// Pas d'update_whatsapp_list ici : une relance démarre seule à l'annulation.
// 5. Les clients qui ont annulé
{ "name": "list_whatsapp_subscribers", "arguments": { "list_id": 5, "statut_commande": "annulee" } }
Erreurs courantes
- Une étape créée ne part pour aucun ancien abonné — son moment était déjà passé pour eux quand elle a été créée : elle est sautée pour eux, jamais programmée en retard.
- Les nouveaux inscrits ne reçoivent rien — la séquence n'est pas la séquence par défaut de la liste, ou elle est en pause, ou la liste est en pause.
- « Le modèle … appartient au compte WhatsApp … » — le modèle vient d'un autre compte que celui de la liste. Choisissez un modèle de ce compte.
- « Le délai de l'étape … dépasse un an » — vous avez probablement tapé des minutes dans le champ des jours. Le délai se compte depuis l'inscription.
- Envois sautés en
consentement_absent— le modèle est MARKETING et la liste exige un consentement que l'abonné n'a pas donné. - Envois en échec
parametre_manquant— une variable se rend vide pour cet abonné. - « Le message de cette étape … ressemble à une promotion » — le modèle est UTILITY et les paramètres y ajoutent une promotion. Modèle MARKETING, paramètres corrigés, ou la case « Je confirme que ce message n’est pas promotionnel ».
- « La séquence … vise les commandes annulées » en posant une séquence par défaut — une relance après annulation démarre seule à l'annulation : choisissez par défaut une séquence « Commande active ».
- « La cible d'une séquence se choisit à sa création » — créez une nouvelle séquence avec la cible voulue.
- Une relance n'est partie pour personne — les annulations antérieures à la création de la séquence, ou de plus de 7 jours, n'y entrent pas ; le client a peut-être déjà reçu cette relance (une fois par client) ; ou le modèle est MARKETING et le client n'a pas consenti (
consentement_absent). - Envois sautés en
commande_activeoucommande_remplacee— la commande n'est plus annulée, ou une autre commande du client tient (il a racheté, ou seul un doublon a été annulé) : la relance n'a plus d'objet. - Un client qui a annulé n'est pas entré dans la relance — une autre de ses commandes tient dans la liste (voir « Ce qui compte comme une autre commande qui tient »).
Voir aussi
- Listes — où vivent les séquences
- Modèles — variables et catégories
- Déclencheurs — ce qui inscrit, donc ce qui démarre une séquence
- Rotation — de quelle SIM part une étape