Performance by Offer
| Offer | Clicks | Conversions | CVR | Revenue | EPC | Profit |
|---|---|---|---|---|---|---|
| Loading... | ||||||
| ID | Name | Source | Domain | Flows | Clicks | Conv. | CR | Revenue | Cost | Profit/Loss | ROI | Group | Status |
|---|
| ID | Name | Network | Geo | Payout | Clicks | Conv | Net Conv | CR | Revenue | EPC | Profit | ROI | Type | Status | URL |
|---|
| Date | Clicks | Convs | Revenue | CR % |
|---|---|---|---|---|
| Loading… | ||||
| Date | Clicks | Convs | Revenue | CR % |
|---|---|---|---|---|
| Loading… | ||||
| Name | Phone | Orders | Total spent | AOV | Last order | RFM | |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
| Date | Order # | Method | Status | Fulfillment | Total |
|---|---|---|---|---|---|
| Loading… | |||||
| Product | Cycle | Price | Status | Started | Period end | Gateway sub | ||
|---|---|---|---|---|---|---|---|---|
| Loading… | ||||||||
| Date | Product | Author | Rating | Review | Status | |
|---|---|---|---|---|---|---|
| Loading… | ||||||
| Funnel | Statut | Adresse | Étapes | Commandes 30 j | Encaissé 30 j | Modifié |
|---|
Les chiffres viennent des commandes, pas des événements de suivi : une commande annulée ne compte nulle part, et une commande d'aperçu (passée sur un funnel en brouillon) est signalée à part pour ne jamais gonfler le chiffre d'affaires.
Par étape
Par source d’entrée — la somme de ces lignes est exactement le total ci-dessus
Les bots sont exclus (à la lecture, par la session : l’événement reste écrit et auditable). L’argent vient des commandes, jamais des événements de suivi. Le coût est celui des clics entrés dans le funnel — une entrée directe coûte 0, elle n’est pas gratuite par magie. Survolez un en-tête pour lire sa formule.
| ID | Name | Type | Category | Created | Clicks | LP Clicks | LP CTR | Conv. | CR | Revenue | Cost | Profit/Loss | ROI | URL |
|---|
| ID | Name | Slug | Domain | Strategy | Pool | Clicks 24h | Conv 24h | EPC 24h | Fallback % | Status | Actions | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Loading… | ||||||||||||
Campaign Performance
Danger Zone
Réinitialise l'affichage des stats de ce smartlink. Les clicks et conversions historiques restent en base (réversible).
| ID | Name | Vertical | Status | Views | Conv | Actions | ||||
|---|---|---|---|---|---|---|---|---|---|---|
| No AI landings yet. Click " Generate with AI" to create your first one. | ||||||||||
| Name | Campaign | Type | Weight | Landings | Offers | Active | Actions |
|---|
Une source t’amène du trafic : Trackily suit ses clics, lui renvoie tes conversions par postback et, quand sa plateforme a une API, pilote ses campagnes. Son verdict dit ce que le serveur sait de la connexion.
Il voit si les identifiants qu’exige l’API de la plateforme sont réglés, et si la clé se déchiffre encore. Pour Meta, il garde aussi la date et l’erreur de la dernière synchro Insights.
Il garde le dernier « Tester la connexion » de chaque source : sa date, son résultat et son erreur. Un test réussi de moins de 7 jours la dit « Connectée », un test raté « Test en échec » ; une source Kadam, TikTok, MGID… jamais testée reste « API configurée, non vérifiée ». Il ne connaît pas la date d’expiration d’un jeton.
Une source sans API (Google Ads, plateforme non reconnue) est suivie par postback : ce n’est pas une panne.
- Connectée
Un test réussi il y a moins de 7 jours, ou (Meta) une synchro réussie récente.
- À vérifier
Rien de cassé, rien de prouvé : jamais testée, test de plus de 7 jours, jamais synchronisée, ou API non configurée.
- À surveiller
Identifiants incomplets, ou synchro automatique qui ne passe plus.
- En panne
Test en échec, jeton refusé, synchro en échec, ou clé qui ne se déchiffre plus.
- Au repos
Désactivée, ou suivie par postback seulement : c’est voulu.
Les postbacks comptés sont ceux du journal (page Logs) : ceux du pixel, de /api/lead et du commerce natif n’y sont pas, et vider le journal fait baisser ces comptes. Un postback « en échec » n’est pas parti (réseau injoignable ou adresse refusée) ; une réponse 4xx ou 5xx de la source n’est pas connue.
Sources
Chargement…
Performance
Depuis la création de chaque source, archivées comprises : clics, coût, leads, ventes, revenu, ROI. Import et export CSV juste au-dessus de la table.
| ID | Name | Clicks | Cost | Leads | Sales | Rejected | Revenue | Profit/Loss | CR | ROI | EPC | CPC | Status |
|---|
Un réseau te paie tes conversions : il te fournit ses offres, et ses postbacks disent à Trackily ce qui a converti. Son verdict dit si la synchro de ses stats passe.
Trackily parle à un réseau par l’API Everflow : sa clé et l’URL de son API. Toutes les 30 min, il relit les stats des offres de chaque réseau actif qui a les deux, et garde la date de la dernière stat enregistrée : c’est elle qui dit « Connecté ».
Il garde le dernier « Tester la connexion » (date, résultat, erreur) : un test réussi de moins de 7 jours dit « Connecté », un test raté « Test en échec ». Il ne garde pas l’erreur d’une synchro ratée : « Jamais synchronisé » ou « Synchro ancienne » alors que ses offres reçoivent du trafic veut dire qu’elle échoue — même clé acceptée.
Un réseau sans clé API est suivi par postback : ses conversions arrivent quand même. Ce n’est pas une panne.
- Connecté
Une stat réseau enregistrée il y a moins de 2 h, ou un test réussi il y a moins de 7 jours.
- À vérifier
Suivi par postback, aucune offre, ou rien de neuf faute de trafic.
- À surveiller
URL d’API absente, ou aucune stat récente alors que ses offres ont du trafic.
- En panne
Test en échec, ou sa clé ne se déchiffre plus.
- Au repos
Désactivé : la synchro l’ignore, c’est voulu.
Les postbacks reçus sont ceux du journal (page Logs), comptés quand le clic est retrouvé : vider le journal fait baisser ces comptes.
Réseaux
Chargement…
Tableau des réseaux — sélection en masse, import et export CSV
| Name | Slug | API | Active | Actions |
|---|
Un domaine sert tes campagnes, ta boutique, tes funnels et tes landings : il doit pointer vers ce serveur et répondre en HTTPS. Son verdict dit s’il est prêt à servir.
Son enregistrement A vise l’adresse de ce serveur : celle que règle SERVER_IP, sinon celle que le serveur déduit de sa propre URL publique. La tuile « Adresse à viser » dit laquelle, et d’où elle vient. S’il a un AAAA (IPv6), il doit viser ce serveur lui aussi.
Puis HTTPS répond : le certificat s’émet tout seul dès que le DNS pointe ici. Derrière le proxy Cloudflare (nuage orange), rien ne se prouve et le certificat ne s’émet pas : passe l’enregistrement en « DNS only ».
Les domaines actifs sont revérifiés toutes les 24 h, un par un. « Vérifier » et « Tout revérifier » le font tout de suite.
- Prêt
Il pointe ici et HTTPS répond : il sert ce qu’on lui confie.
- À vérifier
Jamais vérifié, HTTPS pas encore testé, certificat en attente ou bientôt expiré, derrière un proxy, ou vérifié il y a plus de 7 jours.
- À corriger
Il pointe ailleurs (en IPv4 ou en IPv6), n’a pas d’enregistrement A, ou HTTPS échoue : ce qu’il porte ne s’affiche pas.
- Au repos
Désactivé, ou prêt mais inutilisé : c’est voulu, rien n’est cassé.
Désactivé n’est pas supprimé. Désactivé, il ne sert plus ta boutique, ton catalogue ni tes funnels (/f/…), et les pools de smartlinks ne le tirent plus ; ses liens /c/ et /s/ et ses pages /p/, /lp/ et /l/ répondent encore. Avant de le désactiver, « Désactiver » te propose de migrer ses funnels vers un autre domaine actif. Supprimé, plus rien n’est servi sur ce domaine, liens compris : tout y répond « plus servi », tout de suite. Il se récupère depuis Archive, ou en l’ajoutant à nouveau : il revient avec ce qu’il portait (boutique, funnels, landings, smartlinks, produits, campagne, groupe, marque, page d’accueil) ; ce que tu saisis alors l’emporte, un champ laissé vide garde l’ancienne valeur.
Domaines
Chargement…
Domaine principal
Lecture du suivi des visites…
Report
| Label | Clicks | Unique | Leads | Cost | Revenue | Profit | ROI% | CR% | EPC | Bounce% | Avg active | Avg →CTA |
|---|
| Label | Clicks | Unique | Leads | Cost | Revenue | Profit | ROI% | CR% | EPC | Bounce% | Avg active | Avg →CTA |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Loading... | ||||||||||||
Danger Zone
Réinitialise l'affichage des stats de cette campagne. Les clicks et conversions historiques restent en base (réversible).
Conversion Drilldown
| Tâche | État | Dernière exécution | Durée | Résultat / erreur | Cadence |
|---|---|---|---|---|---|
| — | |||||
| Date and time | Level | Context | Message |
|---|---|---|---|
| Select a tab and click Reload | |||
Une règle surveille une campagne, un produit ou toutes tes campagnes, et agit quand ses conditions sont réunies : pause, budget, enchère, notification. Le verdict de chacune dit si elle s’exécutera vraiment.
À chaque passage, le moteur contrôle les règles actives dont l’intervalle est écoulé (toutes les 5 min par défaut). Il lit les chiffres de leur cible sur leur fenêtre — celle de la première condition vaut pour toutes — et agit si toutes les conditions sont vraies.
Il n’y a pas de délai entre deux alertes : tant que ses conditions tiennent, une règle se redéclenche à chaque contrôle. Une pause ne se répète pas pour rien, mais une notification, si : choisis l’intervalle en conséquence.
Une règle en panne ne s’exécutera pas correctement : le moteur la refuse, sa cible a disparu, sa source n’a pas ce qu’il faut pour appeler l’API, ou le moteur lui-même ne tourne pas. Le verdict est celui du serveur, calculé par les fonctions mêmes du moteur : l’écran le traduit, il ne le recalcule pas.
- Active
Contrôlée, saine, et déjà déclenchée : elle agit dès que ses conditions sont réunies.
- Jamais déclenchée
Saine, mais ses conditions n’ont jamais été réunies. « Bientôt contrôlée » : le moteur vient de démarrer.
- À surveiller
Elle tourne, mais quelque chose cloche : Moteur en retard, Dernière exécution partielle, Source en échec.
- En panne
Elle ne s’exécutera pas correctement : Illisible, Action inconnue, Condition invalide, Incomplète, Cible disparue, Source non configurée, Moteur arrêté, Moteur en erreur, Évaluation en échec, Dernière exécution en échec.
- En pause
C’est voulu : le moteur ne la contrôle plus, son journal reste.
Une source « configurée » a ce qu’il faut pour appeler son API (clé, identifiants) : sa clé n’est pas testée, seul un appel dirait qu’elle est encore valide. L’état du moteur vit dans la mémoire du serveur : il repart de zéro à chaque redémarrage.
Règles
Chargement…
Exporter ou importer des règles (CSV)
Les colonnes gardent leurs noms d’export (Name, Campaign, Conditions, Actions, Status, Check every) : un fichier exporté se réimporte tel quel. Conditions et actions s’y écrivent en JSON, les actions à plat.
| Name | Campaign | Conditions | Actions | Status | Check every | Last Triggered | Actions |
|---|---|---|---|---|---|---|---|
| Aucune règle. | |||||||
Trackily Autopilot
Expose this Trackily instance to AI clients (Claude Desktop, Cursor, Zed, ChatGPT, or your own agents) through the Model Context Protocol. Each token you issue has fine-grained scopes, rate limits and a full audit trail. Connect your AI to read stats, pause campaigns, generate landings, or run autonomous optimization — your data never leaves your server.
/ in Claude Desktop (or Cursor) and pick one of these workflows — or click "Copy prompt" here to paste it in your chat.autopilot_audit_log rows older than this every hour. Min 7d, max 365d.
| Type | Name | Deleted | Actions |
|---|---|---|---|
| Loading... | |||
Account Information
Security
Preferences
Email Lists
| Name | Subscribers | SMTP | Sequence | Double opt-in | Track | Created | Status | Actions | |
|---|---|---|---|---|---|---|---|---|---|
| Loading... | |||||||||
Une séquence, ce sont des e-mails qui partent tout seuls aux inscrits d’une liste, par le serveur SMTP de cette liste : son verdict dit si elle va envoyer, et sinon quoi faire.
Il lui faut une liste active avec des abonnés, des étapes allumées avec un objet et un corps, et un serveur SMTP qui peut envoyer sur sa liste. Un nouvel inscrit n’entre que dans la séquence d’accueil (par défaut) de sa liste ; les autres sont alimentées par un funnel ou par l’annulation d’une commande.
Une séquence en pause n’accueille plus personne — même restée séquence d’accueil : pendant la pause, les nouveaux inscrits n’entrent dans aucune séquence. Ses e-mails déjà en file partent quand même.
Le verdict est celui du serveur, rendu pour chaque séquence avec un conseil : l’écran le traduit, il ne le recalcule pas.
- Prête
Elle accueille les nouveaux inscrits, et son serveur SMTP peut envoyer.
- Prête, sous condition
Elle enverra, mais seulement après une annulation, ou quand un funnel l’alimente.
- À surveiller
Elle enverra, avec un retard ou un risque : un plafond atteint, un serveur jamais vérifié.
- N’enverra pas
Rien ne part sans un geste : pas de serveur, serveur bloqué, étape vide ou aucune étape allumée.
- À l’arrêt
En pause, ou sans abonné à qui écrire.
« — » : le serveur n’a pas pu lire l’état des serveurs SMTP ; il n’affirme rien. Le verdict ne voit ni la délivrabilité (rebonds tardifs, plaintes, SPF/DKIM), ni le statut de chaque abonné.
Séquences
Chargement…
Exporter ou importer en CSV — le tableau des séquences
L’import crée des séquences vides : ouvre chacune ensuite pour lui écrire ses étapes. Les colonnes gardent leurs noms d’export (Name, List, Active, Cible…) : un fichier exporté avant se réimporte tel quel.
| Name | List | Steps | Active | Cible | Created | Actions |
|---|---|---|---|---|---|---|
| Chargement… | ||||||
Les e-mails de tes séquences partent par le serveur de leur liste ; les reçus de commande et les liens de connexion, par le premier serveur actif (celui par défaut s’il est actif, sinon le plus ancien). Le verdict de chacun dit s’il peut envoyer.
Un plafond par jour, qui repart à minuit UTC, et un plafond par heure : une fenêtre d’une heure, ouverte au premier envoi. Au plafond, les envois attendent sans perdre de tentative : ce n’est pas une panne.
Un serveur désactivé ou supprimé retient les envois de ses listes 24 h après leur échéance ; un serveur qui refuse la connexion est retenté pendant environ 24 h. Passé ce délai, les envois échouent : répare le serveur, ou rattache la liste à un autre.
Les mots de passe sont chiffrés avant d’être enregistrés : tu peux les remplacer, jamais les relire.
- Peut envoyer
Il a fonctionné (un envoi ou une vérification réussis), aucune erreur du serveur ne tient depuis, et aucun plafond n’est atteint.
- En attente
Un plafond est atteint : il reprend seul, à l’heure dite.
- À vérifier
Aucun succès connu : jamais vérifié, ou le dernier test a échoué. « Vérifier la connexion » le dit, sans envoyer d’e-mail.
- Bloqué
Mot de passe, identifiant, relais ou connexion : corrige-le. D’ici là, le moteur ne tente plus qu’un envoi par minute (aucun si le mot de passe manque ou ne se lit plus), et le premier qui passe le débloque.
- Désactivé
C’est voulu : rien ne part par lui, sa configuration reste.
« Vérifier la connexion » se connecte, et s’identifie si un identifiant est saisi, sans envoyer d’e-mail — un refus de relais ne se voit qu’à l’envoi ; « Envoyer un essai » en envoie un vrai. Aucun des deux ne compte dans les plafonds. Les reçus de commande, les liens de connexion et les e-mails d’essai d’étape sont notés sur leur serveur : une panne qui ne touche qu’eux fait passer le verdict à « Bloqué ». Les reçus et les essais d’étape comptent dans les plafonds sans jamais être retenus ; le lien de connexion ne compte pas, et seule une panne de connexion ou d’identifiant est notée pour lui.
Serveurs
Chargement…
Email Sends Log
| Date | Recipient | Subject | List | Status | Opens | Clicks | Attempts | Error | |
|---|---|---|---|---|---|---|---|---|---|
| Loading... | |||||||||
Un envoi ponctuel, c’est un e-mail écrit une fois et envoyé à un segment ou à des listes entières, maintenant ou à la date que tu choisis : une promo, une annonce, une newsletter.
Il ne part qu’aux abonnés inscrits d’une liste active, absents de la liste de suppression — jamais à ceux en attente de confirmation, désinscrits ou en rebond. Une adresse inscrite sur plusieurs listes ne le reçoit qu’une fois.
L’audience est figée au lancement : un nouvel inscrit arrivé après n’est pas ajouté. Dès le lancement, le contenu est verrouillé : tout le monde reçoit le même e-mail.
Il part par le serveur SMTP de chaque liste, avec ses plafonds, le lien de désinscription et le suivi des ouvertures et des clics. « Déprogrammer » le remet en brouillon tant que rien n’est parti ; une fois lancé, « Annuler l’envoi » retire ce qui attend encore en file — ce qui est parti reste parti.
- Brouillon
Il s’écrit : rien ne part tant que tu ne le programmes pas.
- Programmé · En cours
Il attend son heure, ou il part. Programmé, tu peux encore modifier son contenu, ou le déprogrammer pour changer son audience.
- Envoyé
Tout est parti : ses statistiques restent lisibles, et tu peux le dupliquer.
- Envoyé, avec échecs
Plus de 5 % des e-mails n’ont pas pu partir.
- Retenu
Des e-mails attendent un serveur SMTP actif.
Le verdict, la progression et les chiffres sont ceux du serveur : l’écran les traduit, il ne les recalcule pas. « — » : le serveur ne l’a pas dit.
Envois
Chargement…
Un segment, c’est une audience décrite par des conditions — « a cliqué ces 30 jours », « a acheté », « pays = MA » — qui se tient à jour seule et que tu réutilises d’un envoi ponctuel à l’autre.
Il part des listes ciblées (aucune cochée : toutes les listes actives), ne garde que les abonnés inscrits et absents de la liste de suppression, puis applique toutes les conditions, ou au moins une. Sans condition, c’est toute l’audience des listes ciblées.
Une adresse inscrite sur plusieurs listes ne compte qu’une fois. Le compte change avec le temps : un envoi ponctuel fige le sien au lancement.
Score des contacts
Chargement…
Segments
Chargement…
Une étiquette, c’est un mot que tu poses sur un contact — « client-vip », « salon-casablanca », « à-rappeler » — à la main, depuis un formulaire ou par une règle. Elle suit l’adresse dans toutes ses listes, et tu t’en sers dans un segment, un envoi, un parcours ou un bloc dynamique.
Par exemple <input type="hidden" name="tags" value="salon-casablanca"> ; plusieurs étiquettes se séparent par des virgules (10 au plus).
Seules les étiquettes qui existent déjà et que tu as ouvertes aux formulaires sont posées. Un nom inconnu est ignoré en silence : un formulaire ne crée jamais d’étiquette et n’en retire jamais.
Étiquettes
Chargement…
Règles automatiques
Une règle ne s’applique qu’aux faits à venir : une inscription, un clic, une ouverture ou un achat arrivés après sa création. Rien n’est rattrapé sur le passé ; pour les contacts déjà là, pose l’étiquette en masse depuis la liste des abonnés.
Chargement…
Liste de suppression
| Adresse | Motif | Notes | Ajoutée le | Actions |
|---|---|---|---|---|
| Chargement… | ||||
Retours reçus
Les rebonds tardifs et les plaintes que tes serveurs d’envoi renvoient à Trackily, et ce qu’il en a fait. Branche-les depuis la page Serveurs SMTP, bouton « Brancher les retours ».
Chargement…
Un formulaire, c’est une porte d’entrée vers une liste, sans landing : Trackily l’héberge sur sa propre page, et tu peux aussi le coller sur n’importe quel site. Il respecte le double opt-in de la liste, prouve le consentement et pose les étiquettes que tu choisis.
Formulaires
Vues, inscriptions et taux de conversion sur les 30 derniers jours, comptés par le serveur.
Chargement…
Subscribers
| Name | Status | Source | Enrolled | Last activity | Pref. hour | Country | Actions | |||
|---|---|---|---|---|---|---|---|---|---|---|
| Loading... | ||||||||||
Conversion Triggers
Steps
{{first_name}}
{{name}}
{{email}}
{{country}}
{{custom.promo_code}}
{{unsubscribe_url}}
{{list_name}}
{{order_table}}
le tableau des articles, prêt à poser
{{order_number}}
{{order_total}}
{{order_subtotal}}
{{order_shipping}}
{{order_date}}
{{order_payment_method}}
{{customer_name}}
{{customer_phone}}
{{shipping_address}}
{{order_items_text}}
(version texte)Sur un e-mail sans commande rattachée, ces variables rendent vide — l'envoi part quand même.
Tracking ouvertures + clics activé automatiquement (configurable au niveau de la liste). Footer désinscription + en-tête List-Unsubscribe (RFC 8058) ajoutés automatiquement.
New Step
Step settings
{{first_name}}
{{name}}
{{email}}
{{country}}
{{custom.X}}
{{list_name}}
{{unsubscribe_url}}
{{order_table}}
{{order_number}}
{{order_total}}
{{order_date}}
{{customer_name}}
{{shipping_address}}
— e-mails post-achat, résolus à l'envoi depuis la commande réelle.
Email body
Plain text fallback (optional)
Un compte, c’est un fournisseur et un numéro expéditeur : son verdict dit s’il peut envoyer maintenant, et ses jetons, chiffrés, n’en ressortent jamais.
Il peut avoir atteint son plafond de l’heure, être une SIM neuve qui monte en charge, ou attendre cinq minutes après une panne du fournisseur. Le verdict est celui du moteur d’envoi : maintenant, pour un destinataire nouveau.
Chaque compte a ses propres plafonds (destinataires uniques par jour, messages par heure, échauffement d’une SIM neuve) : sa jauge montre le plus serré, dans son unité.
- Peut envoyer
Rien ne le retient : le routage peut lui confier un envoi tout de suite.
- Attend une place
Un plafond, l’échauffement du jour ou une pause après panne : il reprendra seul, sans geste.
- Tenté quand même
Sans groupe, en erreur, bannie ou pas appairée : personne ne reprend ses envois, alors le moteur les lui confie quand même — chacun échoue si le problème est réel. Un geste est nécessaire.
- Ne part pas
Rangée dans un groupe, bannie, en erreur ou pas appairée : ses envois vont aux autres SIM du groupe, ou attendent. Un geste est nécessaire.
- En pause
Tu l’as mis en pause. Sans groupe, ses envois attendent sa réactivation, 24 h au plus après leur échéance. Rangé dans un groupe, ils ne passent aux autres SIM que si une règle, le groupe de leur liste ou le seul groupe rempli de leur métier désigne ce groupe ; sinon, ils attendent sa réactivation de la même façon.
Les jetons sont chiffrés au repos et n’en ressortent jamais : l’écran n’en montre qu’un masque. Tu peux les remplacer, pas les relire.
Comptes
Chargement…
Chaque groupe fait un seul métier : les SIM des commandes d’un côté, celles des campagnes de l’autre. Le routage lit la vocation avant tout le reste.
La rotation ne concerne que les SIM WhatsApp Web (une SIM = un numéro). Un numéro de l’API Cloud est approuvé numéro par numéro chez Meta : il ne tourne pas.
Groupes
Chargement…
Règles de routage
Lues de haut en bas : la première règle active dont toutes les conditions correspondent désigne son groupe. Une condition laissée vide ne filtre rien.
- Chargement…
Simulateur de routage
Quelle SIM partirait pour ce message, et pourquoi ? Rien n’est envoyé, rien n’est écrit, rien n’est facturé.
Une liste, c’est des inscrits, une séquence d’accueil et un numéro pour envoyer : son verdict dit si elle est prête, et sinon quoi faire.
Il lui faut une séquence d’accueil (un nouvel inscrit n’entre que dans celle-là), un numéro qui peut partir (son groupe de SIM ou son compte) et, si elle exige le consentement, la case allumée au checkout et dans tes formulaires.
Le verdict est celui du serveur, rendu pour chaque liste avec le geste qui répare : l’écran le traduit, il ne le recalcule pas.
- Prête
Des inscrits, une séquence d’accueil et un numéro qui peut partir : rien à faire.
- Vide
Personne n’est encore inscrit : branche une landing, un funnel ou une campagne post-achat.
- Consentement exigé, case éteinte
Sans la case, aucun nouvel inscrit n’a de preuve : ses messages marketing sont sautés.
- Pas de séquence d’accueil
Un nouvel inscrit n’entre que dans la séquence d’accueil de sa liste : sans elle, il ne reçoit rien.
- Aucune séquence active
Ses inscrits ne reçoivent rien tant qu’aucune séquence n’est active.
- Aucun numéro pour envoyer
Aucun groupe ni compte ne peut porter ses messages : rien ne part tant que ce n’est pas réparé.
- En pause
Tu l’as mise en pause : plus personne n’y est inscrit ; ce qui était programmé part quand même.
- Archivée
Elle refuse les inscriptions et garde son histoire ; ses envois déjà programmés partent.
Une liste archivée garde son histoire : ses envois déjà programmés partent, rien ne s’efface.
Listes
Chargement…
Une séquence, ce sont des messages qui partent tout seuls aux inscrits d’une liste : son verdict dit si elle va envoyer, et sinon quoi faire.
Il lui faut une liste active avec des inscrits, des étapes allumées sur un modèle approuvé et un numéro qui peut partir. Un nouvel inscrit n’entre que dans la séquence d’accueil de sa liste ; les autres sont alimentées par un funnel ou par l’annulation d’une commande.
Le délai d’une étape se compte depuis l’inscription de l’abonné — depuis l’annulation de sa commande pour une séquence « Commande annulée » —, jamais depuis l’étape précédente.
Le verdict est celui du serveur, rendu pour chaque séquence avec un conseil : l’écran le traduit, il ne le recalcule pas.
- Prête
Elle accueille les nouveaux inscrits, et un numéro peut envoyer maintenant.
- Prête, sous condition
Elle enverra, mais seulement après une annulation, ou quand un funnel l’alimente.
- À surveiller
Elle enverra, avec un retard ou un risque : un modèle pas encore approuvé, des SIM sans place.
- N’enverra pas
Rien ne part sans un geste : modèle refusé, aucune étape allumée, aucun numéro qui peut partir.
- À l’arrêt
En pause, archivée ou sans personne à qui écrire. Ses envois déjà programmés partent quand même.
« — » : le serveur n’a pas pu juger ses numéros (rotation absente ou illisible) ; il n’affirme rien.
Séquences
Chargement…
Journal des envois
| Créé | Destinataire | Modèle | Origine | Statut | Coût | Actions | |
|---|---|---|---|---|---|---|---|
| Chargement… | |||||||
Suppressions et déclencheurs
stop_keyword, le STOP tapé, et opt_out, la désinscription signalée par le fournisseur) ne se lève pas depuis l'administration : seul le client se rouvre, en écrivant START au même compte.| Numéro | Cause | Portée | Origine | Notes | Posée le | Actions |
|---|---|---|---|---|---|---|
| Chargement… | ||||||
Déclencheurs de conversion
| Déclencheur | Offre | Liste visée | Filtres | Déclenché | Actif | Actions |
|---|---|---|---|---|---|---|
| Chargement… | ||||||
Réglages WhatsApp
Confirmation des commandes à la livraison (COD)
UTILITY, à deux réponses rapides dont les libellés sont ceux réglés ci-dessous. S'il a des variables, chacune doit être remplie juste en dessous, sinon l'enregistrement est refusé.{{first_name}}, {{order_number}}, {{order_total}}, {{order_items_text}}, {{shipping_address}}… Seules les variables d'une commande sont acceptées. Une variable vide pour une commande (acheteur sans nom, adresse vide) fait échouer sa demande, et le Purchase retenu part aussitôt. Dans un funnel à upsells, la demande part à la fin du funnel, une seule fois : {{order_group_items_text}}, {{order_group_total}} et {{order_group_count}} y listent la commande et ses upsells (hors funnel, la commande seule).Case de consentement
Message après achat
UTILITY envoyé — et facturé — à chaque commande. Jamais pour une commande COD : celle-ci a déjà sa demande de confirmation, et l'acheteur recevrait deux messages pour un seul achat.{{first_name}}, {{order_number}}, {{order_total}}… comme pour la confirmation COD). Sinon « Enregistrer » est refusé et te dit ce qui manque — plutôt qu'un message après achat qui échouerait à chaque commande payée.Les conversations Instagram et Messenger de tes Pages. Tu réponds à la main, dans les 24 h qui suivent le dernier message de la personne ; ta réponse met ses automatisations en pause.
Conversations
Chargement…
Conversation
Une application Meta porte une adresse de webhook ; chacune de ses Pages répond sur Messenger et, si un compte Instagram professionnel y est lié, sur Instagram.
Chaque instance branche sa propre application : les comptes branchés appartiennent à des personnes qui ont un rôle sur l’app, l’accès standard suffit en principe.
- Sur developers.facebook.com, crée une application de type Business, rattachée à ton portefeuille d’entreprise.
- Ajoute les produits Messenger et Instagram (« Instagram API with Facebook Login »). Lie ton compte Instagram professionnel à ta Page Facebook.
- Dans Paramètres → Général, recopie l’identifiant de l’app et sa clé secrète, puis crée-la ici avec « Nouvelle application ».
- Passe l’app en mode Live (publiée) : en mode développement, Meta n’envoie aucune notification.
- Génère un jeton de Page sans expiration : un jeton d’utilisateur longue durée, puis la liste de tes Pages (
/me/accounts) — ou un utilisateur système à expiration « Jamais ». Colle-le avec « Ajouter une Page ». Tu peux aussi coller le jeton d’utilisateur : Trackily te proposera tes Pages. - Dans Webhooks, colle l’URL du webhook et le jeton de vérification de la carte de ton application (boutons « Copier »).
- Coche les champs listés sur la carte, objet par objet (Page et Instagram), puis clique « Abonner » sur la carte de la Page.
- Teste depuis le compte d’un ami sans rôle sur l’app : un DM, un commentaire, une réponse à ta story. La carte de la Page montre la dernière notification reçue par canal et par type. Si les commentaires ou les DM du public n’arrivent pas, demande l’accès avancé à Meta pour ton app (vérification d’entreprise et vidéo) : rien ne change dans Trackily.
La clé secrète et les jetons sont chiffrés au repos et n’en ressortent jamais : l’écran n’en montre qu’un masque. Tu peux les remplacer, pas les relire.
Applications
Chargement…
Réglages
Un contact, c’est une personne sur un canal : on ne lui écrit que dans les 24 h qui suivent son dernier message, et un mot d’arrêt coupe tout envoi automatique.
Contacts
Chargement…
Une automatisation, c’est un déclencheur (un commentaire, un mot-clé, une story) et un scénario : les messages qui partent en privé, et au besoin la capture d’un e-mail ou d’un téléphone vers tes listes.
Automatisations
Chargement…
License
Advanced Configuration
localhost:3000.
Language & Timezone
Global Postback URL
Configure this URL in your affiliate network to receive conversions. Trackily auto-detects all parameter aliases.
/postback?click_id=abc123&amount=2.50&type=saleTrackily auto-maps:
click_id → subid, amount → payout, type → status
Une boutique connectée t’envoie ses commandes : Shopify, WooCommerce ou Stripe par leur API, toute autre par webhook. Son verdict dit si sa dernière synchro prouve la connexion.
Il voit si les identifiants qu’exige l’API de la plateforme sont réglés : Shopify (domaine et jeton Admin API), WooCommerce (URL, clé et secret client), Stripe (clé secrète). Il garde la date de la dernière synchro réussie — import des produits ou synchro des commandes : c’est elle qui dit « Connectée ».
Il garde le dernier « Tester la connexion » (date, résultat, erreur) : un test réussi de moins de 7 jours dit aussi « Connectée », un test raté « Test en échec ». Il ne garde pas l’échec d’une synchro. Aucune synchro automatique n’existe pour les boutiques : au-delà de 7 jours, une synchro ou un test ne prouvent plus que la clé est valide.
Une autre plateforme reçoit ses commandes par webhook : ce n’est pas une panne.
- Connectée
Sa dernière synchro, ou son dernier test, a réussi il y a moins de 7 jours.
- À vérifier
API non configurée, jamais synchronisée, ou synchro ancienne.
- À surveiller
Identifiants incomplets, ou synchro qui a laissé des produits en erreur.
- En panne
Test en échec, ou une clé ne se déchiffre plus.
- Au repos
Désactivée, ou reçue par webhook : c’est voulu.
Supprimer une boutique est définitif (pas d’archive) : ses produits et ses campagnes sont détachés, pas supprimés.
Boutiques
Chargement…
Performance
Depuis la création de chaque boutique : produits, campagnes, commandes et revenu. Une carte ouvre le détail de la boutique.
Custom Events
| Event | Total | Unique Visitors |
|---|
| Source | Revenue (Selected) | Conversions | First Touch | Last Touch | Linear | Time Decay |
|---|
| Visitor ID | Country | Device | OS | Browser |
|---|
Shopify
Import products & sync orders
WooCommerce
Import products via REST API
Tracking Pixel
Client-side JavaScript pixel
Add this script to your website to track page views, cart events, and purchases:
Webhooks
Receive events from any platform
Shopify:
WooCommerce:
Stripe: