SendGrid-koppling
Anslut ditt SendGrid-konto till Brevo via Tajo för migrering av e-postinfrastruktur, kontaktsynkronisering, överföring av kampanjdata och enhetlig engagemangsanalys över båda plattformarna.
Översikt
| Egenskap | Värde |
|---|---|
| Plattform | SendGrid (Twilio) |
| Kategori | Marknadsföring |
| Installationskomplexitet | Enkel |
| Officiell integration | Ja |
| Data som synkas | Kontakter, kampanjer, transaktionsmejl, händelser |
| Bas-URL för API | https://api.sendgrid.com/v3 |
Funktioner
- Kontaktmigrering - Migrera SendGrid Marketing-kontakter till Brevo med anpassade fält
- Synk av transaktionsmejl - Spåra transaktionsmejlhändelser för enhetlig rapportering
- Kampanjdata - Synka prestandadata från Single Send- och Automation-kampanjer
- Händelse-webhooks - Vidarebefordra e-posthändelser (delivered, opened, clicked, bounced) till Brevo
- Suppression-synk - Migrera studs-, block- och avprenumerationslistor för efterlevnad
- Mallmigrering - Exportera Dynamic Transactional Templates för användning i Brevo
- Avsändarverifiering - Synka verifierade avsändaridentiteter och domänautentisering
- Statistiksynk - Importera historisk engagemangsstatistik till Brevo-attribut
Förutsättningar
Innan du börjar, se till att du har:
- Ett SendGrid-konto (Free, Essentials, Pro eller Premier)
- En SendGrid API-nyckel med nödvändiga behörigheter
- Ett Brevo-konto med API-åtkomst
- Ett Tajo-konto
Autentisering
API-nyckelautentisering
SendGrid använder bearer token-autentisering.
curl https://api.sendgrid.com/v3/marketing/contacts \ -H "Authorization: Bearer SG.YOUR_API_KEY" \ -H "Content-Type: application/json"Skapa API-nycklar under SendGrid Settings > API Keys med specifika behörighetsnivåer:
- Full Access - Fullständig API-åtkomst
- Restricted Access - Granulär behörighetskontroll
- Billing Access - Endast faktureringsoperationer
Nödvändiga behörigheter
Marketing: Full Access - Contacts (read) - Single Sends (read) - Automations (read)Mail Send: Full Access - Mail Send (read)Stats: Read AccessSuppressions: Read AccessTracking: Read AccessSäkerhet för API-nycklar
SendGrid API-nycklar visas endast en gång vid skapandet. Lagra dem säkert. Om de förloras måste du skapa en ny nyckel.
Konfiguration
Grundläggande konfiguration
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": 62Fältmappning
Mappa SendGrid-kontaktfält till Brevo-kontaktattribut:
Standardmappningar
| Parameter | Type | Description |
|---|---|---|
email required | string | Kontaktens e-postadress (unik identifierare) |
first_name optional | string | Mappas till attributet FIRSTNAME |
last_name optional | string | Mappas till attributet LASTNAME |
phone_number optional | string | Mappas till SMS-attributet |
city optional | string | Kontaktens stad |
country optional | string | Kontaktens land |
custom_fields optional | object | Nyckel-värde-par för anpassade fält |
list_ids optional | array | SendGrid-listmedlemskap |
Anpassad fältmappning
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-ändpunkter
Marketing-kontakter
| Metod | Ändpunkt | Beskrivning |
|---|---|---|
PUT | /v3/marketing/contacts | Lägg till eller uppdatera kontakter |
POST | /v3/marketing/contacts/search | Sök kontakter |
GET | /v3/marketing/contacts/count | Hämta antal kontakter |
POST | /v3/marketing/contacts/exports | Exportera kontakter |
DELETE | /v3/marketing/contacts | Ta bort kontakter |
GET | /v3/marketing/lists | Lista alla kontaktlistor |
Transaktionsmejl (Mail Send)
| Metod | Ändpunkt | Beskrivning |
|---|---|---|
POST | /v3/mail/send | Skicka ett mejl |
GET | /v3/templates | Lista Dynamic Templates |
GET | /v3/templates/{id} | Hämta malldetaljer |
Kampanjer (Single Sends)
| Metod | Ändpunkt | Beskrivning |
|---|---|---|
GET | /v3/marketing/singlesends | Lista Single Sends |
GET | /v3/marketing/singlesends/{id} | Hämta Single Send-detaljer |
GET | /v3/marketing/automations | Lista automationer |
Statistik
| Metod | Ändpunkt | Beskrivning |
|---|---|---|
GET | /v3/stats | Hämta global e-poststatistik |
GET | /v3/categories/stats | Hämta kategoristatistik |
GET | /v3/marketing/stats/singlesends | Hämta Single Send-statistik |
Suppressions
| Metod | Ändpunkt | Beskrivning |
|---|---|---|
GET | /v3/suppression/bounces | Lista studsade mejl |
GET | /v3/suppression/blocks | Lista blockerade mejl |
GET | /v3/suppression/spam_reports | Lista spam-rapporter |
GET | /v3/suppression/unsubscribes | Lista globala avprenumerationer |
Händelser
E-posthändelser (via Event Webhook)
| Händelse | Utlösare | Användningsfall |
|---|---|---|
processed | E-post accepterad av SendGrid | Sändningsbekräftelse |
delivered | E-post levererad till mottagare | Leveransspårning |
open | E-post öppnad | Engagemangspoäng |
click | Länk klickad | Intressespårning |
bounce | E-post studsade | Listhygien |
dropped | E-post undertryckt | Efterlevnadsgranskning |
deferred | Leveransen försenad | Övervakning av omförsök |
spam_report | Markerad som spam | Reputationshantering |
unsubscribe | Avprenumererade via länk | Preferenssynk |
Kodexempel
Initiera kopplingen
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});Migrera kontakter till 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// }Vidarebefordra e-posthä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');});API-gränser
Rate limits för SendGrid API:
| Ändpunkt | Gräns | Detaljer |
|---|---|---|
Mail Send (/v3/mail/send) | Beror på plan | Free: 100/dag, Essentials: baserat på plan |
| Marketing Contacts PUT | 3 förfrågningar/sekund | Batcha upp till 30 000 kontakter |
| Marketing Contacts Search | 50 förfrågningar/sekund | Per API-nyckel |
| Allmänt API | 1 000 förfrågningar/sekund | Per API-nyckel |
| Event Webhook | Batchleverans | Upp till 1 000 händelser per POST |
Mail Send-gränser
Mail Send-gränser beror på din SendGrid-plan. Gratiskonton är begränsade till 100 mejl/dag. Kontrollera dina plandetaljer för exakta utskicksgränser.
Felsökning
Vanliga problem
| Problem | Orsak | Lösning |
|---|---|---|
| 401 Unauthorized | Ogiltig API-nyckel | Verifiera API-nyckeln i SendGrid Settings |
| 403 Forbidden | Otillräckliga behörigheter för API-nyckeln | Skapa ny nyckel med nödvändiga scopes |
| Kontaktexporten väntar | Bearbetning av stor datamängd | Pollla export-statusändpunkten tills den är klar |
| Ofullständig suppression-synk | Paginering krävs | Implementera paginering med offset-parameter |
| Event webhook tas inte emot | URL ej verifierad | Slutför verifiering av webhook-URL i SendGrid |
Debug-läge
Aktivera utförlig loggning:
connectors: sendgrid: debug: true log_level: verbose log_webhooks: trueTesta anslutningen
tajo connectors test sendgrid# ✓ API connection successful# ✓ Contacts readable# ✓ Lists accessible# ✓ Statistics readable# ✓ Suppressions accessibleBästa praxis
- Migrera suppressions först - Se till att studsar, blockeringar och avprenumerationer finns i Brevo innan utskick
- Använd batchuppladdning av kontakter - PUT upp till 30 000 kontakter per förfrågan för effektivitet
- Verifiera Event Webhook - Aktivera signerade webhooks med ECDSA-verifiering
- Mappa anpassade fält - Skapa motsvarande Brevo-attribut innan kontaktmigrering
- Synka engagemangsdata - Importera historisk statistik för segmentering i Brevo
- Hantera asynkrona exporter - Kontaktexporter är asynkrona; pollla för att se när de är klara
Säkerhet
- API-nyckelautentisering - Bearer token med granulära behörighetsnivåer
- Signering av Event Webhook - Verifiering av ECDSA-signaturer för webhook-payloads
- TLS-kryptering - All API-kommunikation krypteras via HTTPS
- IP Access Management - Begränsa dashboard- och API-åtkomst via IP
- Tvåfaktorsautentisering - 2FA tillgängligt för kontoåtkomst