Synchronisation des clients
Synchronisation des clients
Synchronisez automatiquement les données clients de votre plateforme e-commerce vers les contacts Brevo. Ce skill garantit que votre liste de contacts Brevo reflète toujours votre base clients actuelle.
Vue d’ensemble
| Propriété | Valeur |
|---|---|
| Catégorie | Synchronisation des données |
| Statut | Stable |
| Version | 2.1 |
| Déclencheurs | customer_created, customer_updated, customer_deleted |
| Actions | Créer un contact, Mettre à jour un contact, Supprimer un contact |
Fonctionnement
graph LR A[E-commerce Platform] -->|Customer Event| B[Customer Sync Skill] B -->|Map Data| C[Field Mapping] C -->|API Call| D[Brevo Contacts API] D -->|Success| E[Contact Updated] D -->|Error| F[Retry Queue]- Détection d’événements : écoute les événements du cycle de vie client de votre plateforme
- Mappage des données : mappe les champs de la plateforme aux attributs de contact Brevo
- Synchronisation API : crée, met à jour ou supprime des contacts via l’API Brevo
- Gestion des erreurs : réessaie les opérations échouées avec un recul exponentiel
Configuration
Configuration de base
skills: customer-sync: enabled: true source: shopify # or woocommerce, magento, custom
# Map platform fields to Brevo attributes field_mapping: email: email firstName: FIRSTNAME lastName: LASTNAME phone: SMS
# Sync options options: sync_mode: realtime # or batch delete_behavior: soft # or hard list_id: 5 # Add to this listMappage des champs
Mappez les champs clients de votre plateforme aux attributs de contact Brevo :
Mappages de champs par défaut
| Parameter | Type | Description |
|---|---|---|
email required | string | Adresse email du client. Utilisée comme identifiant unique dans Brevo. |
firstName optional | string | Prénom du client. Mappé vers l'attribut FIRSTNAME. |
lastName optional | string | Nom de famille du client. Mappé vers l'attribut LASTNAME. |
phone optional | string | Numéro de téléphone au format E.164. Mappé vers l'attribut SMS pour WhatsApp/SMS. |
acceptsMarketing optional | boolean | Statut d'opt-in marketing. Contrôle le statut d'abonnement aux emails. |
Attributs personnalisés
Ajoutez des mappages d’attributs personnalisés pour les données e-commerce :
field_mapping: # Standard fields email: email firstName: FIRSTNAME
# Custom e-commerce attributes totalOrders: TOTAL_ORDERS totalSpent: TOTAL_SPENT lastOrderDate: LAST_ORDER_DATE customerTier: CUSTOMER_TIER tags: TAGSTip
Créez les attributs d’abord : les attributs personnalisés doivent être créés dans Brevo avant de pouvoir être synchronisés. Utilisez le tableau de bord ou l’API Brevo pour les créer.
Déclencheurs
customer_created
Se déclenche lorsqu’un nouveau client est créé dans votre plateforme.
{ "event": "customer_created", "timestamp": "2024-01-15T10:30:00Z", "data": { "id": "cust_12345", "firstName": "Jane", "lastName": "Smith", "phone": "+1234567890", "acceptsMarketing": true, "createdAt": "2024-01-15T10:30:00Z" }}customer_updated
Se déclenche lorsque les informations du client sont modifiées.
{ "event": "customer_updated", "timestamp": "2024-01-15T14:45:00Z", "data": { "id": "cust_12345", "changes": { "phone": { "old": null, "new": "+1234567890" } } }}customer_deleted
Se déclenche lorsqu’un client est supprimé de votre plateforme.
{ "event": "customer_deleted", "timestamp": "2024-01-15T16:00:00Z", "data": { "id": "cust_12345", "deletedAt": "2024-01-15T16:00:00Z" }}Actions
Créer un contact
Crée un nouveau contact dans Brevo lorsqu’un client est créé.
/v3/contacts Créer un nouveau contact dans votre compte Brevo
Query Parameters
| Parameter | Description |
|---|---|
| email string required | Adresse email du contact |
| attributes object optional | Attributs du contact |
| listIds array optional | Identifiants des listes auxquelles ajouter le contact |
| updateEnabled boolean optional | Mettre à jour si le contact existe
Default: false |
Responses
Mettre à jour un contact
Met à jour un contact existant lorsque les données du client changent.
/v3/contacts/{identifier} Mettre à jour les attributs d'un contact existant
Path Parameters
| Parameter | Description |
|---|---|
| identifier string required | Email ou identifiant du contact |
Query Parameters
| Parameter | Description |
|---|---|
| attributes object optional | Attributs à mettre à jour |
| listIds array optional | Listes auxquelles ajouter le contact |
| unlinkListIds array optional | Listes dont retirer le contact |
Responses
Supprimer un contact
Supprime un contact lorsqu’un client est supprimé.
/v3/contacts/{identifier} Supprimer définitivement un contact de Brevo
Path Parameters
| Parameter | Description |
|---|---|
| identifier string required | Email ou identifiant du contact |
Responses
Exemples de code
JavaScript (Node.js)
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Enable customer sync skillawait tajo.skills.enable('customer-sync', { source: 'shopify', fieldMapping: { email: 'email', firstName: 'FIRSTNAME', lastName: 'LASTNAME', totalOrders: 'TOTAL_ORDERS', totalSpent: 'TOTAL_SPENT' }, options: { syncMode: 'realtime', listId: 5 }});
// Manually trigger a syncawait tajo.skills.trigger('customer-sync', { event: 'customer_created', data: { firstName: 'Jane', lastName: 'Smith' }});Python
from tajo import TajoClient
tajo = TajoClient( api_key=os.environ['TAJO_API_KEY'], brevo_api_key=os.environ['BREVO_API_KEY'])
# Enable customer sync skilltajo.skills.enable('customer-sync', { 'source': 'woocommerce', 'field_mapping': { 'email': 'email', 'first_name': 'FIRSTNAME', 'last_name': 'LASTNAME', 'total_orders': 'TOTAL_ORDERS' }, 'options': { 'sync_mode': 'realtime', 'list_id': 5 }})
# Manually trigger a synctajo.skills.trigger('customer-sync', { 'event': 'customer_updated', 'data': { 'total_orders': 10, 'total_spent': 1250.00 }})Supervision
Tableau de bord du statut de synchronisation
Surveillez les performances de synchronisation dans le tableau de bord Tajo :
- Taux de succès de synchronisation : pourcentage de synchronisations réussies
- Latence moyenne : délai entre l’événement et la mise à jour dans Brevo
- Taux d’erreur : tentatives de synchronisation échouées
- Profondeur de file : opérations de synchronisation en attente
Notifications par webhook
Recevez des notifications pour les événements de synchronisation :
notifications: webhook_url: https://your-app.com/webhooks/tajo events: - sync_completed - sync_failed - batch_completedDépannage
Problèmes courants
Le contact existe déjà (409)
Activez updateEnabled: true dans votre configuration pour mettre à jour les contacts existants au lieu d’échouer.
| Erreur | Cause | Solution |
|---|---|---|
Contact already exists | Un contact avec cet email existe | Activer updateEnabled: true |
Invalid attribute | L’attribut n’existe pas dans Brevo | Créer d’abord l’attribut dans Brevo |
Rate limit exceeded | Trop de requêtes API | Utiliser le mode de synchronisation par lots |
Invalid email format | Adresse email mal formée | Valider les emails avant la synchronisation |
Mode de débogage
Activez la journalisation de débogage pour le dépannage :
skills: customer-sync: debug: true log_level: verboseSkills associés
- Événements de commande - Synchroniser les données de commande
- Catalogue produits - Synchroniser les données produits
- Événements de panier - Suivre l’activité des paniers
Étapes suivantes
- Configurez les mappages de champs pour votre plateforme
- Configurez des attributs personnalisés dans Brevo
- Activez la synchronisation en temps réel pour des mises à jour instantanées