Connecteur SendGrid
Statut du connecteur: En cours En construction. Pas encore vérifié.
Illustration · données d’exemple
Exemple de synchronisation
Source
SendGrid
Statut du connecteur: En cours
Destination
Votre autre outil
Statut du connecteur: Outil personnalisé
Correspondance des champs
| Champ source | Champ de destination | Valeur d’exemple |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Préparer
- Vérifier un enregistrement
- Approuver cette version
Les statuts concernent chaque connecteur et ne garantissent pas que cette synchronisation soit prête. Champs illustratifs. Vérifiez le schéma réel et les autorisations avant toute synchronisation.
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 |
|---|---|
| Plateforme | SendGrid (Twilio) |
| Catégorie | Marketing |
| Complexité de configuration | Facile |
| Intégration officielle | Non |
| Données synchronisées | Contacts, Campagnes, Email Transactionnel, Événements |
| URL de base API | https://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 :
- Un compte SendGrid (Free, Essentials, Pro ou Premier)
- Une clé API SendGrid avec les permissions requises
- Un compte Brevo avec accès API
- Un compte Tajo
Authentification
Authentification par clé API
SendGrid utilise l’authentification par bearer token.
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 AccessSuppressions: Read AccessTracking: Read AccessSé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": 62Mappage 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_TYPEEndpoints API
Marketing Contacts
| Méthode | Endpoint | Description |
|---|---|---|
PUT | /v3/marketing/contacts | Ajouter ou mettre à jour des contacts |
POST | /v3/marketing/contacts/search | Rechercher des contacts |
GET | /v3/marketing/contacts/count | Obtenir le nombre de contacts |
POST | /v3/marketing/contacts/exports | Exporter les contacts |
DELETE | /v3/marketing/contacts | Supprimer des contacts |
GET | /v3/marketing/lists | Lister toutes les listes de contacts |
Email transactionnel (Mail Send)
| Méthode | Endpoint | Description |
|---|---|---|
POST | /v3/mail/send | Envoyer un email |
GET | /v3/templates | Lister les Dynamic Templates |
GET | /v3/templates/{id} | Obtenir les détails d’un template |
Campagnes (Single Sends)
| Méthode | Endpoint | Description |
|---|---|---|
GET | /v3/marketing/singlesends | Lister les Single Sends |
GET | /v3/marketing/singlesends/{id} | Obtenir les détails d’un Single Send |
GET | /v3/marketing/automations | Lister les Automations |
Statistiques
| Méthode | Endpoint | Description |
|---|---|---|
GET | /v3/stats | Obtenir les statistiques email globales |
GET | /v3/categories/stats | Obtenir les statistiques par catégorie |
GET | /v3/marketing/stats/singlesends | Obtenir les stats des Single Sends |
Suppressions
| Méthode | Endpoint | Description |
|---|---|---|
GET | /v3/suppression/bounces | Lister les emails rejetés |
GET | /v3/suppression/blocks | Lister les emails bloqués |
GET | /v3/suppression/spam_reports | Lister les signalements spam |
GET | /v3/suppression/unsubscribes | Lister les désinscriptions globales |
Événements
Événements email (via Event Webhook)
| Événement | Déclencheur | Cas d’usage |
|---|---|---|
processed | Email accepté par SendGrid | Confirmation d’envoi |
delivered | Email livré au destinataire | Suivi de livraison |
open | Email ouvert | Scoring d’engagement |
click | Lien cliqué | Suivi d’intérêt |
bounce | Email rejeté | Hygiène de liste |
dropped | Email supprimé | Revue de conformité |
deferred | Livraison différée | Surveillance de retry |
spam_report | Marqué comme spam | Gestion de réputation |
unsubscribe | Désinscription via lien | Synchronisation 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 SendGridawait tajo.connectors.connect('sendgrid', { apiKey: process.env.SENDGRID_API_KEY});Migrer les contacts vers Brevo
// Migration complète des contacts de SendGrid vers Brevoawait tajo.connectors.sync('sendgrid', { type: 'full', resources: ['contacts', 'suppressions'], options: { includeCustomFields: true, migrateListMemberships: true, migrateSuppressions: true }});
// Vérifier le statut de migrationconst 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 SendGridapp.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 :
| Endpoint | Limite | Détails |
|---|---|---|
Mail Send (/v3/mail/send) | Dépend du plan | Free : 100/jour, Essentials : selon plan |
| Marketing Contacts PUT | 3 requêtes/seconde | Batch jusqu’à 30 000 contacts |
| Marketing Contacts Search | 50 requêtes/seconde | Par clé API |
| API générale | 1 000 requêtes/seconde | Par clé API |
| Event Webhook | Livraison batch | Jusqu’à 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ème | Cause | Solution |
|---|---|---|
| 401 Unauthorized | Clé API invalide | Vérifiez la clé API dans SendGrid Settings |
| 403 Forbidden | Permissions de clé API insuffisantes | Créez une nouvelle clé avec les périmètres requis |
| Export de contacts en attente | Traitement de gros dataset | Interrogez l’endpoint de statut d’export jusqu’à complétion |
| Synchronisation des suppressions incomplète | Pagination requise | Implémentez la pagination avec le paramètre offset |
| Event webhook non reçu | URL non vérifiée | Complé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: trueTester la connexion
tajo connectors test sendgrid# ✓ API connection successful# ✓ Contacts readable# ✓ Lists accessible# ✓ Statistics readable# ✓ Suppressions accessibleBonnes pratiques
- Migrez les suppressions en premier - Assurez-vous que les rebonds, blocages et désinscriptions sont dans Brevo avant d’envoyer
- Utilisez les téléversements de contacts en batch - PUT jusqu’à 30 000 contacts par requête pour l’efficacité
- Vérifiez l’Event Webhook - Activez les webhooks signés avec vérification ECDSA
- Mappez les champs personnalisés - Créez les attributs Brevo correspondants avant la migration des contacts
- Synchronisez les données d’engagement - Importez les stats historiques pour la segmentation dans Brevo
- 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