Connecteur SendGrid

Connectez votre compte SendGrid à Brevo via Tajo pour la migration d’infrastructure email, la synchronisation des contacts, le transfert de données de campagnes et des analytiques d’engagement unifiées sur les deux plateformes.

Vue d’ensemble

PropriétéValeur
PlateformeSendGrid (Twilio)
CatégorieMarketing
Complexité de configurationFacile
Intégration officielleOui
Données synchroniséesContacts, Campagnes, Email Transactionnel, Événements
URL de base APIhttps://api.sendgrid.com/v3

Fonctionnalités

  • Migration de contacts - Migration des contacts SendGrid Marketing vers Brevo avec les champs personnalisés
  • Synchronisation email transactionnel - Suivi des événements d’emails transactionnels pour un reporting unifié
  • Données de campagnes - Synchronisation des données de performance des campagnes Single Send et Automation
  • Webhooks d’événements - Transfert des événements email (delivered, opened, clicked, bounced) vers Brevo
  • Synchronisation des suppressions - Migration des listes de rebonds, blocages et désinscriptions pour la conformité
  • Migration de templates - Export des Dynamic Transactional Templates pour utilisation dans Brevo
  • Vérification d’expéditeur - Synchronisation des identités d’expéditeur vérifiées et de l’authentification de domaine
  • Synchronisation des statistiques - Import des statistiques d’engagement historiques vers les attributs Brevo

Prérequis

Avant de commencer, assurez-vous d’avoir :

  1. Un compte SendGrid (Free, Essentials, Pro ou Premier)
  2. Une clé API SendGrid avec les permissions requises
  3. Un compte Brevo avec accès API
  4. Un compte Tajo

Authentification

Authentification par clé API

SendGrid utilise l’authentification par bearer token.

Terminal window
curl https://api.sendgrid.com/v3/marketing/contacts \
-H "Authorization: Bearer SG.YOUR_API_KEY" \
-H "Content-Type: application/json"

Créez les clés API dans SendGrid Settings > API Keys avec des niveaux de permission spécifiques :

  • Full Access - Accès API complet
  • Restricted Access - Contrôle de permissions granulaire
  • Billing Access - Opérations de facturation uniquement

Permissions requises

Marketing: Full Access
- Contacts (read)
- Single Sends (read)
- Automations (read)
Mail Send: Full Access
- Mail Send (read)
Stats: Read Access
Suppressions: Read Access
Tracking: Read Access

Sécurité des clés API

Les clés API SendGrid ne sont affichées qu’une seule fois à la création. Stockez-les de manière sécurisée. Si perdues, vous devrez créer une nouvelle clé.

Configuration

Configuration de base

connectors:
sendgrid:
enabled: true
api_key: "${SENDGRID_API_KEY}"
# Options de synchronisation des données
sync:
contacts: true
campaigns: true
transactional: true
suppressions: true
statistics: true
# Mappage de listes vers Brevo
list_mapping:
"All Contacts": 60
"Newsletter": 61
"Transactional": 62

Mappage de champs

Mappez les champs de contact SendGrid aux attributs de contact Brevo :

Mappages par défaut

Parameter Type Description
email required
string

Adresse email du contact (identifiant unique)

first_name optional
string

Mappé vers l'attribut FIRSTNAME

last_name optional
string

Mappé vers l'attribut LASTNAME

phone_number optional
string

Mappé vers l'attribut SMS

city optional
string

Ville du contact

country optional
string

Pays du contact

custom_fields optional
object

Paires clé-valeur des champs personnalisés

list_ids optional
array

Appartenances aux listes SendGrid

Mappage de champs personnalisés

field_mapping:
# Champs standards
email: email
first_name: FIRSTNAME
last_name: LASTNAME
phone_number: SMS
# Champs de localisation
city: CITY
state_province_region: STATE
country: COUNTRY
postal_code: POSTAL_CODE
# Métriques d'engagement
avg_open_rate: AVG_OPEN_RATE
avg_click_rate: AVG_CLICK_RATE
# Champs personnalisés
custom_fields.company: COMPANY_NAME
custom_fields.plan: PLAN_TYPE

Endpoints API

Marketing Contacts

MéthodeEndpointDescription
PUT/v3/marketing/contactsAjouter ou mettre à jour des contacts
POST/v3/marketing/contacts/searchRechercher des contacts
GET/v3/marketing/contacts/countObtenir le nombre de contacts
POST/v3/marketing/contacts/exportsExporter les contacts
DELETE/v3/marketing/contactsSupprimer des contacts
GET/v3/marketing/listsLister toutes les listes de contacts

Email transactionnel (Mail Send)

MéthodeEndpointDescription
POST/v3/mail/sendEnvoyer un email
GET/v3/templatesLister les Dynamic Templates
GET/v3/templates/{id}Obtenir les détails d’un template

Campagnes (Single Sends)

MéthodeEndpointDescription
GET/v3/marketing/singlesendsLister les Single Sends
GET/v3/marketing/singlesends/{id}Obtenir les détails d’un Single Send
GET/v3/marketing/automationsLister les Automations

Statistiques

MéthodeEndpointDescription
GET/v3/statsObtenir les statistiques email globales
GET/v3/categories/statsObtenir les statistiques par catégorie
GET/v3/marketing/stats/singlesendsObtenir les stats des Single Sends

Suppressions

MéthodeEndpointDescription
GET/v3/suppression/bouncesLister les emails rejetés
GET/v3/suppression/blocksLister les emails bloqués
GET/v3/suppression/spam_reportsLister les signalements spam
GET/v3/suppression/unsubscribesLister les désinscriptions globales

Événements

Événements email (via Event Webhook)

ÉvénementDéclencheurCas d’usage
processedEmail accepté par SendGridConfirmation d’envoi
deliveredEmail livré au destinataireSuivi de livraison
openEmail ouvertScoring d’engagement
clickLien cliquéSuivi d’intérêt
bounceEmail rejetéHygiène de liste
droppedEmail suppriméRevue de conformité
deferredLivraison différéeSurveillance de retry
spam_reportMarqué comme spamGestion de réputation
unsubscribeDésinscription via lienSynchronisation de préférences

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
});
// Connecter SendGrid
await tajo.connectors.connect('sendgrid', {
apiKey: process.env.SENDGRID_API_KEY
});

Migrer les contacts vers Brevo

// Migration complète des contacts de SendGrid vers Brevo
await tajo.connectors.sync('sendgrid', {
type: 'full',
resources: ['contacts', 'suppressions'],
options: {
includeCustomFields: true,
migrateListMemberships: true,
migrateSuppressions: true
}
});
// Vérifier le statut de migration
const status = await tajo.connectors.status('sendgrid');
console.log(status);
// {
// connected: true,
// lastSync: '2024-01-15T10:30:00Z',
// contactsMigrated: 45000,
// suppressionsSynced: 3200,
// listsMapped: 8
// }

Transférer les événements email

// Gérer l'Event Webhook SendGrid
app.post('/webhooks/sendgrid', async (req, res) => {
const signature = req.get('X-Twilio-Email-Event-Webhook-Signature');
// Vérifier la signature du webhook (ECDSA)
if (!verifySendGridSignature(req.body, signature)) {
return res.status(401).send('Unauthorized');
}
// Traiter le batch d'événements
for (const event of req.body) {
await tajo.connectors.handleWebhook('sendgrid', {
type: event.event,
email: event.email,
timestamp: event.timestamp,
payload: event
});
}
res.status(200).send('OK');
});

Limites de taux

Limites de taux de l’API SendGrid :

EndpointLimiteDétails
Mail Send (/v3/mail/send)Dépend du planFree : 100/jour, Essentials : selon plan
Marketing Contacts PUT3 requêtes/secondeBatch jusqu’à 30 000 contacts
Marketing Contacts Search50 requêtes/secondePar clé API
API générale1 000 requêtes/secondePar clé API
Event WebhookLivraison batchJusqu’à 1 000 événements par POST

Limites Mail Send

Les limites Mail Send dépendent de votre plan SendGrid. Les comptes Free sont limités à 100 emails/jour. Consultez les détails de votre plan pour les limites d’envoi exactes.

Dépannage

Problèmes courants

ProblèmeCauseSolution
401 UnauthorizedClé API invalideVérifiez la clé API dans SendGrid Settings
403 ForbiddenPermissions de clé API insuffisantesCréez une nouvelle clé avec les périmètres requis
Export de contacts en attenteTraitement de gros datasetInterrogez l’endpoint de statut d’export jusqu’à complétion
Synchronisation des suppressions incomplètePagination requiseImplémentez la pagination avec le paramètre offset
Event webhook non reçuURL non vérifiéeComplétez la vérification d’URL de webhook dans SendGrid

Mode debug

Activer la journalisation détaillée :

connectors:
sendgrid:
debug: true
log_level: verbose
log_webhooks: true

Tester la connexion

Terminal window
tajo connectors test sendgrid
# ✓ API connection successful
# ✓ Contacts readable
# ✓ Lists accessible
# ✓ Statistics readable
# ✓ Suppressions accessible

Bonnes pratiques

  1. Migrez les suppressions en premier - Assurez-vous que les rebonds, blocages et désinscriptions sont dans Brevo avant d’envoyer
  2. Utilisez les téléversements de contacts en batch - PUT jusqu’à 30 000 contacts par requête pour l’efficacité
  3. Vérifiez l’Event Webhook - Activez les webhooks signés avec vérification ECDSA
  4. Mappez les champs personnalisés - Créez les attributs Brevo correspondants avant la migration des contacts
  5. Synchronisez les données d’engagement - Importez les stats historiques pour la segmentation dans Brevo
  6. Gérez les exports asynchrones - Les exports de contacts sont asynchrones ; interrogez jusqu’à complétion

Sécurité

  • Authentification par clé API - Bearer token avec niveaux de permission granulaires
  • Signature de l’Event Webhook - Vérification de signature ECDSA pour les payloads de webhook
  • Chiffrement TLS - Toutes les communications API chiffrées via HTTPS
  • Gestion d’accès par IP - Restriction de l’accès au Dashboard et à l’API par IP
  • Authentification à deux facteurs - 2FA disponible pour l’accès au compte

Ressources liées

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
Assistant AI

Bonjour ! Posez-moi vos questions sur la documentation.