Connecteur Brevo
Connecteur Brevo
Connectez votre compte Brevo à Tajo pour une gestion unifiée des contacts, une messagerie transactionnelle sur e-mail, SMS et WhatsApp, et une automatisation marketing complète.
Vue d’ensemble
| Propriété | Valeur |
|---|---|
| Plateforme | Brevo |
| Catégorie | Marketing |
| Complexité d’installation | Facile |
| Intégration officielle | Oui |
| Données synchronisées | Contacts, campagnes, messages transactionnels, événements, eCommerce |
| URL de base de l’API | https://api.brevo.com/v3 |
Fonctionnalités
- Messagerie multicanale, Envoyez e-mails transactionnels, SMS et WhatsApp depuis une API unifiée
- Gestion des contacts, Créez, mettez à jour et segmentez les contacts avec des attributs personnalisés
- Campagnes marketing, Créez et envoyez des campagnes e-mail de manière programmatique
- Suivi d’événements, Suivez les événements personnalisés et l’activité du site via le Brevo Tracker
- Synchronisation eCommerce, Synchronisez produits, commandes et données de panier pour des campagnes personnalisées
- Programmes de fidélité, Gérez abonnements de fidélité, points et données des membres
- Prise en charge des webhooks, Notifications d’événements en temps réel pour les événements transactionnels, marketing et CRM
- Conversations, Intégration du widget de chat en direct et gestion programmatique des messages
Prérequis
Avant de commencer, assurez-vous de disposer de :
- Un compte Brevo (plan Free, Starter, Business ou Enterprise)
- Une clé API générée depuis Brevo Settings > API Keys
- Un compte Tajo avec accès API
- Un domaine d’expédition vérifié pour l’envoi d’e-mails
Authentification
Brevo prend en charge deux méthodes d’authentification :
Authentification par clé API (recommandée)
Incluez votre clé API dans l’en-tête api-key à chaque requête. Idéale pour les intégrations directes et les communications serveur à serveur.
curl -X GET "https://api.brevo.com/v3/account" \ -H "api-key: YOUR_API_KEY" \ -H "Content-Type: application/json"Authentification OAuth 2.0
Utilisez OAuth 2.0 pour les intégrations privées au sein d’une organisation nécessitant un accès délégué et des permissions spécifiques à l’utilisateur. OAuth fournit un système basé sur des jetons avec des durées de validité définies.
Disponibilité d'OAuth
OAuth n’est actuellement disponible que pour les intégrations privées au sein d’une organisation. Les intégrations OAuth ne sont pas destinées à une distribution publique ni à une publication sur une marketplace.
Configuration
Configuration de base
connectors: brevo: enabled: true api_key: "${BREVO_API_KEY}" api_version: "v3"
# Data sync options sync: contacts: true campaigns: true transactional: true events: true ecommerce: true
# List assignment lists: all_customers: 5 newsletter: 6 buyers: 7Mappage des champs
Mappez vos champs de données vers les attributs de contact Brevo :
Mappages par défaut
| Parameter | Type | Description |
|---|---|---|
email required | string | Adresse e-mail du contact (identifiant unique) |
FIRSTNAME optional | string | Attribut prénom du contact |
LASTNAME optional | string | Attribut nom du contact |
SMS optional | string | Numéro de téléphone pour la messagerie SMS et WhatsApp |
OPT_IN optional | boolean | Statut de consentement marketing opt-in |
ORDER_COUNT optional | integer | Nombre total de commandes passées |
TOTAL_REVENUE optional | number | Revenu vie du contact |
LOYALTY_POINTS optional | integer | Solde actuel du programme de fidélité |
Mappage d’attributs personnalisés
field_mapping: # Standard fields email: email first_name: FIRSTNAME last_name: LASTNAME phone: SMS
# Marketing fields opt_in: OPT_IN signup_source: SIGNUP_SOURCE preferred_language: LANGUAGE
# eCommerce metrics orders_count: ORDER_COUNT total_spent: TOTAL_REVENUE last_order_date: LAST_ORDER_DATE
# Loyalty fields loyalty_tier: VIP_TIER loyalty_points: LOYALTY_POINTSEndpoints API
Endpoints principaux
| Méthode | Endpoint | Description |
|---|---|---|
POST | /v3/smtp/email | Envoyer un e-mail transactionnel |
POST | /v3/transactionalSMS/send | Envoyer un SMS transactionnel |
POST | /v3/whatsapp/sendMessage | Envoyer un message WhatsApp transactionnel |
POST | /v3/contacts | Créer un contact |
PUT | /v3/contacts/{email} | Mettre à jour un contact |
GET | /v3/contacts/{identifier} | Récupérer les détails d’un contact |
POST | /v3/contacts/import | Importer des contacts en masse |
Endpoints eCommerce
| Méthode | Endpoint | Description |
|---|---|---|
POST | /v3/orders/status | Créer ou mettre à jour le statut d’une commande |
POST | /v3/products | Créer ou mettre à jour des produits |
POST | /v3/categories | Créer ou mettre à jour des catégories de produits |
POST | /v3/events | Suivre des événements personnalisés |
Endpoints de campagne
| Méthode | Endpoint | Description |
|---|---|---|
POST | /v3/emailCampaigns | Créer une campagne e-mail |
POST | /v3/emailCampaigns/{id}/sendNow | Envoyer une campagne immédiatement |
GET | /v3/emailCampaigns | Lister toutes les campagnes e-mail |
GET | /v3/smtp/statistics/events | Obtenir les statistiques d’événements e-mail |
Événements
Événements transactionnels
| Événement | Déclencheur | Cas d’usage |
|---|---|---|
delivered | E-mail délivré en boîte de réception | Confirmation de livraison |
opened | E-mail ouvert par le destinataire | Suivi d’engagement |
clicked | Lien cliqué dans l’e-mail | Suivi du click-through |
bounced | E-mail rejeté | Hygiène de liste |
spam | Marqué comme spam | Surveillance de la conformité |
unsubscribed | Contact désabonné | Gestion des préférences |
Événements eCommerce
| Événement | Déclencheur | Cas d’usage |
|---|---|---|
order_completed | Commande passée avec succès | Workflows post-achat |
cart_updated | Contenu du panier modifié | Suivi d’abandon de panier |
cart_deleted | Panier vidé ou expiré | Récupération de panier |
product_viewed | Page produit visitée | Abandon de navigation |
Exemples de code
Initialiser le connecteur
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Brevo accountawait tajo.connectors.connect('brevo', { apiKey: process.env.BREVO_API_KEY});Envoyer un e-mail transactionnel
// Send a transactional email via Brevoawait tajo.brevo.sendTransactionalEmail({ templateId: 12, params: { ORDER_ID: '12345', ORDER_TOTAL: '$59.99', DELIVERY_DATE: '2024-02-15' }});Synchroniser les contacts
// Bulk import contacts to Brevoawait tajo.connectors.sync('brevo', { type: 'full', resources: ['contacts'], options: { listIds: [5, 6], updateExisting: true, emptyContactsAttributes: false }});
// Check sync statusconst status = await tajo.connectors.status('brevo');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// contactsSynced: 25400,// campaignsSent: 142,// eventsTracked: 89320// }Suivre des événements personnalisés
// Track a custom event for a contactawait tajo.brevo.trackEvent({ event: 'product_purchased', eventdata: { id: 'txn_98765', data: { product_name: 'Premium Widget', price: 49.99, currency: 'USD' } }});Limites de débit
Brevo applique des limites de débit selon trois niveaux en fonction de votre plan :
| Endpoint | Free/Starter | Professional | Enterprise |
|---|---|---|---|
POST /v3/smtp/email | 1 000 RPS | 2 000 RPS | 6 000 RPS |
POST /v3/transactionalSMS/send | 150 RPS | 200 RPS | 250 RPS |
POST /v3/events | 10 RPS | 20 RPS | 60 RPS |
/v3/contacts/* | 10 RPS | 20 RPS | 60 RPS |
| Tous les autres endpoints | 100 RPH | 200 RPH | 600 RPH |
Réponse de limite de débit
Lorsque vous dépassez une limite de débit, l’API renvoie un code de statut 429 Too Many Requests. Surveillez les en-têtes de limite de débit dans les réponses pour suivre votre usage.
Dépannage
Problèmes courants
| Problème | Cause | Solution |
|---|---|---|
| 401 Unauthorized | Clé API invalide | Régénérez la clé API dans Brevo Settings |
| Contact non créé | Champ e-mail manquant | Assurez-vous qu’un e-mail est fourni pour tous les contacts |
| E-mail non délivré | Domaine d’expédition non vérifié | Vérifiez le domaine dans les paramètres Brevo Senders |
| Webhook non reçu | URL incorrecte ou erreur serveur | Vérifiez l’accessibilité de l’URL du webhook et les logs |
| SMS non envoyé | Format de téléphone invalide | Utilisez le format international avec indicatif pays |
Mode débogage
Activez la journalisation détaillée :
connectors: brevo: debug: true log_level: verbose log_webhooks: trueTester la connexion
tajo connectors test brevo# ✓ API connection successful# ✓ Contacts API accessible# ✓ Transactional email ready# ✓ SMS sending configured# ✓ Webhooks registeredBonnes pratiques
- Utilisez la rotation des clés API, Faites tourner les clés API périodiquement pour la sécurité
- Implémentez la vérification des webhooks, Validez les signatures webhook avec l’authentification username/password
- Imports de contacts en lot, Utilisez l’import en masse pour les gros jeux de données plutôt que des appels API individuels
- Surveillez les limites de débit, Vérifiez les en-têtes de limite de débit pour éviter les erreurs 429
- Utilisez le suivi d’événements, Implémentez le Brevo Tracker pour des données complètes sur le comportement client
- Configurez correctement l’authentification de l’expéditeur, Configurez SPF, DKIM et DMARC pour une délivrabilité optimale
Sécurité
- Authentification par clé API, Accès par jeton secret via l’en-tête
api-key - OAuth 2.0, Accès délégué par jeton pour les intégrations privées
- Vérification des webhooks, Authentification username et password pour des appels webhook sécurisés
- Chiffrement TLS, Toutes les communications API chiffrées en transit
- Whitelisting d’IP, Restrictions d’IP optionnelles disponibles sur les plans Enterprise