SendGrid konektor

Poveži svoj SendGrid nalog sa Brevo putem Tajo za migraciju email infrastrukture, sinhronizaciju kontakata, prenos podataka kampanja i unifikovanu analitiku angažovanja na obe platforme.

Pregled

SvojstvoVrednost
PlatformaSendGrid (Twilio)
KategorijaMarketing
Složenost podešavanjaLako
Zvanična integracijaDa
Sinhronizovani podaciKontakti, Kampanje, Transakcioni email, Događaji
Osnovni URL API-jahttps://api.sendgrid.com/v3

Karakteristike

  • Migracija kontakata - Migracija SendGrid Marketing kontakata u Brevo sa prilagođenim poljima
  • Sinhronizacija transakcionih emailova - Praćenje transakcionih email događaja za unifikovano izveštavanje
  • Podaci kampanje - Sinhronizacija podataka o performansama Single Send i Automation kampanja
  • Event webhook-ovi - Prosleđivanje email događaja (dostavljeno, otvoreno, kliknuto, odbijeno) u Brevo
  • Sinhronizacija suzbijanja - Migracija lista odbijanja, blokiranja i odjave radi usklađenosti
  • Migracija šablona - Izvoz dinamičnih transakcionih šablona za upotrebu u Brevo
  • Verifikacija pošiljaoca - Sinhronizacija verifikovanih identiteta pošiljaoca i autentifikacije domene
  • Sinhronizacija statistika - Uvoz istorijskih statistika angažovanja u Brevo atribute

Preduslovi

Pre nego što započneš, proveri da imaš:

  1. SendGrid nalog (Free, Essentials, Pro ili Premier)
  2. SendGrid API ključ sa potrebnim dozvolama
  3. Brevo nalog sa API pristupom
  4. Tajo nalog

Autentifikacija

Autentifikacija API ključem

SendGrid koristi autentifikaciju bearer tokenom.

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

Kreiraj API ključeve u SendGrid Settings > API Keys sa specifičnim nivoima dozvola:

  • Full Access - Kompletan API pristup
  • Restricted Access - Granularna kontrola dozvola
  • Billing Access - Operacije samo za naplatu

Potrebne dozvole

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

Bezbednost API ključa

SendGrid API ključevi se prikazuju samo jednom pri kreiranju. Čuvaj ih na sigurnom mestu. Ako ih izgubiš, moraš kreirati novi ključ.

Konfiguracija

Osnovno podešavanje

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

Mapiranje polja

Mapiranje polja SendGrid kontakata na Brevo atribute kontakta:

Default Mappings

Parameter Type Description
email required
string

Email adresa kontakta (jedinstveni identifikator)

first_name optional
string

Mapira se na atribut FIRSTNAME

last_name optional
string

Mapira se na atribut LASTNAME

phone_number optional
string

Mapira se na atribut SMS

city optional
string

Grad kontakta

country optional
string

Zemlja kontakta

custom_fields optional
object

Parovi ključ-vrednost prilagođenih polja

list_ids optional
array

Članstvo na SendGrid listama

Mapiranje prilagođenih polja

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 endpointi

Marketing kontakti

MetodaEndpointOpis
PUT/v3/marketing/contactsDodavanje ili ažuriranje kontakata
POST/v3/marketing/contacts/searchPretraga kontakata
GET/v3/marketing/contacts/countDohvatanje broja kontakata
POST/v3/marketing/contacts/exportsIzvoz kontakata
DELETE/v3/marketing/contactsBrisanje kontakata
GET/v3/marketing/listsListanje svih listi kontakata

Transakcioni email (Mail Send)

MetodaEndpointOpis
POST/v3/mail/sendSlanje emaila
GET/v3/templatesListanje dinamičnih šablona
GET/v3/templates/{id}Dohvatanje detalja šablona

Kampanje (Single Sends)

MetodaEndpointOpis
GET/v3/marketing/singlesendsListanje Single Sends
GET/v3/marketing/singlesends/{id}Dohvatanje detalja Single Send
GET/v3/marketing/automationsListanje automatizacija

Statistike

MetodaEndpointOpis
GET/v3/statsDohvatanje globalnih email statistika
GET/v3/categories/statsDohvatanje statistika po kategoriji
GET/v3/marketing/stats/singlesendsDohvatanje statistika Single Send

Suzbijanja

MetodaEndpointOpis
GET/v3/suppression/bouncesListanje odbijenih emailova
GET/v3/suppression/blocksListanje blokiranih emailova
GET/v3/suppression/spam_reportsListanje spam prijava
GET/v3/suppression/unsubscribesListanje globalnih odjava

Događaji

Email događaji (putem Event Webhook-a)

DogađajOkidačSlučaj upotrebe
processedEmail prihvaćen od strane SendGrid-aPotvrda slanja
deliveredEmail dostavljen primaocuPraćenje dostave
openEmail otvorenOcenjivanje angažovanja
clickVeza kliknutaPraćenje interesa
bounceEmail odbijenHigijena liste
droppedEmail suzbijenPregled usklađenosti
deferredDostava odloženaPraćenje ponovnih pokušaja
spam_reportOznačen kao spamUpravljanje reputacijom
unsubscribeOdjavljen putem vezeSinhronizacija preferencija

Primeri koda

Inicijalizacija konektora

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

Migracija kontakata u 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
// }

Prosleđivanje email događaja

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

Ograničenja brzine

Ograničenja brzine SendGrid API-ja:

EndpointLimitDetalji
Mail Send (/v3/mail/send)Zavisi od planaFree: 100/dan, Essentials: na osnovu plana
Marketing Contacts PUT3 zahteva/sekundiBatch do 30.000 kontakata
Marketing Contacts Search50 zahteva/sekundiPo API ključu
Opšti API1.000 zahteva/sekundiPo API ključu
Event WebhookBatch isporukaDo 1.000 događaja po POST zahtevu

Limiti Mail Send

Limiti Mail Send zavise od tvog SendGrid plana. Free nalozi su ograničeni na 100 emailova/dan. Proveri detalje svog plana za tačne limite slanja.

Rešavanje problema

Česti problemi

ProblemUzrokRešenje
401 UnauthorizedNevažeći API ključVerifikuj API ključ u SendGrid Settings
403 ForbiddenNedovoljne dozvole API ključaKreiraj novi ključ sa potrebnim skopovima
Izvoz kontakata na čekanjuObrada velikog skupa podatakaIspitivaj endpoint statusa izvoza do završetka
Nepotpuna sinhronizacija suzbijanjaPotrebna paginacijaImplementiraj paginaciju sa offset parametrom
Webhook nije primljenURL nije verifikovanZavrši verifikaciju webhook URL-a u SendGrid-u

Debug režim

Uključi detaljno logovanje:

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

Testiraj vezu

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

Najbolje prakse

  1. Najpre migrišu suzbijanja - Osiguraj da su odbijanja, blokiranja i odjave u Brevo pre slanja
  2. Koristi batch uploadove kontakata - PUT do 30.000 kontakata po zahtevu radi efikasnosti
  3. Verifikuj Event Webhook - Omogući potpisane webhook-ove sa ECDSA verifikacijom
  4. Mapiraj prilagođena polja - Kreiraj odgovarajuće Brevo atribute pre migracije kontakata
  5. Sinhronizuj podatke o angažovanju - Uvezi istorijske statistike za segmentaciju u Brevo
  6. Obrađuj asinhroni izvoz - Izvozi kontakata su asinhroni; ispitivaj do završetka

Bezbednost

  • Autentifikacija API ključem - Bearer token sa granularnim nivoima dozvola
  • Potpisivanje Event Webhook-a - ECDSA verifikacija potpisa za webhook payloade
  • TLS enkripcija - Sva API komunikacija enkriptovana putem HTTPS
  • Upravljanje IP pristupom - Ograniči pristup Dashboard-u i API-ju po IP adresi
  • Dvofaktorska autentifikacija - 2FA dostupna za pristup nalogu

Povezani resursi

Subscribe to updates

developer-docs

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

auto-detect
AI асистент

Здраво! Питајте ме о документацији.