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

EgenskapVärde
PlattformSendGrid (Twilio)
KategoriMarknadsföring
InstallationskomplexitetEnkel
Officiell integrationJa
Data som synkasKontakter, kampanjer, transaktionsmejl, händelser
Bas-URL för APIhttps://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:

  1. Ett SendGrid-konto (Free, Essentials, Pro eller Premier)
  2. En SendGrid API-nyckel med nödvändiga behörigheter
  3. Ett Brevo-konto med API-åtkomst
  4. Ett Tajo-konto

Autentisering

API-nyckelautentisering

SendGrid använder bearer token-autentisering.

Terminal window
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 Access
Suppressions: Read Access
Tracking: Read Access

Sä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": 62

Fä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_TYPE

API-ändpunkter

Marketing-kontakter

MetodÄndpunktBeskrivning
PUT/v3/marketing/contactsLägg till eller uppdatera kontakter
POST/v3/marketing/contacts/searchSök kontakter
GET/v3/marketing/contacts/countHämta antal kontakter
POST/v3/marketing/contacts/exportsExportera kontakter
DELETE/v3/marketing/contactsTa bort kontakter
GET/v3/marketing/listsLista alla kontaktlistor

Transaktionsmejl (Mail Send)

MetodÄndpunktBeskrivning
POST/v3/mail/sendSkicka ett mejl
GET/v3/templatesLista Dynamic Templates
GET/v3/templates/{id}Hämta malldetaljer

Kampanjer (Single Sends)

MetodÄndpunktBeskrivning
GET/v3/marketing/singlesendsLista Single Sends
GET/v3/marketing/singlesends/{id}Hämta Single Send-detaljer
GET/v3/marketing/automationsLista automationer

Statistik

MetodÄndpunktBeskrivning
GET/v3/statsHämta global e-poststatistik
GET/v3/categories/statsHämta kategoristatistik
GET/v3/marketing/stats/singlesendsHämta Single Send-statistik

Suppressions

MetodÄndpunktBeskrivning
GET/v3/suppression/bouncesLista studsade mejl
GET/v3/suppression/blocksLista blockerade mejl
GET/v3/suppression/spam_reportsLista spam-rapporter
GET/v3/suppression/unsubscribesLista globala avprenumerationer

Händelser

E-posthändelser (via Event Webhook)

HändelseUtlösareAnvändningsfall
processedE-post accepterad av SendGridSändningsbekräftelse
deliveredE-post levererad till mottagareLeveransspårning
openE-post öppnadEngagemangspoäng
clickLänk klickadIntressespårning
bounceE-post studsadeListhygien
droppedE-post undertrycktEfterlevnadsgranskning
deferredLeveransen försenadÖvervakning av omförsök
spam_reportMarkerad som spamReputationshantering
unsubscribeAvprenumererade via länkPreferenssynk

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

Migrera kontakter till Brevo

// Full contact migration from SendGrid to Brevo
await tajo.connectors.sync('sendgrid', {
type: 'full',
resources: ['contacts', 'suppressions'],
options: {
includeCustomFields: true,
migrateListMemberships: true,
migrateSuppressions: true
}
});
// Check migration status
const 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 Webhook
app.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:

ÄndpunktGränsDetaljer
Mail Send (/v3/mail/send)Beror på planFree: 100/dag, Essentials: baserat på plan
Marketing Contacts PUT3 förfrågningar/sekundBatcha upp till 30 000 kontakter
Marketing Contacts Search50 förfrågningar/sekundPer API-nyckel
Allmänt API1 000 förfrågningar/sekundPer API-nyckel
Event WebhookBatchleveransUpp 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

ProblemOrsakLösning
401 UnauthorizedOgiltig API-nyckelVerifiera API-nyckeln i SendGrid Settings
403 ForbiddenOtillräckliga behörigheter för API-nyckelnSkapa ny nyckel med nödvändiga scopes
Kontaktexporten väntarBearbetning av stor datamängdPollla export-statusändpunkten tills den är klar
Ofullständig suppression-synkPaginering krävsImplementera paginering med offset-parameter
Event webhook tas inte emotURL ej verifieradSlutför verifiering av webhook-URL i SendGrid

Debug-läge

Aktivera utförlig loggning:

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

Testa anslutningen

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

Bästa praxis

  1. Migrera suppressions först - Se till att studsar, blockeringar och avprenumerationer finns i Brevo innan utskick
  2. Använd batchuppladdning av kontakter - PUT upp till 30 000 kontakter per förfrågan för effektivitet
  3. Verifiera Event Webhook - Aktivera signerade webhooks med ECDSA-verifiering
  4. Mappa anpassade fält - Skapa motsvarande Brevo-attribut innan kontaktmigrering
  5. Synka engagemangsdata - Importera historisk statistik för segmentering i Brevo
  6. 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

Relaterade resurser

Subscribe to updates

developer-docs

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

auto-detect
AI-assistent

Hej! Fråga mig om dokumentationen.