Trackily Docs

MCP Tools Reference

Liste exhaustive des 339 outils MCP que Trackily publie, répartis en 25 modules. Pour chacun : son nom, les scopes qu'il exige, son tier, et la première phrase de la description que l'agent reçoit. Le serveur publie aussi 22 resources (resources/list, URIs trackily://…) et 13 prompts (prompts/list), qui ne figurent pas dans ces tableaux.

Légende des colonnes :

  • Outil — le nom à passer dans tools/call, champ params.name.
  • Scopes — tous requis sur le jeton (cf. Scopes). tools/list ne montre à un jeton que les outils dont il possède tous les scopes : un outil absent de sa liste est un scope manquant, pas un outil manquant.
  • Tier — T1 : exécuté dès le premier appel. T2 (85 outils) : le schéma accepte confirm_token ; le premier appel ne fait qu'un aperçu et rend un jeton, le second — mêmes arguments plus confirm_token — exécute. Le jeton sert une fois et expire après 5 minutes (cf. Tier System). Quelques outils ne passent par l'aperçu que pour une partie de leurs actions (compliance_check en mode ai, les bulk_* pour delete, verify_whatsapp_account pour un compte 360dialog, les modèles locaux et les étapes de séquence WhatsApp pour outrepasser un refus contenu_promotionnel) : leur description le dit.
  • Description — la première phrase du texte que l'agent lit dans tools/list (les deux premières quand la première tient en moins de 25 caractères), recopiée telle quelle : en anglais pour la plupart des modules, en français pour WhatsApp. Le schéma complet des arguments se lit dans tools/list.

Table des matières


resources

Les lectures du tracker qui prennent des paramètres (fenêtre de dates, identifiants, limites). Le même module publie aussi des resources trackily://… : des instantanés JSON sans argument (tableau de bord, stats sur 30 jours, campagnes, offres, landings, sources, règles Automizer…). list_automizer_rules est l'équivalent outil de la resource trackily://automizer/rules.

Outil Scopes Tier Description
get_stats stats:read T1 Aggregated stats over an arbitrary date window, grouped by day / campaign / offer / source / landing / country / device.
get_campaign_detail campaigns:read T1 Full campaign detail including flows and stats over a window.
get_offer_detail offers:read T1 Full offer detail including day-by-day stats (Trackily + network cross-check).
get_landing_detail landings:read T1 Full landing page detail (type, url, redirect/protection configs).
get_flow_detail flows:read T1 All flows (forced/regular/default) of a campaign with their schema and filters.
list_clicks reports:read T1 Paginated click log. Optional filters: campaign_id, offer_id, from, to.
list_conversions reports:read T1 Paginated conversions log with click join.
list_leads landings:read T1 Captured leads (email/name/phone).
search_entities campaigns:read + offers:read + landings:read + sources:read T1 Search campaigns / offers / landings / sources by name or external id.
get_automizer_audit automizer:read T1 Recent Automizer executions (which rules fired, which actions, when).
list_automizer_rules automizer:read T1 List Automizer rules with their current state.
list_offers offers:read T1 List Trackily offers with bulk filtering.

actions

Les écritures de base du tracker : campagnes et flows, offres d'affiliation, landings, règles Automizer. « Offre » veut dire ici l'offre d'un réseau d'affiliation — un payout. Les offres vendues dans la boutique native sont un autre objet, dans offer-tools.

Outil Scopes Tier Description
pause_campaign campaigns:write T1 Pause a campaign (sets is_active=false).
resume_campaign campaigns:write T1 Resume a paused campaign (sets is_active=true).
pause_offer offers:write T1 Pause an offer (sets status=paused).
resume_offer offers:write T1 Resume a paused offer (sets status=active).
pause_landing landings:write T1 Pause a landing page (sets is_active=false).
resume_landing landings:write T1 Resume a paused landing page (sets is_active=true).
pause_automizer_rule automizer:write T1 Pause an Automizer rule. Its 60-second evaluation loop will skip it.
resume_automizer_rule automizer:write T1 Re-enable an Automizer rule so the 60-second engine evaluates it again.
sync_offer_network_stats offers:write T1 Trigger an Everflow / affiliate-network stats sync.
create_campaign campaigns:write T1 Create a new Trackily campaign.
create_flow campaigns:write T1 Create a new flow on an existing campaign.
update_offer_payout offers:write T2 Update an offer's payout amount.
update_campaign_cost campaigns:write T2 Update a campaign's cost_model and/or cost_value.
duplicate_campaign campaigns:write T2 Clone a campaign with a new name and slug.
create_automizer_rule automizer:write T2 Create a new Automizer rule with custom conditions and actions.
update_automizer_rule automizer:write T2 Update an existing Automizer rule.
delete_automizer_rule automizer:write T2 Permanently delete an Automizer rule.

source-actions

Ces outils agissent directement chez la régie (Kadam, Meta, TikTok, Taboola, MGID, ExoClick, PropellerAds) : ils demandent le source_id Trackily et l'identifiant de la campagne côté régie. list_source_campaigns et test_source_connection servent à vérifier la source avant d'agir. Le budget se donne toujours en USD — l'outil convertit dans l'unité de la régie — et respecte le plafond daily_spend_cap_usd du jeton. L'enchère ne se modifie pas au niveau campagne sur Meta, TikTok et MGID.

Outil Scopes Tier Description
list_source_campaigns sources:read T1 Inspect a traffic-source row: confirms the platform detected, lists any external_campaign_ids saved at source level, and tells you where to find per-campaign external IDs otherwise.
test_source_connection sources:read T1 Check that the API helper for a source is wired and identify which platform it targets (Kadam / Meta / TikTok / Taboola / MGID / ExoClick / PropellerAds).
pause_source_campaign sources:write T1 Pause a campaign directly on the ad platform (Kadam / Meta / TikTok / Taboola / MGID / ExoClick / PropellerAds).
resume_source_campaign sources:write T1 Resume a paused ad-platform campaign.
update_source_campaign_budget sources:write T2 Update the daily or total budget of an ad-platform campaign.
update_source_campaign_bid sources:write T2 Update the bid / CPC of an ad-platform campaign (Kadam rate, PropellerAds rate, Taboola cpc, ExoClick cpc).

meta-tools

Synthèse et diagnostic : brief du jour, anomalies, fatigue des landings, optimisations, plan de scale, santé du tracking, parcours d'un visiteur, attribution multi-touch. Tous lisent sans rien écrire, sauf rotate_offer_in_flows, qui réécrit les flows. cross_platform_scale_plan ne fait que proposer : les appels qu'il liste (duplicate_campaign, update_source_campaign_budget) restent à lancer.

Outil Scopes Tier Description
daily_briefing stats:read + campaigns:read T1 One-shot morning brief: KPI snapshot for today / yesterday / 7-day baseline, top winners and losers from yesterday, and a ready-made list of suggested_actions (pause / investigate) matching this server's Phase-3 action-tool schemas.
detect_creative_fatigue stats:read + landings:read T1 Compare landing-page performance in the last window_days against the previous window_days.
detect_anomalies stats:read + campaigns:read T1 Scan the last window_hours of traffic for three anomaly classes: bot-rate spikes (≥30%) per source, cost-without-conversion (>$10 spent with 0 conversions) per campaign, and ROI crashes (<-40%) per campaign.
suggest_optimizations stats:read + campaigns:read + offers:read + sources:read T1 Comprehensive read-only analysis over window_days across campaigns / offers / sources.
rotate_offer_in_flows offers:write + flows:write T2 Swap every occurrence of old_offer_id with new_offer_id inside every flow's offers[] schema.
cross_platform_scale_plan campaigns:read + sources:read T1 Read-only planner: given a winning campaign and a list of target traffic sources, returns an ordered list of tool calls (duplicate_campaign + update_source_campaign_budget) the AI or operator should run to clone the campaign onto each platform with a uniform test budget.
tracking_health stats:read T1 Tracking Health cockpit — surfaces SILENT tracking failures before they corrupt ad-platform optimisation.
get_visitor_journey stats:read T1 Unified cross-device customer journey — reconstructs one chronological timeline (ad click → prelander → conversion → native/Shopify order → email open/click → repeat purchase) by deterministically stitching a single identity across everything Trackily owns in one DB.
get_attribution_report stats:read T1 Multi-touch attribution report across the OWNED funnel (ads → offer/native order → email).

content-tools

Les landings : les générer avec l'AI Landing Builder, les créer depuis du HTML, les importer depuis une URL, les retoucher par fragments, les traduire, les brancher sur une campagne, auditer leur conformité. Deux traductions coexistent : translate_landing rejoue le modèle de copy de l'IA et ne vaut que pour une landing générée ; translate_landing_html traduit le HTML de n'importe quelle page locale (type local : écrite à la main, importée ou générée) vers une nouvelle landing ; une page de type url n'a pas de HTML à traduire.

Outil Scopes Tier Description
generate_ai_landing ai:generate + landings:write T2 Generate a new AI-authored landing page from a description.
generate_landing_for_offer ai:generate + landings:write + offers:read T2 Higher-level wrapper: reads the offer, infers the vertical from its name (antivirus, vpn, diet, …), and generates a landing page tailored to it.
generate_landing_variants ai:generate + landings:write T2 Create N A/B variants (1-8) of an existing AI landing.
get_ai_landing_detail landings:read T1 DEPRECATED since v38 landings unification.
translate_landing_html landings:write T2 Translate a LOCAL landing page (type 'local': its HTML is stored in Trackily) into another language, whoever wrote it — hand-written HTML, imported or cloned as local, MCP-created.
translate_landing ai:generate + landings:write T2 Translate an existing AI landing into N languages.
compliance_check landings:read + ai:generate T2 Audit a landing page for compliance with vertical-specific rules.
create_landing landings:write T1 Create a classic landing_pages row — the MCP equivalent of the admin "Add Landing Page" modal.
edit_landing_html landings:write T1 Edit a landing page's HTML by SENDING FRAGMENTS, not the whole document.
wire_landing_button landings:write T1 See what a funnel page WIRES, and wire one of its buttons.
set_landing_images landings:write T1 Replace a generated landing page's images with images YOU provide — the MCP image path.
update_landing landings:write T1 Update any landing_pages row (url / local / redirect_tracker / ai).
rerender_landing_from_meta landings:write T1 Re-render an AI-generated landing from the LLM copy + design DNA stored in its meta record.
import_landing_from_url landings:write T1 Download an external page and save it as a Trackily landing.
link_landing_to_campaign landings:write + campaigns:write + flows:write T1 Bridge an AI landing into a campaign flow so it starts receiving live traffic.

workflow-tools

Les workflows de cloaking du Visual Workflow Builder. L'agent les manipule en DSL (nodes + edges), sans toucher à la mise en page Drawflow. Tous exigent un scope settings:* : le preset operator les lit mais ne les écrit pas.

Outil Scopes Tier Description
list_cloaking_workflows settings:read T1 List every cloaking workflow configured on this Trackily instance (Visual Workflow Builder).
get_cloaking_workflow settings:read T1 Fetch a single cloaking workflow as a high-level DSL (nodes + edges).
list_workflow_node_types settings:read T1 Return the full catalog of Visual Workflow Builder node types (trigger / detect / action / advanced / route / destination) with their input/output counts, default config, and a one-line description.
create_cloaking_workflow settings:write T2 Create a new cloaking workflow from a DSL (nodes + edges).
update_cloaking_workflow settings:write T2 Patch an existing cloaking workflow.
delete_cloaking_workflow settings:write T2 Soft-delete a cloaking workflow (sets deleted_at).
duplicate_cloaking_workflow settings:write T1 Clone a workflow as a new INACTIVE draft (so the operator can edit before enabling).
assign_cloaking_workflow_to_campaign settings:write T2 Assign a cloaking workflow to a campaign (sets campaigns.cloaking_workflow_id).

Cf. Cloaking — Workflows.


ecommerce-tools

Les boutiques e-commerce EXTERNES connectées à Trackily (Shopify, WooCommerce…) et leur catalogue recopié localement. À ne pas confondre avec les boutiques hébergées par Trackily (store-tools) et leurs produits (native-commerce-tools). test_store_connection ne sait vérifier qu'une boutique Shopify.

Outil Scopes Tier Description
list_stores stores:read T1 List connected e-commerce stores (Shopify, WooCommerce, Stripe, …) with their platform, health, and aggregate counters (products, campaigns, revenue).
get_store_detail stores:read T1 Return detailed information about a single store (domain, platform, currency, sync status, aggregate counters).
test_store_connection stores:read T1 Ping the remote platform to verify the store's credentials.
list_products products:read T1 List products mirrored from connected stores into Trackily's local catalog.
sync_products_from_shopify products:write T1 Pull products from Shopify and upsert them into Trackily's local products table (idempotent via the sku UNIQUE index).
create_product products:write T2 Create a new product on the remote e-commerce platform AND mirror it in the Trackily products table.
update_product products:write T2 Partially update a product on the remote e-commerce platform (Shopify in Phase 2).
delete_product products:write T2 Permanently delete a product on the remote platform AND its Trackily mirror row.
clone_product_from_url products:write T2 Clone a Shopify product from a public URL into a target store in one step.
upload_product_image products:write T1 Attach an image to an existing product by URL.

ecommerce-orders-tools

Les commandes Shopify, les paniers abandonnés et les variantes des produits Shopify. Les commandes de la boutique native sont dans native-orders-tools.

Outil Scopes Tier Description
list_orders orders:read T1 List Shopify orders with filters (status, financial_status, fulfillment_status, created_at range, customer_id).
get_order_detail orders:read T1 Return the full detail of one Shopify order: line items, shipping/billing address, fulfillments, refunds, transactions.
search_orders orders:read T1 Search orders by order number / name prefix (e.g. "1001" or "#1001").
update_order_tags orders:write T1 Replace the tags on a Shopify order.
add_order_note orders:write T1 Set the internal note on a Shopify order (replaces any existing note).
cancel_order orders:write T2 Cancel a Shopify order. IRREVERSIBLE.
refund_order orders:write T2 Issue a refund on a Shopify order.
fulfill_order orders:write T2 Create a fulfillment for a Shopify order (legacy /orders/:id/fulfillments.json endpoint).
mark_order_as_paid orders:write T2 Mark an order as paid by creating a successful external sale transaction.
list_abandoned_checkouts checkouts:read T1 List abandoned checkouts (carts that reached the checkout page but never converted).
get_checkout_recovery_link checkouts:read T1 Return the recovery URL for a specific abandoned checkout.
add_product_variant products:write T2 Add a new variant to an existing Shopify product.
update_product_variant products:write T2 Update an existing Shopify variant.
delete_product_variant products:write T2 Permanently delete a variant from a Shopify product.

ecommerce-analytics-tools

Les KPI d'une boutique Shopify, ses clients et ses stocks. Les clients de la boutique native se lisent avec list_native_customers.

Outil Scopes Tier Description
get_shop_summary_stats analytics:read T1 Summary KPIs for a Shopify store over a date window: orders count, revenue, AOV, cancelled/refunded counts, unique customers (new vs returning), daily revenue breakdown.
get_best_selling_products analytics:read T1 Top N products by quantity sold or revenue in the window.
get_revenue_by_period analytics:read T1 Revenue + orders count bucketed by day / week / month.
get_conversion_metrics analytics:read T1 Rough funnel view: completed orders vs abandoned checkouts in the window + completion rate.
list_customers customers:read T1 List customers with optional date-range filters.
get_customer_detail customers:read T1 Full detail for one customer: profile, addresses, recent orders (up to 20), admin URL.
search_customers customers:read T1 Search customers via Shopify query syntax.
list_customer_orders customers:read + orders:read T1 List orders for a single customer.
create_customer customers:write T2 Create a new customer on a Shopify store.
update_customer customers:write T2 Partial update of a customer.
list_locations inventory:read T1 List all physical/virtual locations on the store.
list_inventory_levels inventory:read T1 List inventory levels per (inventory_item_id, location_id).
set_inventory_level inventory:write T1 Set the absolute stock quantity of an inventory item at a location.

ecommerce-marketing-tools

Collections, codes promo, script tags et webhooks d'une boutique Shopify.

Outil Scopes Tier Description
list_collections collections:read T1 List custom collections on a Shopify store.
get_collection_detail collections:read T1 Full detail of one collection (title, body_html, handle, sort_order, image, SEO, admin_url).
create_collection collections:write T2 Create a custom (manually-managed) collection.
update_collection collections:write T2 Partially update a custom collection.
delete_collection collections:write T2 Delete a custom collection.
add_product_to_collection collections:write T1 Add a product to a custom collection (creates a collect row).
remove_product_from_collection collections:write T1 Remove a product from a custom collection.
list_discount_codes discounts:read T1 List all price rules and their discount codes.
create_discount_code discounts:write T2 Create a discount code in one call (creates price rule + code together).
delete_discount_code discounts:write T2 Delete a discount code. Two-step with confirm_token.
create_price_rule discounts:write T2 Create a standalone price rule (automatic discount — no code).
list_script_tags marketing:read T1 List all script tags injected on the storefront.
create_script_tag marketing:write T2 Inject a JS file on the storefront.
delete_script_tag marketing:write T1 Remove a script tag from the storefront.
list_webhooks marketing:read T1 List all registered webhooks.
create_webhook marketing:write T2 Subscribe to a Shopify event.
delete_webhook marketing:write T1 Unsubscribe a webhook. Tier-1 safe — removal stops future deliveries but can always be re-created.

ecommerce-content-tools

Pages, blogs et articles Shopify, metafields des produits, et deux outils d'IA sur les fiches produit (description, traduction). seo_audit_product n'appelle aucun LLM : ce sont des règles.

Outil Scopes Tier Description
list_pages content:read T1 List Shopify CMS pages (About, Contact, Policies, custom pages).
create_page content:write T2 Create a new CMS page. Two-step with confirm_token.
update_page content:write T2 Partial update of a CMS page.
delete_page content:write T2 Delete a CMS page. Two-step with confirm_token.
list_blogs content:read T1 List blogs on the store. Most stores have 1 blog ("News" by default).
list_articles content:read T1 List articles in a blog. Filter by tag or published_status.
create_article content:write T2 Create a blog article. Two-step with confirm_token.
update_article content:write T2 Partial update of a blog article.
delete_article content:write T2 Delete a blog article. Two-step with confirm_token.
list_product_metafields products:read T1 List custom metafields set on a product.
set_product_metafield products:write T1 Create or update a product metafield.
delete_product_metafield products:write T1 Remove a metafield from a product.
generate_product_description_ai products:write + ai:generate T1 Use an LLM (provider configured in Settings → AI Landing Builder) to write a fresh product description applying a copywriting framework.
translate_product products:write + ai:generate T1 Translate a product's title + body_html + tags to another language via LLM.
seo_audit_product products:read T1 SEO audit of a product: title length, description length, handle quality, alt-text coverage on images, tags, SEO metafields.

ecommerce-orchestration-tools

Les briefings Shopify (jour, semaine), les alertes de stock et de produits sans vente, l'audit du catalogue, et deux opérations en masse.

Outil Scopes Tier Description
daily_shopify_briefing analytics:read + orders:read + checkouts:read T1 One-shot routine for operators: revenue + orders today vs yesterday, last-7d best sellers, abandoned checkouts, checkout funnel, suggested actions.
detect_stock_alerts products:read + inventory:read T1 Scan active products and flag variants with inventory_quantity ≤ threshold.
detect_sluggish_products products:read + analytics:read T1 Find active products with 0 sales over the last N days.
weekly_performance_report analytics:read + orders:read T1 This-week vs last-week KPIs (orders, revenue, AOV, new customers) with WoW deltas, plus a 28-day daily revenue series and top 10 revenue products this week.
get_shop_info stores:read T1 Shop metadata: name, email, domain, plan, currency, timezone, country, owner.
check_shop_health products:read T1 Catalog quality audit: products without images, short/missing descriptions, variants without SKU, zero-inventory variants, missing alt text, overlong titles.
auto_fulfill_ready_orders orders:write T2 Bulk-fulfill every paid-but-unfulfilled order created in the last N days.
bulk_update_product_prices products:write T2 Change prices on multiple products in one call.

native-commerce-tools

Les produits hébergés par Trackily — pas Shopify — et les zones de livraison. Physique ou numérique se décide par produit, ce qui permet à un même bundle de mêler un colis et un bonus numérique. Le prix vit sur les variantes : create_native_product le pose sur celle qu'il crée (price), set_variant_pricing (merchandising-tools) le règle variante par variante. Écrire une zone de livraison exige settings:write, absent du preset operator.

Outil Scopes Tier Description
create_native_product products:write T1 Create a product in the Trackily-hosted catalogue — NOT a Shopify product.
update_native_product products:write T1 Change a native product's name, description, slug, currency, images, its physical/digital type, or its status.
delete_native_product products:write T2 Remove a product from the native catalogue.
bulk_native_products products:write T2 Apply one action to several native products at once: activate, deactivate (back to draft — the product stays with its variants and history, stops selling; this is how you archive), or delete (soft, recoverable; the product's auto-offer stops selling with it; past orders keep their lines).
list_native_products products:read T1 List products in the native commerce catalog (the Trackily-hosted storefront, distinct from the Shopify-synced products surface).
get_native_product_detail products:read T1 Fetch a single native commerce product with its full options + variants matrix.
generate_landing_for_product ai:generate + landings:write + products:read T2 Generate an AI-authored landing page tied to a native_products row.
list_shipping_zones settings:read T1 List every shipping zone with its rates.
get_shipping_zone settings:read T1 Fetch a single shipping zone with all its rates.
create_shipping_zone settings:read + settings:write T2 Create a shipping zone with optional inline rates.
update_shipping_zone settings:read + settings:write T2 Update a shipping zone's name / countries / status / position.
delete_shipping_zone settings:read + settings:write T2 Delete a shipping zone (cascades to its rates).
create_shipping_rate settings:read + settings:write T2 Add a rate to an existing zone.
update_shipping_rate settings:read + settings:write T2 Update a single rate. Tier-2.
delete_shipping_rate settings:read + settings:write T2 Delete a single shipping rate.

Cf. Commerce.


native-orders-tools

Les commandes et les clients de la boutique native. À lire avant de citer un chiffre d'affaires : un funnel écrit une commande par étape vendue, et list_native_orders les replie — une ligne par achat, la vente principale seule. Son total ne vaut donc que la première étape ; ce que l'acheteur a réellement payé est total_parcours, et parcours_etapes dit combien de commandes l'achat couvre. include_upsells: true rend la vue à plat.

Outil Scopes Tier Description
list_native_customers orders:read T1 People who bought on a Trackily-hosted storefront, aggregated from native orders (order count, total spent, first/last order).
list_native_orders orders:read T1 List native commerce orders (the storefront Trackily hosts itself).
get_native_order_detail orders:read T1 Fetch a single native commerce order with line items, customer info, shipping address, transactions ledger, and current payment + fulfillment status.
get_native_product_stats reports:read + products:read T1 Performance bundle for a single native commerce product: KPI summary (clicks/conversions/revenue/cost/CR/EPC/AOV/profit), daily breakdown, linked campaigns, linked landings (with A/B price-override badges), and variant performance breakdown.
mark_native_order_paid orders:write T2 Mark a native commerce order as paid.
fulfill_native_order orders:write T2 Update the fulfillment status of a native commerce order, optionally attaching a tracking number + carrier.
cancel_native_order orders:write T2 Cancel a native commerce order.
refund_native_order orders:write T2 Trigger a Stripe or PayPal refund on a paid native commerce order.

Exemple list_native_orders :

// Requête
{
  "name": "list_native_orders",
  "arguments": { "limit": 10, "payment_status": "paid" }
}

// Réponse (extrait : chaque commande porte aussi sous-total, frais de port, taxes,
// remise, moyen de paiement, boutique, landing et campagne)
{
  "status": "ok",
  "tool": "list_native_orders",
  "total": 1,
  "count": 1,
  "orders": [
    {
      "id": 12,
      "order_number": "TR-000012",
      "created_at": "2026-05-18T14:22:11.421Z",
      "customer_email": "client@example.com",
      "currency": "EUR",
      "total": 49,
      "payment_status": "paid",
      "fulfillment_status": "fulfilled",
      "funnel_id": null,
      "parcours_etapes": 1,
      "total_parcours": 49
    }
  ]
}

email-tools

L'e-mail marketing : listes, séquences, relais SMTP, abonnés, suppression globale, déclencheurs postback → e-mail. Ajouter un relais SMTP exige aussi settings:write. Cf. la section Email pour les concepts.

Outil Scopes Tier Description
list_email_smtp_servers email:read T1 List every configured SMTP relay (Gmail, SendGrid, Postmark, SES, …) with quotas, effective send counts (capacite) and the same send verdict as the admin screen (verdict: peut_envoyer true/false/null, etat, motif, libelle in French — the screen calls it « Peut envoyer »).
list_email_lists email:read T1 List every email list (autoresponder list) with subscriber counts, opt-in mode, tracking flags, and how many landing pages are bound to it.
get_email_list_detail email:read T1 Full picture of an email list: settings + subscriber-status histogram + 10 most-recent subscribers + sequences attached + landings bound to it.
list_email_sequences email:read T1 List autoresponder sequences.
get_email_sequence_detail email:read T1 Inspect a sequence: settings + every step (position, delays, subject, 200-char body preview, active flag).
list_email_subscribers email:read T1 List subscribers of a list.
get_email_subscriber_timeline email:read T1 Per-subscriber audit + engagement intel: full event timeline (opens/clicks/unsubs/bounces) with timestamps, real-vs-prefetch counters, hour-of-day histogram of opens (24 buckets), and the learned preferred_send_hour used by Send Time Optimization.
list_email_sends email:read T1 Tail the email sends audit log.
get_email_metrics email:read T1 Aggregate KPIs over the last N days: sent/failed/bounced/queued counts + open rate, click rate, bounce rate.
list_email_suppression email:read T1 List globally suppressed email addresses (cross-list).
create_email_smtp_server email:write + settings:write T2 Add a new SMTP relay (e.g. SendGrid, Postmark, SES).
create_email_list email:write T1 Create an email list. smtp_server_id is OPTIONAL — you can collect subscribers first and attach an SMTP relay later via update_email_list.
update_email_list email:write T1 Patch list settings (any subset of fields).
delete_email_list email:write T2 Soft-delete an email list.
create_email_sequence email:write T1 Create an autoresponder sequence on a list.
add_email_sequence_step email:write T1 Append (or insert) a step in a sequence.
update_email_sequence_step email:write T1 Patch a sequence step. Tier-1.
enroll_email_subscriber email:write T1 Enroll an email into a list and (unless skip_double_optin or list.double_opt_in is false) start the sequence.
unsubscribe_email_subscriber email:write T1 Manually unsubscribe an email from a single list.
add_to_email_suppression email:write T1 Add an email to the GLOBAL suppression list (cross-list).
bind_landing_to_email_list email:write + landings:write T1 Bind (or unbind) a landing page to an email list.
send_test_email email:write T1 Send ONE test email immediately (synchronous, bypasses the queue).
list_email_conversion_triggers email:read T1 List active postback→email conversion triggers.
create_email_conversion_trigger email:write T1 Create a new postback→email trigger.
update_email_conversion_trigger email:write T1 Patch a conversion trigger (any subset of fields).
delete_email_conversion_trigger email:write T1 Soft-delete a conversion trigger.

Exemple enroll_email_subscriber :

// Requête
{
  "name": "enroll_email_subscriber",
  "arguments": {
    "list_id": 7,
    "email": "client@example.com",
    "name": "Marie Dupont",
    "custom_fields": { "city": "Paris" },
    "source": "manual:admin"
  }
}

// Réponse (extrait : `subscriber` est la ligne complète de l'abonné)
{
  "ok": true,
  "subscriber": {
    "id": 421,
    "list_id": 7,
    "email": "client@example.com",
    "name": "Marie Dupont",
    "status": "subscribed",
    "custom_fields": { "city": "Paris" },
    "source": "manual:admin"
  },
  "queued_steps": 3
}

Les autres issues : awaiting_confirmation: true quand la liste est en double opt-in (l'e-mail de confirmation part, aucune étape n'est programmée) ; reason: "previously_opted_out" pour une adresse désinscrite, rebondie ou plaignante (rien n'est programmé) ; skipped: true avec reason = suppressed, list_inactive, disposable ou no_mx quand l'adresse n'est pas inscrite du tout. Une erreur revient sous la forme { "error": "…" }.


whatsapp-tools

Le module WhatsApp Marketing vu par l'agent, sous sa propre paire de scopes whatsapp:read / whatsapp:write : un jeton taillé pour l'e-mail n'y a pas accès. Deux outils exigent un scope de plus, parce qu'ils modifient autre chose qu'un objet WhatsApp : bind_landing_to_whatsapp_list (landings:write) et bind_campaign_to_whatsapp_list (campaigns:write), les jumeaux de bind_landing_to_email_list. Sur un compte de l'API officielle, chaque message est facturé par le fournisseur et engage la note de qualité du numéro ; sur la voie « web », rien n'est facturé, mais chaque envoi engage la SIM elle-même, et un numéro banni est perdu. Les descriptions de send_test_whatsapp et de simulate_whatsapp_routing font cette distinction. Un jeton créé avant l'arrivée de ces scopes ne voit aucun de ces outils — cf. Scopes.

Ce que l'agent ne peut pas faire, délibérément :

  • Créer ou modifier un compte WhatsApp. Les identifiants se saisissent dans l'admin ; aucun schéma d'entrée ne porte de champ de secret, et les comptes se lisent jetons masqués.
  • Démarrer ou couper l'appairage d'une SIM (voie « web », par WhatsApp Web). get_whatsapp_pairing_state constate l'état ; le QR ne sort jamais dans une réponse.
  • Rattacher une SIM à un groupe. Le groupe se crée ici, le rattachement se fait à l'écran.
  • Poser un blocage à la place du client. add_to_whatsapp_suppression n'accepte que manual et invalid_number. Un STOP (stop_keyword) ou une désinscription remontée par le fournisseur (opt_out) ne se retire pas d'ici.

Chaque outil vérifie la licence à l'appel : si elle n'inclut pas la fonctionnalité whatsapp_marketing, il répond par un refus lisible qui dit comment l'obtenir, sans rien lire ni écrire.

Quatre familles à connaître :

  • Modèles locaux (*_whatsapp_local_template) : seulement sur un compte du fournisseur web, qui n'a pas de catalogue chez un fournisseur. Les variables {{1}}, {{2}}… se dérivent du texte, sans trou. La catégorie (MARKETING ou UTILITY) décide qui reçoit le message : elle doit dire la vérité sur le contenu. Un texte UTILITY qui ressemble à une promotion (remise chiffrée, code promo, soldes…) est refusé (contenu_promotionnel), comme les valeurs fixes promotionnelles d'une étape de séquence ; utility_confirme: true l'outrepasse par un jeton de confirmation, et l'agent ne le fait qu'avec l'accord de l'opérateur, qui a vu les passages en cause.
  • Séquences et commandes annulées : create_whatsapp_sequence accepte cible_commande (active par défaut, ou annulee pour relancer un client qui a annulé : délais comptés depuis l'annulation, une fois par client, jamais tant qu'une autre de ses commandes tient dans la liste — un doublon annulé ne relance pas). La cible ne se change plus ensuite, et une séquence annulee ne peut pas être la séquence par défaut d'une liste. list_whatsapp_subscribers filtre par statut_commande, avec la même règle : une commande annulée dont une autre commande du même client tient dans la liste (doublon, rachat en cours dans un funnel à upsells) se lit active.
  • Rotation des SIM : chaque groupe porte une vocation (transactionnel, marketing, mixte) ; les règles de routage s'évaluent dans l'ordre, et la première qui correspond désigne le groupe — sauf si ce groupe n'a pas la vocation de l'envoi, est en pause ou archivé : la règle est alors ignorée (l'écart est journalisé) et la suivante est essayée. simulate_whatsapp_routing dit quelle SIM partirait et pourquoi les autres sont écartées, sans rien envoyer ni écrire.
  • Numéros : les recherches par numéro de list_whatsapp_sends, list_whatsapp_suppression et list_whatsapp_subscribers couvrent toutes les formes équivalentes d'un même numéro. Pour les deux premières, un numéro écrit en national (sans indicatif) exige pays (ISO-2) : sans lui, une liste vide ne prouve rien.
Outil Scopes Tier Description
list_whatsapp_accounts whatsapp:read T1 Liste les comptes WhatsApp (numéros) configurés : fournisseur, état, qualité, palier, clé de webhook.
get_whatsapp_account whatsapp:read T1 Détail d’un compte WhatsApp : fournisseur, configuration non secrète, état de la dernière vérification, limites.
verify_whatsapp_account whatsapp:write T2 Demande au fournisseur si les identifiants du compte sont bons, et rafraîchit qualité et palier.
sync_whatsapp_templates whatsapp:write T1 Resynchronise les modèles du compte depuis le fournisseur (noms, langues, catégories, statuts d’approbation).
list_whatsapp_templates whatsapp:read T1 Modèles connus d’un compte, avec leur statut et leurs variables.
list_whatsapp_lists whatsapp:read T1 Listes WhatsApp avec leurs compteurs d’abonnés par statut.
get_whatsapp_list whatsapp:read T1 Détail d’une liste : réglages, compteurs par statut, nombre de séquences et d’envois en file.
create_whatsapp_list whatsapp:write T1 Crée une liste WhatsApp. Le slug se dérive du nom s’il n’est pas donné, et se suffixe d’un numéro s’il est déjà pris (« acheteurs-maroc-2 ») ; un slug FOURNI et déjà pris est refusé, jamais suffixé dans le dos de l’opérateur.
update_whatsapp_list whatsapp:write T1 Modifie une liste (tous champs optionnels ; seuls ceux fournis changent).
archive_whatsapp_list whatsapp:write T2 Archive une liste. TIER 2 : premier appel = aperçu (abonnés, envois encore en file) + confirm_token ; second appel avec le MÊME argument plus confirm_token = archivage.
list_whatsapp_subscribers whatsapp:read T1 Abonnés d’une liste. La recherche porte sur le nom et le numéro ; un numéro est cherché sous toutes ses formes équivalentes (un mobile brésilien saisi avec le 9 se retrouve sous sa forme à 8 chiffres).
enroll_whatsapp_subscriber whatsapp:write T1 Inscrit un numéro dans une liste et lance sa séquence par défaut.
unsubscribe_whatsapp_subscriber whatsapp:write T1 Désinscrit un abonné de SA liste et annule ses envois encore en file.
get_whatsapp_subscriber_timeline whatsapp:read T1 Chronologie d’un abonné : sa preuve de consentement complète (texte accepté, version, langue, IP et navigateur de qui a coché), ses envois et tous ses événements, y compris ceux arrivés sous une autre forme de son numéro (un STOP, un clic sur un bouton).
list_whatsapp_sequences whatsapp:read T1 Séquences, filtrables par liste.
get_whatsapp_sequence whatsapp:read T1 Détail d’une séquence : ses étapes dans l’ordre, le modèle de chacune et son statut d’approbation.
create_whatsapp_sequence whatsapp:write T1 Crée une séquence sous une liste.
update_whatsapp_sequence whatsapp:write T1 Modifie une séquence (nom, description, activation).
add_whatsapp_sequence_step whatsapp:write T2 Ajoute une étape à la fin d’une séquence.
update_whatsapp_sequence_step whatsapp:write T2 Modifie une étape. Le modèle et les paramètres sont revérifiés : une étape ne peut pas devenir inenvoyable par une modification.
delete_whatsapp_sequence_step whatsapp:write T1 Supprime une étape et annule ses envois encore en file.
list_whatsapp_sends whatsapp:read T1 Journal des envois, du plus récent au plus ancien.
get_whatsapp_metrics whatsapp:read T1 Mesures d’envoi sur une portée et une seule : list_id, sequence_id OU account_id.
send_test_whatsapp whatsapp:write T2 Envoie UN vrai message WhatsApp de test (kind « test »).
list_whatsapp_suppression whatsapp:read T1 Registre des numéros bloqués (STOP, plaintes, numéros invalides).
add_to_whatsapp_suppression whatsapp:write T1 Bloque un numéro sur TOUTES les listes, sous toutes ses formes équivalentes.
remove_from_whatsapp_suppression whatsapp:write T1 Retire un blocage, par identifiant de ligne ou par numéro (toutes les écritures du contact partent ensemble ; si l’une d’elles est verrouillée, RIEN n’est retiré).
list_whatsapp_conversion_triggers whatsapp:read T1 Déclencheurs postback → liste WhatsApp.
create_whatsapp_conversion_trigger whatsapp:write T1 Crée un déclencheur : quand un postback tombe pour offer_id (ou pour toute offre si absent), l’acheteur est inscrit dans target_list_id et reçoit sa séquence par défaut.
update_whatsapp_conversion_trigger whatsapp:write T1 Modifie un déclencheur (tous champs optionnels).
bind_landing_to_whatsapp_list whatsapp:write + landings:write T1 Lie (ou détache) une landing à une liste WhatsApp : chaque lead de son formulaire qui porte un téléphone y est inscrit et reçoit la séquence par défaut de la liste.
bind_campaign_to_whatsapp_list whatsapp:write + campaigns:write T1 Lie (ou détache) une campagne à une liste WhatsApp post-achat : chaque commande payée de la campagne qui porte un téléphone y inscrit l’acheteur, qui reçoit la séquence par défaut de la liste.
get_whatsapp_settings whatsapp:read T1 Les réglages WhatsApp de l’opérateur, tels qu’ils s’appliquent vraiment (une valeur illisible en base est rendue à son défaut).
update_whatsapp_settings whatsapp:write T2 Change un ou plusieurs réglages WhatsApp.
list_whatsapp_local_templates whatsapp:read T1 Modèles LOCAUX d’un compte « web » (WhatsApp Web, voie non officielle) : ceux qui s’écrivent dans Trackily, faute de catalogue chez un fournisseur.
create_whatsapp_local_template whatsapp:write T2 Écrit un modèle local sur un compte « web ».
update_whatsapp_local_template whatsapp:write T2 Modifie un modèle local (tous champs optionnels ; seuls ceux fournis changent).
delete_whatsapp_local_template whatsapp:write T1 Supprime un modèle local.
get_whatsapp_pairing_state whatsapp:read T1 État de la session WhatsApp Web d’un compte « web » : absente, appairage en cours, connectee, deconnectee ou bannie, avec le numéro appairé, la date d’appairage et l’échauffement du jour.
list_whatsapp_groups whatsapp:read T1 Groupes de SIM et leur VOCATION : « transactionnel » (confirmations et suivi de commande), « marketing » (campagnes et remarketing), « mixte » (l’opérateur qui n’a qu’une SIM — un choix explicite, jamais un défaut).
create_whatsapp_group whatsapp:write T1 Crée un groupe de SIM pour un métier.
update_whatsapp_group whatsapp:write T1 Modifie un groupe (tous champs optionnels ; seuls ceux fournis changent).
archive_whatsapp_group whatsapp:write T2 Archive un groupe de SIM.
list_whatsapp_routing_rules whatsapp:read T1 Règles de routage, dans leur ordre d’évaluation : la PREMIÈRE dont toutes les conditions correspondent désigne son groupe.
create_whatsapp_routing_rule whatsapp:write T1 Crée une règle : quand toutes ses conditions correspondent, l’envoi part d’une SIM de groupe_id.
update_whatsapp_routing_rule whatsapp:write T1 Modifie une règle (tous champs optionnels ; seuls ceux fournis changent).
simulate_whatsapp_routing whatsapp:read T1 Dit quelle SIM partirait pour ce numéro, ce type de message et cette liste, par quel chemin (origine, et regle_id quand une règle a gagné), et pourquoi chaque autre SIM candidate est écartée — la seule façon honnête de vérifier des règles sans envoyer un vrai message (send_test_whatsapp, lui, part pour de vrai : facturé par le fournisseur, ou parti du numéro d’une SIM « web »).

Les smartlinks : des URL publiques /s/:slug qui envoient chaque visiteur vers une paire (offre, landing facultative) de leur pool, choisie selon la stratégie du smartlink (routing_strategy) : epc_ranked par défaut, qui favorise l'EPC observé en gardant une part d'exploration ; sinon waterfall, weighted, round_robin ou predictive. Un smartlink naît avec un pool vide : tant qu'aucune paire n'est ajoutée (add_offer_to_smartlink), et chaque fois qu'aucune ne convient au visiteur, il envoie vers son repli — fallback_offer_id, sinon fallback_url — et répond 404 s'il n'en a aucun. En pause, /s/:slug répond 404.

Outil Scopes Tier Description
list_smartlinks offers:read + landings:read T1 List every smartlink (auto-optimising /s/:slug URLs that route visitors to the best offer in a configurable pool).
get_smartlink_detail offers:read + landings:read T1 Fetch a single smartlink with its full pool (offers + landings joined) and the last 20 routing decisions from smartlink_routes.
create_smartlink offers:read + landings:write T1 Create a new smartlink (the /s/:slug definition).
add_offer_to_smartlink offers:read + landings:write T2 Add an (offer, optional landing) pair to a smartlink's pool with per-pair filters and weight/priority.
update_smartlink_offer offers:read + landings:write T2 Patch any combination of filter / weight / priority / cap / payout-floor fields on an existing pool row (smartlink_offers.id).
remove_offer_from_smartlink offers:read + landings:write T2 Hard-delete a pool row (matched on smartlink_id + offer_id + landing_id).
pause_smartlink offers:read + landings:write T1 Set is_active=false. /s/:slug starts returning 404.
resume_smartlink offers:read + landings:write T1 Set is_active=true. /s/:slug serves traffic again.
get_smartlink_routing_stats offers:read + reports:read T1 Aggregate smartlink_routes over a time window, grouped by offer / landing / geo / device / via.

platform-tools

Trois réglages de la plateforme que l'admin a toujours eus : les domaines de tracking, les types de conversion, les règles de notification. Créer et modifier s'exécutent directement, supprimer passe par l'aperçu. Toutes les écritures exigent settings:write, absent du preset operator.

Outil Scopes Tier Description
list_domains settings:read T1 List the tracking domains (archived ones excluded — they are no longer served): hostname, bound campaign, SSL flag, active state, what each one serves (usages) and a server-computed readiness verdict {code, famille, motif, a_faire} — the same verdict the Domains screen shows.
create_domain settings:write T1 Register a new tracking domain.
update_domain settings:write T1 Change a tracking domain: rebind it to another campaign, toggle SSL, or activate/deactivate it.
delete_domain settings:write T2 Delete a tracking domain.
list_conversion_types settings:read T1 List the conversion types postbacks can report (name, slug, payout type, colour, active).
create_conversion_type settings:write T1 Create a conversion type (e.g. "Trial", "Sale", "Rebill") so postbacks can classify conversions beyond the default.
update_conversion_type settings:write T1 Rename a conversion type, change its payout type or report colour, or activate/deactivate it.
delete_conversion_type settings:write T2 Delete a conversion type.
list_notification_rules settings:read T1 List multi-channel notification rules: which event fires them, their conditions, the channels they notify (Slack / Telegram / email / webhook), cooldown and last trigger.
create_notification_rule settings:write T1 Create a notification rule so the operator is alerted when something happens (e.g. a conversion lands, ROI drops, bot rate spikes).
update_notification_rule settings:write T1 Update a notification rule — rename it, change its event, conditions, channels, message template or cooldown, or pause it with is_active=false.
delete_notification_rule settings:write T2 Delete a notification rule.

payment-tools

Ce que l'agent sait des comptes de paiement : leur existence et leur état, jamais leurs clés. Il peut activer, désactiver ou choisir le compte par défaut ; créer un compte ou changer une clé se fait dans l'écran Payment Methods de l'admin (accordéon E-Commerce) ou par l'OAuth Stripe — une clé ne transite pas par une conversation d'agent. Désactiver un compte rend impayables les offres qui en dépendaient, et un funnel live qui l'utilise refusera d'être publié.

Outil Scopes Tier Description
list_payment_accounts settings:read T1 List the payment accounts configured on this install — what a native offer can be paid with.
set_payment_account_state settings:write T1 Turn a payment account on or off, or make it the default.

Cf. Commerce — comptes de paiement.


truth-tools

La Product Truth : la fiche vérifiée d'un produit, que remplit le client ou un LLM qui fait sa recherche à travers ce serveur MCP. Chaque fait porte un statut — verified (exige une source_url), customer_reported, inferred, unknown — et un fait verified sans source est refusé. save_product_truth remplace la fiche entière et incrémente sa version : relis-la avec get_product_truth avant de la renvoyer. generate_landing_for_offer et generate_landing_for_product la reprennent seuls ; generate_ai_landing la prend par product_truth_id.

Outil Scopes Tier Description
save_product_truth landings:write T1 Save the PRODUCT TRUTH — the verified knowledge base of a product, filled by the client or by an LLM doing web research through this MCP.
get_product_truth landings:read T1 Read a Product Truth in full — by truth_id, by subject (subject_type + subject_id), or by name for a free-standing subject (subject_type "libre" + subject_name).
list_product_truths landings:read T1 List the Product Truths on this install — subject, research_state, fact counts by status, version.

theme-tools

Les thèmes des boutiques natives. Un thème est une DONNÉE, pas du HTML : l'agent remplit un schéma validé, donc son résultat est correct ou refusé. L'ordre de travail : get_theme_vocabulary (ce qu'un thème peut dire), preview_theme (voir avant d'écrire), create_theme ou update_theme, puis un nouvel aperçu. set_native_store_theme (store-tools) applique un thème à une boutique.

Outil Scopes Tier Description
get_theme_vocabulary landings:read T1 CALL THIS FIRST when working on themes.
list_themes landings:read T1 List saved storefront themes with their archetype, whether they are starters, and how many stores use each.
get_theme landings:read T1 Full detail of one theme: its DNA (tokens) and per-page section configuration.
preview_theme landings:read T1 Get a URL rendering a theme with neutral placeholder copy.
create_theme landings:write T1 Create a storefront theme.
update_theme landings:write T1 Adjust a theme. The dna object is MERGED into the existing one, so you can send a single colour without resending everything.
delete_theme landings:write T2 Delete a theme. Two-step: the first call returns a preview naming the stores that would lose their default theme, plus a confirm_token to pass back.

funnel-tools

Les funnels : une suite ordonnée d'étapes typées, reliées par des transitions. L'agent passe par le même chemin que l'admin — un funnel composé par un LLM n'a droit à aucune validation plus laxiste. L'ordre de travail : la resource trackily://funnels/vocabulary (ce qu'on peut écrire), get_funnel_pickers (les boutiques, pages et offres qui existent), create_funnel (l'en-tête, en brouillon), set_funnel_composition (étapes et transitions, remplacement entier), preview_funnel, puis publish_funnel, qui refuse en nommant chaque contrôle manqué. Le plus court chemin reste un modèle : list_funnel_templates, puis create_funnel_from_template.

Outil Scopes Tier Description
list_funnels landings:read T1 List funnels with status (draft|live|paused), store, domain, currency and step count.
get_funnel landings:read T1 Full detail of one funnel: header, ordered steps (with A/B variants), transitions, the current validation result (errors name the step and the rule) and minimal per-step stats (views, unique_views, submits).
list_funnel_templates landings:read T1 The ready-made funnel templates: structure AND pages already written (lead capture, tripwire, long sales page, cash-on-delivery, affiliate with a cloaking gate, trial then refill).
create_funnel_from_template landings:write T1 Create a complete funnel from a template: steps, transitions and pages in one call.
get_funnel_pickers landings:read T1 CALL BEFORE composing: the ids you may reference — stores (with currency), domains (with store), landing pages (with wa_list_id and wa_liste_active: linked to an active WhatsApp list), offers (with cod_enabled), cloaking workflows, e-mail sequences, and whatsapp { licence, option_active, signature }: all three must be true for a step’s settings.wa_consent_checkbox to show the WhatsApp consent box.
create_funnel landings:write T1 Create the funnel HEADER in draft (no steps yet).
update_funnel landings:write T1 Change header fields only (status is NOT writable here — use publish/pause/unpublish): name, funnel_path, domain_id, store_id, currency, purchase_policy (each_order|consolidated), upsell_window_min, upsell_window_max_min, cod_confirm_step, cod_surcharge, pixels, settings.
duplicate_funnel_for_language landings:write T2 Duplicate a whole funnel (steps, transitions, variants, offers, settings) into a NEW draft funnel, optionally TRANSLATING every landing page into language.
get_funnel_family landings:read T1 List every funnel in the same family as this one — the original and all its language/market copies, with their language, currency and status.
set_funnel_composition landings:write T1 REPLACE the whole composition (steps + transitions) in one transaction — anything not sent is deleted.
publish_funnel landings:write T1 Go LIVE. Runs the live checks against the database: domain attached to the store (live_domain, live_domain_store), a page on every visible step (live_page, live_page_missing), offers belonging to the store and payable — active payment account or COD — (live_offer_store, live_offer_payment), no subscription offer, active workflows, terminal last step (last_terminal).
pause_funnel landings:write T1 Pause a live funnel: every /f URL answers 404 until published again.
unpublish_funnel landings:write T1 Back to draft: served only with the signed preview link from preview_funnel.
delete_funnel landings:write T2 Delete a funnel (refused while live — pause first — and while buyers are still inside an upsell window: retry once it closes).
preview_funnel landings:read T1 Openable URLs of the funnel on its domain: the entry step and every step.
get_funnel_stats landings:read T1 Funnel analytics: traffic per step, money from orders (net of refunds), A/B variants with a two-proportion z-test, and the entry-source breakdown (smartlink / campaign / source / direct).
manage_funnel_postbacks landings:write T1 List, create, update or delete a funnel's postbacks (notify an affiliate network on each conversion).
insert_funnel_template landings:write T1 Insert a shipped template INTO an existing funnel — its steps AND its pages.
attach_landing_to_funnel landings:write T1 Attach an EXISTING landing page (type local or ai) to a funnel: either replace the page of an existing step (step_id) or append a new step at the end (type: optin | presell | sales | checkout | upsell | thankyou; a checkout/upsell needs offer_ids — a checkout defaults to the page's native_offer_id).
detach_landing_from_funnel landings:write T1 Detach a landing page from a funnel step.
get_landing_funnels landings:read T1 Which funnels serve these landing pages, and in which role: for each landing_id, the list of {funnel_id, funnel_name, funnel_status, step_id, step_slug, step_type, position, role, via: step|variant}.
get_funnel_journal landings:read T1 What a funnel's automations actually did: the e-mail sequences it enrolled (per step and outcome, with enrol / exit-on-purchase / failure state) and the postbacks that will not go through on their own (abandoned after 8 attempts, or definitively refused).
declare_funnel_variant_winner landings:write T1 Mark one A/B variant of a step as the winner (timestamps winner_declared_at).
get_funnels_by_entry landings:read T1 The funnels fed by one entry source — a smartlink, a campaign or a traffic source — with sessions, orders and NET revenue (refunds deducted, bots excluded, previews excluded).
propose_funnel landings:write T1 Describe what you want to sell, in one sentence; get a funnel proposal back.

merchandising-tools

Ce qui fait qu'une boutique ressemble à une boutique : le prix de référence derrière le prix barré et le badge -N %, les pastilles de couleur des options, la marque et les tags. Tout s'écrit par le module qui affiche la vitrine : une valeur qui produirait un badge absurde est refusée à l'écriture — un compare_at_price qui ne dépasse pas le prix de vente, par exemple. set_product_options régénère la matrice des variantes.

Outil Scopes Tier Description
get_product_merchandising products:read T1 What the storefront actually shows for a native product: sale state, discount percent, per-variant pricing, option swatches and the badges that will render.
set_product_merchandising products:write T1 Set the reference ("was") price, brand, tags or category of a native product.
set_product_options products:write T1 Define a native product's option axes (max 3) and their values.
set_variant_pricing products:write T1 Set price and/or reference price per variant, so a sale can apply to one size only.

store-tools

Les boutiques hébergées par Trackily (« Storefronts » dans l'admin) : les créer, y pointer un ou plusieurs domaines, les dupliquer, les exporter vers une autre installation. Un nom qui dit native_store vise toujours une boutique native (list_native_stores, create_native_store, set_native_store_theme…), mais tous les outils de ce module ne le disent pas : les codes d'export (*_store_export_code*, import_store_from_code) et reset_demo_store portent eux aussi sur les boutiques natives. À l'inverse, list_stores, get_store_detail et test_store_connection visent les boutiques externes connectées (ecommerce-tools).

Trois règles à connaître : une boutique qui a vendu ne se supprime pas, elle s'archive ; la duplication par marché ne convertit jamais une devise — plan_market_duplication liste chaque prix à fixer avant de créer quoi que ce soit ; un code d'export TRKX1 emporte produits, offres, landings et funnels, jamais les comptes de paiement, les commandes, les clients ni les domaines.

Outil Scopes Tier Description
list_native_stores stores:read T1 List the operator's own storefronts — NOT the Shopify integrations that list_stores returns.
get_native_store stores:read T1 One storefront in detail: its domains, paid-order totals over a window, its best-earning products, its offers with bundle and landing counts, recent orders, and what is still missing before it can sell.
create_native_store stores:write T1 Create a Trackily-hosted storefront.
update_native_store stores:write T1 Rename a storefront, change its currency, set the branding its pages wear, or take it offline with is_active:false.
reset_demo_store stores:write T1 Rebuild the demo storefront from code — six products with copy, pictures, a colour swatch and a digital line, plus two offers with bundle images and badges.
plan_market_duplication offers:read T1 Read what a market copy of a product or an offer would need PRICED, before creating anything.
duplicate_product_for_market offers:write T1 Copy a product (variants, options, images, checkout fields, shipping rules) into a NEW draft product for another market.
duplicate_offer_for_market offers:write T1 Copy an offer (bundles, items, forced prices, positions, payment options) into a NEW offer for another market.
duplicate_native_store stores:write T1 Copy a storefront's settings — name, currency, theme, picture — into a new one.
delete_native_store stores:write T2 Permanently remove a storefront that never sold anything.
attach_domain_to_native_store stores:write T1 Point a domain at a storefront.
detach_domain_from_native_store stores:write T1 Stop serving a storefront on a domain.
set_native_store_theme stores:write T1 Bind a theme to a storefront.
bulk_native_stores stores:write T2 Apply one action to several storefronts at once: pause / resume (domains stop or resume serving), archive / unarchive (leaves every list and picker; past orders keep resolving to it), duplicate (the shell only — name, currency, theme, picture; never the catalogue or domains) or delete (refused as soon as one order carries the store — archive instead).
import_commerce_asset stores:write T1 Copy an image from a public URL into the shop's own asset store and return the LOCAL url to use in landing HTML (/commerce-assets/<id>/<file>).
create_store_export_code stores:write T1 Create a STORE EXPORT CODE — a single paste-able code that lets ANOTHER Trackily installation import this store WHOLE: products (options + variants), offers (bundles + lines), landing pages and funnels.
list_store_export_codes stores:read T1 List store export codes — label, uses/max, expiry, revoked, and the USAGE TRAIL (when, declared target origin, ip).
revoke_store_export_code stores:write T1 Revoke a store export code — it stops working immediately, even if it had uses left.
reveal_store_export_code stores:write T1 Reveal the FULL export code of a saved row (stored encrypted at rest; every reveal is logged).
update_store_export_code stores:write T1 Edit a store export code: label, max_uses (null = unlimited), expires_days (null = never), active (false = deactivate, true = reactivate).
import_store_from_code stores:write T1 Import a WHOLE store from a TRKX1 export code — products, offers, landing pages, funnels — created on this installation with all ids remapped.

offer-tools

Les offres COMMERCE : ce qui se vend dans la boutique native (« Offers-EC » dans l'admin). Rien à voir avec les offres d'affiliation (list_offers, update_offer_payout). Dans ce module, les noms disent native_offer, sauf diagnose_storefront_offers ; hors du module, plan_market_duplication (avec type: "offer") et duplicate_offer_for_market (store-tools) prennent eux aussi une offre commerce sans le dire dans leur nom. Une offre est l'unité vendue — sa composition, son prix, sa livraison. Un produit seul EST une offre : une offre automatique naît avec chaque produit, et list_native_offers la cache sauf include_auto. attach_native_offer_to_landing injecte la zone d'achat dans une page que tu écris toi-même : place <div id="trackily-checkout"></div> là où elle doit apparaître.

Outil Scopes Tier Description
list_native_offers products:read T1 List COMMERCE offers — what you sell in your own store.
get_native_offer products:read T1 Full detail of a commerce offer: its composition, per-line fulfilment type, and the stores it is attached to.
create_native_offer products:write T1 Create a commerce offer (bundle, promo pack, upsell).
update_native_offer products:write T1 Change a commerce offer's HEADER: name, description, currency, store_id, image_url, is_active, is_storefront_visible.
add_native_offer_item products:write T1 Add a product to an offer.
remove_native_offer_item products:write T1 Remove a line from an offer.
attach_native_offer_to_store stores:write T1 Make an offer available on a store, optionally at a local price.
bulk_native_offers products:write T2 Apply one action to several commerce offers at once: activate, deactivate (the offer stays, stops selling everywhere, keeps its history — this is how you archive), or delete.
delete_native_offer products:write T2 Delete a commerce offer. Two-step: the first call previews how many order lines reference it and how many stores carry it, plus a confirm_token to pass back.
create_native_offer_bundle products:write T1 Add a purchasable shape to a COMMERCE offer — "1 flacon", "3 flacons", "pack duo".
update_native_offer_bundle products:write T1 Change a bundle's name, price, badge, order or default flag.
set_native_offer_bundle_items products:write T1 Replace what is inside a bundle: several units of one product, or a combination of different products, each with its own unit_price inside this bundle.
delete_native_offer_bundle products:write T1 Remove a bundle and its items from a commerce offer.
set_native_offer_payment_options products:write T1 Which payment methods the offer's landing page accepts: card accounts and/or cash on delivery.
attach_native_offer_to_landing landings:write T1 Bind an existing landing page to a COMMERCE offer, so its bundle stack, quantity selector and checkout are injected into the page.
diagnose_storefront_offers products:read T1 Why an offer does or does not appear on a shop front.

Total : 339 outils

Module Outils dont T2
resources 12 0
actions 17 6
source-actions 6 2
meta-tools 9 1
content-tools 15 6
workflow-tools 8 4
ecommerce-tools 10 4
ecommerce-orders-tools 14 7
ecommerce-analytics-tools 13 2
ecommerce-marketing-tools 17 8
ecommerce-content-tools 15 6
ecommerce-orchestration-tools 8 2
native-commerce-tools 15 9
native-orders-tools 8 4
email-tools 26 2
whatsapp-tools 47 9
smartlinks-tools 9 3
platform-tools 12 3
payment-tools 2 0
truth-tools 3 0
theme-tools 7 1
funnel-tools 25 2
merchandising-tools 4 0
store-tools 21 2
offer-tools 16 2
Total 339 85

Voir aussi

  • Index — vue d'ensemble du système MCP
  • Concept — le protocole JSON-RPC
  • Tokens — créer le jeton
  • Scopes — la granularité des permissions
  • Tier System — aperçu + confirm_token