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

EgenskabVærdi
PlatformSendGrid (Twilio)
KategoriMarketing
OpsætningskompleksitetLet
Officiel integrationJa
Synkroniserede dataKontakter, kampagner, transaktionelle e-mails, hændelser
API-base-URLhttps://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:

  1. En SendGrid-konto (Free, Essentials, Pro eller Premier)
  2. En SendGrid API-nøgle med de påkrævede rettigheder
  3. En Brevo-konto med API-adgang
  4. En Tajo-konto

Autentifikation

API-nøgle-autentifikation

SendGrid bruger bearer-token-autentifikation.

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

Sikkerhed 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": 62

Feltmapping

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_TYPE

API-endpoints

Marketing-kontakter

MetodeEndpointBeskrivelse
PUT/v3/marketing/contactsTilføj eller opdatér kontakter
POST/v3/marketing/contacts/searchSøg kontakter
GET/v3/marketing/contacts/countHent kontakt-antal
POST/v3/marketing/contacts/exportsEksportér kontakter
DELETE/v3/marketing/contactsSlet kontakter
GET/v3/marketing/listsVis alle kontaktlister

Transaktionel e-mail (Mail Send)

MetodeEndpointBeskrivelse
POST/v3/mail/sendSend en e-mail
GET/v3/templatesVis Dynamic Templates
GET/v3/templates/{id}Hent skabelondetaljer

Kampagner (Single Sends)

MetodeEndpointBeskrivelse
GET/v3/marketing/singlesendsVis Single Sends
GET/v3/marketing/singlesends/{id}Hent Single Send-detaljer
GET/v3/marketing/automationsVis Automations

Statistik

MetodeEndpointBeskrivelse
GET/v3/statsHent global e-mailstatistik
GET/v3/categories/statsHent kategoristatistik
GET/v3/marketing/stats/singlesendsHent Single Send-statistik

Suppressions

MetodeEndpointBeskrivelse
GET/v3/suppression/bouncesVis afviste e-mails
GET/v3/suppression/blocksVis blokerede e-mails
GET/v3/suppression/spam_reportsVis spamrapporter
GET/v3/suppression/unsubscribesVis globale afmeldinger

Hændelser

E-mailhændelser (via Event Webhook)

HændelseTriggerAnvendelse
processedE-mail accepteret af SendGridAfsendelsesbekræftelse
deliveredE-mail leveret til modtagerLeveringssporing
openE-mail åbnetEngagementscoring
clickLink klikketInteressesporing
bounceE-mail afvistListehygiejne
droppedE-mail undertryktCompliance-gennemgang
deferredLevering udskudtRetry-overvågning
spam_reportMarkeret som spamOmdømmehåndtering
unsubscribeAfmeldt via linkPræ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 SendGrid
await tajo.connectors.connect('sendgrid', {
apiKey: process.env.SENDGRID_API_KEY
});

Migrér kontakter til 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
// }

Videresend e-mailhæ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');
});

Ratebegrænsninger

SendGrid API-ratebegrænsninger:

EndpointGrænseDetaljer
Mail Send (/v3/mail/send)Afhænger af planFree: 100/dag, Essentials: baseret på plan
Marketing Contacts PUT3 forespørgsler/sekundBatch op til 30.000 kontakter
Marketing Contacts Search50 forespørgsler/sekundPer API-nøgle
Generel API1.000 forespørgsler/sekundPer API-nøgle
Event WebhookBatch-leveringOp 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ÅrsagLøsning
401 UnauthorizedUgyldig API-nøgleVerificér API-nøgle i SendGrid Settings
403 ForbiddenUtilstrækkelige API-nøglerettighederOpret ny nøgle med de påkrævede scopes
Kontakteksport afventerStort datasæt behandlesPoll eksportstatus-endpoint, indtil den er fuldført
Suppression-synkronisering ufuldstændigPaginering påkrævetImplementér paginering med offset-parameter
Event-webhook ikke modtagetURL ikke verificeretGennemfør webhook-URL-verifikation i SendGrid

Fejlfindingstilstand

Aktivér udførlig logning:

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

Test forbindelse

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

Best practices

  1. Migrér suppressions først - Sørg for, at bounces, blocks og unsubscribes er i Brevo, før du sender
  2. Brug batch-kontaktuploads - PUT op til 30.000 kontakter per forespørgsel for effektivitet
  3. Verificér Event Webhook - Aktivér signerede webhooks med ECDSA-verifikation
  4. Map brugerdefinerede felter - Opret tilsvarende Brevo-attributter før kontaktmigrering
  5. Synkronisér engagementdata - Importér historisk statistik til segmentering i Brevo
  6. 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

Relaterede ressourcer

Subscribe to updates

developer-docs

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

auto-detect
AI-assistent

Hej! Spørg mig om dokumentationen.