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 |
|---|
| ID | Name | Network | Geo | Payout | Clicks | Conv | Net Conv | CR | Revenue | EPC | Profit | ROI | Type | Status |
|---|
| 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 |
|---|
| 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 |
|---|
| ID | Name | Clicks | Cost | Leads | Sales | Rejected | Revenue | Profit/Loss | CR | ROI | EPC | CPC |
|---|
| 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 ni ton catalogue, et les pools de smartlinks ne le tirent plus ; ses funnels (/f/…), ses liens /c/ et /s/ et ses pages /p/, /lp/ et /l/ répondent encore. 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…
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 | |||
| Name | Campaign | Conditions | Actions | Status | Last Triggered | Actions |
|---|---|---|---|---|---|---|
| No automation rules yet. | ||||||
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 | Actions | |
|---|---|---|---|---|---|---|---|---|
| Loading... | ||||||||
Email Sequences
| Name | List | Steps | Active | Created | Actions |
|---|---|---|---|---|---|
| Loading... | |||||
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 et les liens de connexion ne sont pas encore notés sur le serveur : une panne qui ne touche qu’eux n’apparaît pas dans le verdict.
Serveurs
Chargement…
Email Sends Log
| Date | Recipient | Subject | List | Status | Opens | Clicks | Attempts | Error | |
|---|---|---|---|---|---|---|---|---|---|
| Loading... | |||||||||
Suppression List
| Reason | Notes | Added | Actions | |
|---|---|---|---|---|
| Loading... | ||||
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 échouent tant qu’il l’est ; rangé dans un groupe, ils passent aux autres SIM.
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é.
Listes WhatsApp
| Liste | Compte | Abonnés | Consentement | Pays par défaut | Statut | Actions |
|---|---|---|---|---|---|---|
| Chargement… | ||||||
Séquences WhatsApp
| Séquence | Liste | Étapes | Active | Actions |
|---|---|---|---|---|
| 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.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
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: