SendGrid Connector
Forbind din SendGrid-konto til Brevo via Tajo for migrering af e-mailinfrastruktur, kontaktsynkronisering, overførsel af kampagnedata og forenet engagementanalyse på tværs af begge platforme.
Oversigt
| Egenskab | Værdi |
|---|---|
| Platform | SendGrid (Twilio) |
| Kategori | Marketing |
| Opsætningskompleksitet | Let |
| Officiel integration | Ja |
| Synkroniserede data | Kontakter, kampagner, transaktionelle e-mails, hændelser |
| API-base-URL | https://api.sendgrid.com/v3 |
Funktioner
- Kontaktmigrering - Migrér SendGrid Marketing-kontakter til Brevo med brugerdefinerede felter
- Synkronisering af transaktionelle e-mails - Spor transaktionelle e-mailhændelser til forenet rapportering
- Kampagnedata - Synkronisér Single Send- og Automation-kampagneperformance-data
- Hændelses-webhooks - Videresend e-mailhændelser (leveret, åbnet, klikket, afvist) til Brevo
- Suppression-synkronisering - Migrér bounce-, block- og unsubscribe-lister til compliance
- Skabelonmigrering - Eksportér Dynamic Transactional Templates til brug i Brevo
- Afsenderverifikation - Synkronisér verificerede afsenderidentiteter og domæneautentifikation
- Synkronisering af statistik - Importér historiske engagementstatistikker til Brevo-attributter
Forudsætninger
Før du begynder, skal du sikre dig, at du har:
- En SendGrid-konto (Free, Essentials, Pro eller Premier)
- En SendGrid API-nøgle med de påkrævede rettigheder
- En Brevo-konto med API-adgang
- En Tajo-konto
Autentifikation
API-nøgle-autentifikation
SendGrid bruger bearer-token-autentifikation.
curl https://api.sendgrid.com/v3/marketing/contacts \ -H "Authorization: Bearer SG.YOUR_API_KEY" \ -H "Content-Type: application/json"Opret API-nøgler i SendGrid Settings > API Keys med specifikke rettighedsniveauer:
- Full Access - Komplet API-adgang
- Restricted Access - Granulær rettighedskontrol
- Billing Access - Kun faktureringsoperationer
Påkrævede rettigheder
Marketing: Full Access - Contacts (read) - Single Sends (read) - Automations (read)Mail Send: Full Access - Mail Send (read)Stats: Read AccessSuppressions: Read AccessTracking: Read AccessSikkerhed for API-nøgler
SendGrid API-nøgler vises kun én gang ved oprettelsen. Opbevar dem sikkert. Hvis den mistes, skal du oprette en ny nøgle.
Konfiguration
Grundlæggende opsætning
connectors: sendgrid: enabled: true api_key: "${SENDGRID_API_KEY}"
# Data sync options sync: contacts: true campaigns: true transactional: true suppressions: true statistics: true
# List mapping to Brevo list_mapping: "All Contacts": 60 "Newsletter": 61 "Transactional": 62Feltmapping
Knyt SendGrid-kontaktfelter til Brevo-kontaktattributter:
Standardmappings
| Parameter | Type | Description |
|---|---|---|
email required | string | Kontaktens e-mailadresse (unik identifikator) |
first_name optional | string | Mapper til FIRSTNAME-attribut |
last_name optional | string | Mapper til LASTNAME-attribut |
phone_number optional | string | Mapper til SMS-attribut |
city optional | string | Kontaktens by |
country optional | string | Kontaktens land |
custom_fields optional | object | Nøgleværdipar for brugerdefinerede felter |
list_ids optional | array | SendGrid-listemedlemskaber |
Brugerdefineret feltmapping
field_mapping: # Standard fields email: email first_name: FIRSTNAME last_name: LASTNAME phone_number: SMS
# Location fields city: CITY state_province_region: STATE country: COUNTRY postal_code: POSTAL_CODE
# Engagement metrics avg_open_rate: AVG_OPEN_RATE avg_click_rate: AVG_CLICK_RATE
# Custom fields custom_fields.company: COMPANY_NAME custom_fields.plan: PLAN_TYPEAPI-endpoints
Marketing-kontakter
| Metode | Endpoint | Beskrivelse |
|---|---|---|
PUT | /v3/marketing/contacts | Tilføj eller opdatér kontakter |
POST | /v3/marketing/contacts/search | Søg kontakter |
GET | /v3/marketing/contacts/count | Hent kontakt-antal |
POST | /v3/marketing/contacts/exports | Eksportér kontakter |
DELETE | /v3/marketing/contacts | Slet kontakter |
GET | /v3/marketing/lists | Vis alle kontaktlister |
Transaktionel e-mail (Mail Send)
| Metode | Endpoint | Beskrivelse |
|---|---|---|
POST | /v3/mail/send | Send en e-mail |
GET | /v3/templates | Vis Dynamic Templates |
GET | /v3/templates/{id} | Hent skabelondetaljer |
Kampagner (Single Sends)
| Metode | Endpoint | Beskrivelse |
|---|---|---|
GET | /v3/marketing/singlesends | Vis Single Sends |
GET | /v3/marketing/singlesends/{id} | Hent Single Send-detaljer |
GET | /v3/marketing/automations | Vis Automations |
Statistik
| Metode | Endpoint | Beskrivelse |
|---|---|---|
GET | /v3/stats | Hent global e-mailstatistik |
GET | /v3/categories/stats | Hent kategoristatistik |
GET | /v3/marketing/stats/singlesends | Hent Single Send-statistik |
Suppressions
| Metode | Endpoint | Beskrivelse |
|---|---|---|
GET | /v3/suppression/bounces | Vis afviste e-mails |
GET | /v3/suppression/blocks | Vis blokerede e-mails |
GET | /v3/suppression/spam_reports | Vis spamrapporter |
GET | /v3/suppression/unsubscribes | Vis globale afmeldinger |
Hændelser
E-mailhændelser (via Event Webhook)
| Hændelse | Trigger | Anvendelse |
|---|---|---|
processed | E-mail accepteret af SendGrid | Afsendelsesbekræftelse |
delivered | E-mail leveret til modtager | Leveringssporing |
open | E-mail åbnet | Engagementscoring |
click | Link klikket | Interessesporing |
bounce | E-mail afvist | Listehygiejne |
dropped | E-mail undertrykt | Compliance-gennemgang |
deferred | Levering udskudt | Retry-overvågning |
spam_report | Markeret som spam | Omdømmehåndtering |
unsubscribe | Afmeldt via link | Præferencesynkronisering |
Kodeeksempler
Initialisér konnektor
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect SendGridawait tajo.connectors.connect('sendgrid', { apiKey: process.env.SENDGRID_API_KEY});Migrér kontakter til Brevo
// Full contact migration from SendGrid to Brevoawait tajo.connectors.sync('sendgrid', { type: 'full', resources: ['contacts', 'suppressions'], options: { includeCustomFields: true, migrateListMemberships: true, migrateSuppressions: true }});
// Check migration statusconst status = await tajo.connectors.status('sendgrid');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// contactsMigrated: 45000,// suppressionsSynced: 3200,// listsMapped: 8// }Videresend e-mailhændelser
// Handle SendGrid Event Webhookapp.post('/webhooks/sendgrid', async (req, res) => { const signature = req.get('X-Twilio-Email-Event-Webhook-Signature');
// Verify webhook signature (ECDSA) if (!verifySendGridSignature(req.body, signature)) { return res.status(401).send('Unauthorized'); }
// Process batch of events 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');});Ratebegrænsninger
SendGrid API-ratebegrænsninger:
| Endpoint | Grænse | Detaljer |
|---|---|---|
Mail Send (/v3/mail/send) | Afhænger af plan | Free: 100/dag, Essentials: baseret på plan |
| Marketing Contacts PUT | 3 forespørgsler/sekund | Batch op til 30.000 kontakter |
| Marketing Contacts Search | 50 forespørgsler/sekund | Per API-nøgle |
| Generel API | 1.000 forespørgsler/sekund | Per API-nøgle |
| Event Webhook | Batch-levering | Op til 1.000 hændelser per POST |
Mail Send-grænser
Mail Send-grænser afhænger af din SendGrid-plan. Gratis konti er begrænset til 100 e-mails/dag. Tjek dine plandetaljer for præcise afsendelsesgrænser.
Fejlfinding
Almindelige problemer
| Problem | Årsag | Løsning |
|---|---|---|
| 401 Unauthorized | Ugyldig API-nøgle | Verificér API-nøgle i SendGrid Settings |
| 403 Forbidden | Utilstrækkelige API-nøglerettigheder | Opret ny nøgle med de påkrævede scopes |
| Kontakteksport afventer | Stort datasæt behandles | Poll eksportstatus-endpoint, indtil den er fuldført |
| Suppression-synkronisering ufuldstændig | Paginering påkrævet | Implementér paginering med offset-parameter |
| Event-webhook ikke modtaget | URL ikke verificeret | Gennemfør webhook-URL-verifikation i SendGrid |
Fejlfindingstilstand
Aktivér udførlig logning:
connectors: sendgrid: debug: true log_level: verbose log_webhooks: trueTest forbindelse
tajo connectors test sendgrid# ✓ API connection successful# ✓ Contacts readable# ✓ Lists accessible# ✓ Statistics readable# ✓ Suppressions accessibleBest practices
- Migrér suppressions først - Sørg for, at bounces, blocks og unsubscribes er i Brevo, før du sender
- Brug batch-kontaktuploads - PUT op til 30.000 kontakter per forespørgsel for effektivitet
- Verificér Event Webhook - Aktivér signerede webhooks med ECDSA-verifikation
- Map brugerdefinerede felter - Opret tilsvarende Brevo-attributter før kontaktmigrering
- Synkronisér engagementdata - Importér historisk statistik til segmentering i Brevo
- Håndtér asynkrone eksporter - Kontakteksporter er asynkrone; poll for fuldførelse
Sikkerhed
- API-nøgle-autentifikation - Bearer-token med granulære rettighedsniveauer
- Event Webhook-signering - ECDSA-signaturverifikation for webhook-payloads
- TLS-kryptering - Al API-kommunikation krypteret via HTTPS
- IP-adgangsstyring - Begræns Dashboard- og API-adgang efter IP
- Tofaktor-autentifikation - 2FA tilgængelig til kontoadgang