Synchronisation des clients
Tajo fait entrer les données clients dans Brevo de deux façons : la synchronisation continue (les changements d’une plateforme connectée arrivent en continu dans Brevo) et la migration en masse (un transfert à pleine capacité et reprenable depuis Mailchimp, Klaviyo, HubSpot, Salesforce, Shopify, WooCommerce, Stripe et d’autres). Les deux reposent sur le même moteur et partagent une propriété non négociable : le consentement est prouvé enregistrement par enregistrement, jamais supposé.
Comment le consentement est tranché
Chaque enregistrement passe par un contrôle de consentement fail-closed avant de pouvoir entrer dans une audience marketing :
| Verdict | Ce qui se passe |
|---|---|
Consentement prouvé (par exemple Mailchimp subscribed, Klaviyo SUBSCRIBED, consentement marketing Shopify) | Importé dans les listes Brevo que vous avez choisies |
| Refus explicite (désabonnement, opt-out) | Pas écarté, mais repris dans Brevo comme contact blacklisté et inscrit au registre do-not-contact, pour que la nouvelle plateforme ne puisse jamais lui écrire |
Supprimé pour cause de délivrabilité (hard bounce, plainte pour spam, par exemple Mailchimp cleaned, Klaviyo HARD_BOUNCE/SPAM_COMPLAINT) | Repris comme blacklisté et marqué persistant : un opt-in ultérieur sur une autre plateforme ne lève jamais un hard bounce ni une plainte |
| Non prouvé (aucun signal de consentement) | Refusé. « Nous n’avons pas pu prouver le consentement » et « il y a consentement » ne sont jamais le même résultat |
La distinction entre « refusé » et « non prouvé » compte : un désabonnement est une décision qui doit survivre à la migration ; un champ absent n’est pas une décision.
Sources de consentement par plateforme
| Plateforme | Preuve de consentement | Signaux de suppression |
|---|---|---|
| Mailchimp | Statut du membre subscribed | unsubscribed (opt-out), cleaned (hard bounce) |
| Klaviyo | Consentement marketing du profil SUBSCRIBED | Liste de suppression avec motifs (UNSUBSCRIBE, USER_SUPPRESSED, HARD_BOUNCE, INVALID_EMAIL, SPAM_COMPLAINT) |
| Shopify | email_marketing_consent.state / accepts_marketing | not_subscribed explicite |
| HubSpot | Statuts d’abonnement (API batch, 100 contacts par appel) | hs_email_optout |
| Salesforce | Non prouvable en masse depuis Sales Cloud, l’identité migre mais l’inscription aux audiences reste fermée | HasOptedOutOfEmail, EmailBouncedDate |
| WooCommerce / Stripe | Jamais déduit des achats, une fiche client n’est pas un consentement marketing | aucun |
Résolution des conflits pendant la migration
Lorsque la source et Brevo ne s’accordent pas sur la même adresse, la résolution suit le mode que vous choisissez :
- La décision la plus récente l’emporte (par défaut) : le camp dont la décision de consentement porte l’horodatage le plus récent prévaut. Un camp sans horodatage exploitable perd toujours face à un camp qui en a un ; quand aucun des deux n’en a, c’est l’état le moins joignable qui l’emporte.
- Source de vérité : vous désignez la plateforme qui fait autorité pour la migration (« la source a raison » ou « Brevo a raison »). Si votre workspace déclare déjà un système de référence, cette plateforme devient automatiquement l’autorité par défaut.
- Dans tous les modes : les hard bounces et les plaintes pour spam sont des faits de délivrabilité, pas des préférences. Ils ne sont jamais levés par un opt-in plus récent, et chaque conflit que le moteur refuse de trancher est compté et signalé, jamais ignoré en silence.
Fiabilité à pleine capacité
- L’extraction par curseur parcourt toute la table source (plus de 100 000 contacts) avec des points de reprise. Un plantage reprend au dernier lot terminé, et les nouvelles tentatives n’écrivent jamais deux fois (clés d’idempotence par enregistrement).
- Les écritures dans Brevo utilisent l’API d’import en masse (10 000 contacts par lot) dans les limites de débit de Brevo ; l’état de suppression voyage avec l’import, il n’existe donc aucune fenêtre pendant laquelle un contact serait joignable avant d’être supprimé.
- Chaque exécution rapporte ce qui a bougé et ce qui n’a pas bougé : contacts importés, refus explicites repris, suppressions propagées, conflits mis en attente et motifs d’échec par enregistrement.
Ce que la synchronisation apporte après la migration
Une fois la migration faite, les mêmes connexions gardent Brevo à jour : les webhooks des plateformes (Shopify, WooCommerce, WordPress, Mailchimp) font remonter les changements en quasi temps réel, et les sources interrogées se rafraîchissent selon leur calendrier. Les désabonnements observés à la source inversent le consentement dans le registre, avec la trace d’audit du moment, de la provenance et de la preuve.
Configuration
- Connectez la plateforme source dans Tajo (clé API ou OAuth, selon le connecteur).
- Connectez Brevo et choisissez les listes cibles.
- Choisissez le mode de résolution des conflits (ou acceptez celui par défaut).
- Lancez la migration, puis examinez le rapport, y compris les conflits mis en attente, avant d’activer les automations.
La gestion du consentement et des suppressions ne peut pas être désactivée. Aucun paramètre ne permet d’importer des contacts désabonnés comme joignables.