Conector SendGrid

Conectați contul SendGrid la Brevo prin Tajo pentru migrarea infrastructurii de e-mail, sincronizarea contactelor, transferul datelor de campanie și analize unificate de implicare pe ambele platforme.

Prezentare generală

ProprietateValoare
PlatformăSendGrid (Twilio)
CategorieMarketing
Complexitate configurareUșoară
Integrare oficialăDa
Date sincronizateContacte, Campanii, E-mail tranzacțional, Evenimente
URL de bază APIhttps://api.sendgrid.com/v3

Funcționalități

  • Migrare contacte - Migrați contactele de marketing SendGrid la Brevo cu câmpuri personalizate
  • Sincronizare e-mail tranzacțional - Urmăriți evenimentele de e-mail tranzacțional pentru raportare unificată
  • Date campanii - Sincronizați datele de performanță ale campaniilor Single Send și Automation
  • Webhook-uri evenimente - Redirecționați evenimentele de e-mail (livrate, deschise, accesate, respinse) la Brevo
  • Sincronizare supresii - Migrați listele de respingeri, blocări și dezabonări pentru conformitate
  • Migrare șabloane - Exportați Șabloanele Tranzacționale Dinamice pentru utilizare în Brevo
  • Verificare expeditor - Sincronizați identitățile de expeditor verificate și autentificarea domeniului
  • Sincronizare statistici - Importați statisticile istorice de implicare în atributele Brevo

Cerințe preliminare

Înainte de a începe, asigurați-vă că aveți:

  1. Un cont SendGrid (Free, Essentials, Pro sau Premier)
  2. O cheie API SendGrid cu permisiunile necesare
  3. Un cont Brevo cu acces API
  4. Un cont Tajo

Autentificare

Autentificare cu cheie API

SendGrid utilizează autentificarea cu token bearer.

Terminal window
curl https://api.sendgrid.com/v3/marketing/contacts \
-H "Authorization: Bearer SG.YOUR_API_KEY" \
-H "Content-Type: application/json"

Creați chei API în SendGrid Settings > API Keys cu niveluri specifice de permisiune:

  • Acces complet - Acces complet la API
  • Acces restricționat - Control granular al permisiunilor
  • Acces facturare - Operații numai de facturare

Permisiuni necesare

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

Securitate cheie API

Cheile API SendGrid sunt afișate o singură dată la creare. Stocați-le în siguranță. Dacă sunt pierdute, trebuie să creați o cheie nouă.

Configurare

Configurare de bază

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

Mapare câmpuri

Mapați câmpurile de contact SendGrid la atributele de contact Brevo:

Mapări implicite

Parameter Type Description
email required
string

Adresa de e-mail a contactului (identificator unic)

first_name optional
string

Mapează la atributul FIRSTNAME

last_name optional
string

Mapează la atributul LASTNAME

phone_number optional
string

Mapează la atributul SMS

city optional
string

Orașul contactului

country optional
string

Țara contactului

custom_fields optional
object

Perechi cheie-valoare ale câmpurilor personalizate

list_ids optional
array

Apartenența la listele SendGrid

Mapare câmpuri personalizate

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

Puncte finale API

Contacte marketing

MetodăPunct finalDescriere
PUT/v3/marketing/contactsAdaugă sau actualizează contacte
POST/v3/marketing/contacts/searchCaută contacte
GET/v3/marketing/contacts/countObține numărul de contacte
POST/v3/marketing/contacts/exportsExportă contacte
DELETE/v3/marketing/contactsȘterge contacte
GET/v3/marketing/listsListează toate listele de contacte

E-mail tranzacțional (Mail Send)

MetodăPunct finalDescriere
POST/v3/mail/sendTrimite un e-mail
GET/v3/templatesListează Șabloanele Dinamice
GET/v3/templates/{id}Obține detalii șablon

Campanii (Single Sends)

MetodăPunct finalDescriere
GET/v3/marketing/singlesendsListează Single Sends
GET/v3/marketing/singlesends/{id}Obține detalii Single Send
GET/v3/marketing/automationsListează automatizările

Statistici

MetodăPunct finalDescriere
GET/v3/statsObține statistici globale e-mail
GET/v3/categories/statsObține statistici pe categorii
GET/v3/marketing/stats/singlesendsObține statisticile Single Send

Supresii

MetodăPunct finalDescriere
GET/v3/suppression/bouncesListează e-mailurile respinse
GET/v3/suppression/blocksListează e-mailurile blocate
GET/v3/suppression/spam_reportsListează rapoartele de spam
GET/v3/suppression/unsubscribesListează dezabonările globale

Evenimente

Evenimente e-mail (prin Event Webhook)

EvenimentDeclanșatorCaz de utilizare
processedE-mail acceptat de SendGridConfirmare trimitere
deliveredE-mail livrat destinataruluiUrmărire livrare
openE-mail deschisScorare implicare
clickLink accesatUrmărire interes
bounceE-mail respinsIgienă listă
droppedE-mail suprimatRevizuire conformitate
deferredLivrare amânatăMonitorizare reîncercare
spam_reportMarcat ca spamGestionare reputație
unsubscribeDezabonat prin linkSincronizare preferințe

Exemple de cod

Inițializare conector

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
});

Migrare contacte la 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
// }

Redirecționare evenimente e-mail

// 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');
});

Limite de rată

Limite de rată API SendGrid:

Punct finalLimităDetalii
Mail Send (/v3/mail/send)Dependent de planFree: 100/zi, Essentials: bazat pe plan
Marketing Contacts PUT3 cereri/secundăLot de până la 30.000 de contacte
Marketing Contacts Search50 cereri/secundăPer cheie API
API general1.000 cereri/secundăPer cheie API
Event WebhookLivrare în lotPână la 1.000 de evenimente per POST

Limite Mail Send

Limitele Mail Send depind de planul SendGrid. Conturile Free sunt limitate la 100 de e-mailuri/zi. Verificați detaliile planului pentru limitele exacte de trimitere.

Depanare

Probleme frecvente

ProblemăCauzăSoluție
401 NeautorizatCheie API invalidăVerificați cheia API în SendGrid Settings
403 InterzisPermisiuni insuficiente ale cheii APICreați o cheie nouă cu scope-urile necesare
Export contacte în așteptareProcesare set de date mareInterogați punctul final de status export până la finalizare
Sincronizare supresii incompletăPaginare necesarăImplementați paginarea cu parametrul offset
Webhook de eveniment neprimitURL neverificatCompletați verificarea URL webhook în SendGrid

Modul de depanare

Activați jurnalizarea verbosă:

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

Testare conexiune

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

Bune practici

  1. Migrați supresiile mai întâi - Asigurați că respingerile, blocările și dezabonările sunt în Brevo înainte de trimitere
  2. Utilizați încărcări de contacte în lot - PUT până la 30.000 de contacte per cerere pentru eficiență
  3. Verificați Event Webhook - Activați webhook-uri semnate cu verificare ECDSA
  4. Mapați câmpurile personalizate - Creați atributele Brevo corespunzătoare înainte de migrarea contactelor
  5. Sincronizați datele de implicare - Importați statisticile istorice pentru segmentare în Brevo
  6. Gestionați exporturile asincrone - Exporturile de contacte sunt asincrone; interogați pentru finalizare

Securitate

  • Autentificare cu cheie API - Token bearer cu niveluri granulare de permisiune
  • Semnare Event Webhook - Verificare semnătură ECDSA pentru payload-urile webhook
  • Criptare TLS - Toate comunicațiile API criptate prin HTTPS
  • Gestionare acces IP - Restricționați accesul la Tabloul de bord și API pe baza IP-ului
  • Autentificare în doi pași - 2FA disponibil pentru accesul la cont

Resurse conexe

Subscribe to updates

developer-docs

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

auto-detect
Asistent AI

Bună! Întreabă-mă orice despre documentație.