Guide d’intégration Shopify
Tajo connecte Shopify à Brevo à deux endroits. L’application Shopify de Tajo transforme les webhooks Shopify en écritures dans Brevo dès leur arrivée. Les règles de synchronisation, qu’un agent construit et qu’une personne approuve, transfèrent des enregistrements vers Brevo selon un planning. Cette page couvre les deux, puis les outils Shopify que Tajo fournit via MCP.
Prérequis
Avant de commencer l’intégration, assurez-vous de disposer de :
- Boutique Shopify sur n’importe quel plan (Basic, Shopify, Advanced ou Plus)
- Compte Tajo (Tajo est en accès anticipé)
- Compte Brevo, la destination de la synchronisation
- Accès administrateur à votre boutique Shopify
Étape 1 : Connecter votre boutique Shopify
Tajo est en accès anticipé. L’application Shopify n’est pas listée dans le Shopify App Store, et il n’existe pas de lien d’installation en libre-service. Contactez l’équipe pour être configuré. Une fois votre espace de travail Tajo prêt :
- Dans Tajo, ouvrez Connections.
- Saisissez le domaine myshopify.com de votre boutique et choisissez Connect Shopify. Shopify affiche les scopes demandés par Tajo et vous renvoie vers Tajo lorsque vous les approuvez.
- Vérifiez à quoi sert chaque scope, et ce que Tajo réécrit dans Shopify, dans les autorisations Shopify expliquées.
Étape 2 : Ce que l’application Shopify de Tajo envoie à Brevo
L’application vérifie chaque webhook Shopify, le stocke, le met en file d’attente et le traite immédiatement. Les sujets clients et produits attendent d’abord environ quatre secondes. Il n’y a pas de fenêtre de traitement par lots. Une tâche en échec est relancée avec un délai progressif.
Sujets de webhook
L’application Shopify de Tajo s’abonne à ces sujets de webhook Shopify :
| Sujets de webhook | Objectif |
|---|---|
customers/create, customers/update, customers/delete | Garder les contacts Brevo à jour |
orders/create, orders/updated, orders/fulfilled, orders/cancelled | Événements de commande et indicateurs de commandes pour Brevo |
orders/paid, refunds/create | Attribuer et déduire des points de fidélité |
checkouts/create, checkouts/update | Récupération des paiements abandonnés dans Brevo |
products/create, products/update, products/delete | Garder le catalogue produits à jour dans Brevo |
inventory_levels/update | Garder le stock des produits à jour dans Brevo |
collections/create, collections/update, collections/delete | Garder les collections à jour |
companies/*, company_contacts/*, company_locations/* (create, update, delete) | Synchronisation des entreprises B2B |
app/uninstalled, app/scopes_update, app_subscriptions/update | Cycle de vie de l’application |
Les webhooks de confidentialité obligatoires de Shopify (demande de données client, suppression des données client, suppression des données de la boutique) sont également pris en charge. L’application ne s’abonne pas à carts/*. Les paniers abandonnés proviennent des sujets checkouts/*.
Ce qui arrive dans Brevo :
| Événement Shopify | Dans Brevo |
|---|---|
| Client créé ou mis à jour | Le contact est créé ou mis à jour avec le nom, l’e-mail et le consentement marketing. Sur les plans payants, l’application ajoute les tags, le nombre de commandes, le montant dépensé et la dernière commande. |
| Client supprimé | Le contact est désabonné, pas supprimé |
| Commande créée, mise à jour, payée, traitée ou annulée | La commande via l’API des commandes de Brevo, et les événements order_paid, order_completed et order_cancelled |
| Remboursement créé | L’événement order_refunded. Si vous gérez un programme de fidélité Brevo via Tajo, les points sont déduits au prorata. |
| Commande payée, avec un programme de fidélité Brevo | Points attribués selon votre taux de points par dollar |
| Checkout créé ou mis à jour, avec un e-mail et des articles | Les événements cart_updated et cart_abandoned. Votre automation Brevo décide du moment de l’envoi. |
| Produit ou collection créé, mis à jour ou supprimé | Le catalogue produits et les catégories de Brevo |
| Niveau de stock mis à jour | Le stock du produit dans le catalogue de Brevo. Lorsqu’une variante passe de 0 à plus de 0, chaque acheteur qui a demandé à être prévenu reçoit un événement back_in_stock, une fois par réassort. |
L’application n’ajoute pas de bouton « Me prévenir » à votre thème. Une demande de retour en stock doit provenir de votre vitrine, par exemple d’un bouton que vous ajoutez.
Données existantes
À l’installation, l’application importe vos clients existants en tant que contacts Brevo. Une synchronisation historique complète se lance depuis la page de synchronisation de l’application. Sur les plans payants, elle importe aussi les produits, les collections, les entreprises et les commandes.
Étape 3 : Construire une règle de synchronisation avec l’agent
Une règle de synchronisation est la définition déclarative d’une synchronisation : une ressource source, une action Brevo, un mapping des champs et un filtre. Vous ne l’écrivez pas à la main. Vous la décrivez, un agent la construit, et une personne l’approuve.
- Dans Tajo, ouvrez Agents et demandez la synchronisation en langage courant au Brevo Integration Architect. Par exemple : « Envoie à Brevo, en tant que contacts, les clients Shopify qui ont accepté le marketing par e-mail. »
- L’agent inspecte le connecteur Shopify. Son échantillon renvoie les noms et les types de champs, jamais les valeurs des clients.
- Il propose une règle avec un mapping des champs et un filtre, puis valide le mapping des champs par rapport à l’action Brevo et exécute le brouillon à blanc. Aucune de ces étapes ne lit d’enregistrements clients.
- Il enregistre la règle en brouillon. Vous pouvez aussi partir d’un modèle sous Connections > Syncs and mappings > New sync from template.
- Request publish approval lance un aperçu sur votre boutique. Il lit au plus 10 enregistrements, n’écrit rien dans Brevo et ne déplace pas le curseur. Il n’enregistre que des décomptes : enregistrements récupérés, éligibles, mappés et rejetés par le filtre, ainsi que les erreurs de mapping. Si l’aperçu échoue, aucune approbation n’est créée.
- Une personne approuve la demande sur la page Approvals, avec une justification écrite. L’approbation est liée à une empreinte SHA-256 de la règle et expire au bout de 30 minutes. La page de la règle affiche alors Publish approved version.
Modifier une règle publiée la remet en brouillon. Elle repasse par l’aperçu et l’approbation avant de s’exécuter à nouveau.
Une vraie règle
Voici le modèle Shopify customers -> Brevo contacts tel que Tajo le définit :
sourceSlug: "shopify",sourceResource: "customers",destinationSlug: "brevo",destinationAction: "upsert_contact",fieldMap: [ { source: "email", destination: "email", transform: "toLowerCase" }, { source: "first_name", destination: "attributes.FIRSTNAME" }, { source: "last_name", destination: "attributes.LASTNAME" }, { source: "phone", destination: "attributes.PHONE" }, { source: "total_spent", destination: "attributes.TOTAL_SPENT", transform: "toNumber" }, { source: "orders_count", destination: "attributes.ORDERS_COUNT", transform: "toNumber" }, { source: "tajo_email_marketing_consent", destination: "attributes.OPT_IN", transform: "toBoolean" }, { source: "tags", destination: "attributes.SHOPIFY_TAGS" }, { source: "id", destination: "attributes.SHOPIFY_ID", transform: "toString" }, { source: "created_at", destination: "attributes.SHOPIFY_CREATED_AT" }, { source: "updated_at", destination: "attributes.SHOPIFY_UPDATED_AT" },],filterExpression: "($json.tajo_email_marketing_consent === true) && ($json.tajo_email_suppressed === false)",Le filtre est la vérification du consentement. Tajo dérive les deux valeurs de email_marketing_consent.state de Shopify, ou de l’ancien indicateur accepts_marketing. Une règle qui écrit des contacts dans Brevo ne peut pas être publiée sans lui. L’autre modèle Shopify, Shopify orders → Brevo orders, enregistre les commandes dans Brevo pour les acheteurs qui ont accepté le marketing lors du paiement.
Quand une règle s’exécute
- Les règles de synchronisation des contacts s’exécutent toutes les 15 minutes par défaut. Chaque exécution part du curseur de la règle.
- La page d’une règle active comporte un bouton Test run (1 batch).
- Une règle Shopify orders → Brevo orders active et publiée s’exécute elle aussi toutes les 15 minutes. Sa première exécution planifiée commence quelques minutes avant ce moment et n’envoie aucune commande plus ancienne. Chaque exécution suivante envoie les commandes mises à jour depuis la précédente.
- Les commandes antérieures n’arrivent dans Brevo que lorsque vous exécutez la règle vous-même : avec Test run (1 batch), ou en demandant à l’agent Sync Operator de l’exécuter.
- Une règle de commandes ne s’exécute selon le planning qu’avec le filtre d’opt-in marketing de l’acheteur du modèle. Une règle dont le filtre a été modifié ne s’exécute que lorsque vous la lancez.
- Après cinq exécutions consécutives en échec, la règle se met en pause et sa page affiche la dernière erreur. Corrigez la cause, puis publiez à nouveau.
Chaque exécution figure dans l’historique d’exécution de la règle, avec les enregistrements lus, écrits et en échec, ainsi que sa durée.
Ce que le connecteur Shopify lit et écrit
Les règles de synchronisation n’écrivent que dans la destination, ici Brevo. Elles n’écrivent jamais dans Shopify.
L’application Shopify de Tajo demande 12 scopes et effectue une courte liste d’écritures dans Shopify, comme les désinscriptions du consentement et les tags de fidélité. Les autorisations Shopify expliquées liste chaque scope et chaque écriture, avec ce qui la déclenche.
Les agents et les hôtes MCP accèdent à la boutique via le connecteur Shopify :
| Lectures | Écritures |
|---|---|
| Détails de la boutique, clients (liste et recherche), commandes, produits, metafields des clients, niveaux de stock, statut de l’export groupé | Metafields et tags des clients, et lancement d’un export groupé. Chaque écriture est préparée sous forme de proposition et ne s’exécute qu’après son approbation. |
Le connecteur déclare aussi un ajustement de stock. Il nécessite le scope write_inventory, que l’application Shopify de Tajo ne demande pas.
Étape 4 : Utiliser les outils Shopify via MCP
Tajo fournit le connecteur Shopify sous forme de serveur MCP à l’adresse https://alto.tajo.io/mcp/connectors/shopify. Ajoutez-le à Claude Code :
claude mcp add --transport http tajo-shopify https://alto.tajo.io/mcp/connectors/shopifyL’hôte découvre le serveur OAuth de Tajo et ouvre la connexion Tajo. L’accès est réservé aux comptes en accès anticipé. Le serveur expose 12 outils :
| Outil | Ce qu’il fait |
|---|---|
preview_tajo_shopify_app | Aperçu interactif de l’application Shopify de Tajo, rendu en MCP UI |
get_shop | Les détails de la boutique |
search_customers | Rechercher des clients avec la syntaxe de requête Shopify, comme tag:tajo-vip ou total_spent:>100 |
list_customers | Lister les clients, avec pagination |
list_orders | Lister les commandes, avec pagination |
list_products | Lister les produits avec leurs variantes, images et stocks |
get_customer_metafields | Lire les metafields d’un client |
get_inventory_levels | Lire le stock d’une variante sur tous les emplacements |
poll_bulk_export | Vérifier un export groupé et obtenir son lien de téléchargement une fois terminé |
calculate_rewards_profile | Calculer le niveau, les points et le solde de récompenses d’un client à partir des données commerce synchronisées |
shopify_propose | Préparer une écriture Shopify sous forme de proposition. Rien n’est envoyé. |
shopify_apply | Exécuter une proposition approuvée |
Dépannage
- Contacts absents de Brevo : voir contacts manquants dans Brevo.
- Une règle qui ne s’exécute pas, ou qui s’est mise en pause : voir données non synchronisées.
Prochaines étapes
- Comprendre la synchronisation des données, le fonctionnement des règles de synchronisation
- Les autorisations Shopify expliquées, chaque scope et chaque écriture
- Shopify + Brevo, le guide d’intégration
- Contactez l’équipe pour être configuré