SendGrid Connector
Poveži račun SendGrid z Brevo prek Tajo za migracijo e-mailne infrastrukture, sinhronizacijo stikov, prenos podatkov kampanj in enotno analitiko angažiranosti na obeh platformah.
Pregled
| Lastnost | Vrednost |
|---|---|
| Platforma | SendGrid (Twilio) |
| Kategorija | Marketing |
| Zahtevnost nastavitve | Enostavna |
| Uradna integracija | Da |
| Sinhronizirani podatki | Stiki, kampanje, transakcijski e-mail, dogodki |
| Osnovni URL API | https://api.sendgrid.com/v3 |
Funkcionalnosti
- Migracija stikov – prenesi marketinške stike SendGrid v Brevo s polji po meri
- Sinhronizacija transakcijskega e-maila – sledi transakcijskim e-mailnim dogodkom za enotno poročanje
- Podatki kampanj – sinhroniziraj podatke o uspešnosti kampanj Single Send in Automation
- Webhooks za dogodke – posreduj e-mailne dogodke (dostavljen, odprt, kliknjen, odbijen) v Brevo
- Sinhronizacija zatavljanja – prenesi sezname odbite, blokirane in odjavljene pošte za skladnost
- Migracija predlog – izvozi Dynamic Transactional Templates za uporabo v Brevo
- Preverjanje pošiljatelja – sinhroniziraj preverjene identitete pošiljatelja in avtentikacijo domene
- Sinhronizacija statistik – uvozi zgodovinske angažirne statistike v atribute Brevo
Predpogoji
Preden začneš, se prepričaj, da imaš:
- Račun SendGrid (Free, Essentials, Pro ali Premier)
- API ključ SendGrid z zahtevanimi dovoljenji
- Brevo račun z dostopom do API
- Tajo račun
Avtentikacija
Avtentikacija z API ključem
SendGrid za avtentikacijo uporablja žetone prinosnika.
curl https://api.sendgrid.com/v3/marketing/contacts \ -H "Authorization: Bearer SG.YOUR_API_KEY" \ -H "Content-Type: application/json"Ustvari API ključe v SendGrid Settings > API Keys s specifičnimi ravnmi dovoljenj:
- Full Access – popoln dostop do API
- Restricted Access – granularni nadzor dovoljenj
- Billing Access – samo operacije zaračunavanja
Zahtevana dovoljenja
Marketing: Full Access - Contacts (read) - Single Sends (read) - Automations (read)Mail Send: Full Access - Mail Send (read)Stats: Read AccessSuppressions: Read AccessTracking: Read AccessVarnost API ključa
API ključi SendGrid se prikažejo samo enkrat pri ustvarjanju. Varno jih shrani. V primeru izgube moraš ustvariti nov ključ.
Konfiguracija
Osnovna nastavitev
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": 62Preslikava polj
Preslikaj polja stikov SendGrid v atribute stikov Brevo:
Privzete preslikave
| Parameter | Type | Description |
|---|---|---|
email required | string | E-mailni naslov stika (enolični identifikator) |
first_name optional | string | Preslika se v atribut FIRSTNAME |
last_name optional | string | Preslika se v atribut LASTNAME |
phone_number optional | string | Preslika se v atribut SMS |
city optional | string | Mesto stika |
country optional | string | Država stika |
custom_fields optional | object | Pari ključ-vrednost polj po meri |
list_ids optional | array | Članstva v seznamih SendGrid |
Preslikava polj po meri
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_TYPEKončne točke API
Marketinški stiki
| Metoda | Končna točka | Opis |
|---|---|---|
PUT | /v3/marketing/contacts | Dodaj ali posodobi stike |
POST | /v3/marketing/contacts/search | Iskanje stikov |
GET | /v3/marketing/contacts/count | Pridobi število stikov |
POST | /v3/marketing/contacts/exports | Izvoz stikov |
DELETE | /v3/marketing/contacts | Brisanje stikov |
GET | /v3/marketing/lists | Seznam vseh seznamov stikov |
Transakcijski e-mail (Mail Send)
| Metoda | Končna točka | Opis |
|---|---|---|
POST | /v3/mail/send | Pošlji e-mail |
GET | /v3/templates | Seznam Dynamic Templates |
GET | /v3/templates/{id} | Pridobi podrobnosti predloge |
Kampanje (Single Sends)
| Metoda | Končna točka | Opis |
|---|---|---|
GET | /v3/marketing/singlesends | Seznam Single Sends |
GET | /v3/marketing/singlesends/{id} | Pridobi podrobnosti Single Send |
GET | /v3/marketing/automations | Seznam avtomatizacij |
Statistike
| Metoda | Končna točka | Opis |
|---|---|---|
GET | /v3/stats | Pridobi globalne e-mailne statistike |
GET | /v3/categories/stats | Pridobi statistike kategorij |
GET | /v3/marketing/stats/singlesends | Pridobi statistike Single Send |
Zaustavljanje
| Metoda | Končna točka | Opis |
|---|---|---|
GET | /v3/suppression/bounces | Seznam odbite pošte |
GET | /v3/suppression/blocks | Seznam blokirane pošte |
GET | /v3/suppression/spam_reports | Seznam poročil o neželeni pošti |
GET | /v3/suppression/unsubscribes | Seznam globalnih odjav |
Dogodki
E-mailni dogodki (prek Event Webhook)
| Dogodek | Sprožilec | Primer uporabe |
|---|---|---|
processed | E-mail sprejet pri SendGrid | Potrditev pošiljanja |
delivered | E-mail dostavljen prejemniku | Sledenje dostave |
open | E-mail odprt | Ocenjevanje angažiranosti |
click | Kliknjena povezava | Sledenje zanimanja |
bounce | E-mail odbijen | Higiena seznama |
dropped | E-mail zaustavljen | Pregled skladnosti |
deferred | Dostava odložena | Nadzor ponovnih poskusov |
spam_report | Označen kot neželena pošta | Upravljanje ugleda |
unsubscribe | Odjavil prek povezave | Sinhronizacija nastavitev |
Primeri kode
Inicializacija konektorja
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});Migracija stikov v 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// }Posredovanje e-mailnih dogodkov
// 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');});Omejitve hitrosti
Omejitve hitrosti SendGrid API:
| Končna točka | Omejitev | Podrobnosti |
|---|---|---|
Mail Send (/v3/mail/send) | Odvisno od plana | Free: 100/dan, Essentials: glede na plan |
| Marketing Contacts PUT | 3 zahtevki/sekundo | Paket do 30.000 stikov |
| Marketing Contacts Search | 50 zahtevkov/sekundo | Na API ključ |
| Splošni API | 1.000 zahtevkov/sekundo | Na API ključ |
| Event Webhook | Paketna dostava | Do 1.000 dogodkov na POST |
Omejitve Mail Send
Omejitve Mail Send so odvisne od tvojega plana SendGrid. Brezplačni računi so omejeni na 100 e-mailov/dan. Za natančne omejitve pošiljanja preveri podrobnosti plana.
Odpravljanje težav
Pogoste težave
| Težava | Vzrok | Rešitev |
|---|---|---|
| 401 Unauthorized | Neveljaven API ključ | Preveri API ključ v nastavitvah SendGrid |
| 403 Forbidden | Nezadostna dovoljenja API ključa | Ustvari nov ključ z zahtevanimi obsegi |
| Izvoz stikov v teku | Obdelava velikega nabora podatkov | Anketiraj končno točko statusa izvoza do zaključka |
| Sinhronizacija zaustavljanja nepopolna | Zahtevana paginacija | Implementiraj paginacijo s parametrom zamika |
| Event webhook ni prejet | URL ni preverjen | Zaključi preverjanje URL-ja webhookov v SendGrid |
Način odpravljanja napak
Omogoči podrobno beleženje:
connectors: sendgrid: debug: true log_level: verbose log_webhooks: truePreizkus povezave
tajo connectors test sendgrid# ✓ API connection successful# ✓ Contacts readable# ✓ Lists accessible# ✓ Statistics readable# ✓ Suppressions accessibleNajboljše prakse
- Najprej prenesi zaustavljanje – zagotovi, da so odbitnice, blokade in odjave v Brevo pred pošiljanjem
- Paketni uvozi stikov – za učinkovitost naloži do 30.000 stikov na zahtevek PUT
- Preveri Event Webhook – omogoči podpisane webhooks s preverjanjem ECDSA
- Preslikaj polja po meri – pred migracijo stikov ustvari ustrezne atribute Brevo
- Sinhroniziraj angažirne podatke – uvozi zgodovinsko statistiko za segmentacijo v Brevo
- Obravnavaj asinhrone izvoze – izvozi stikov so asinhroni; anketiraj za zaključek
Varnost
- Avtentikacija z API ključem – žeton prinosnika z granularnimi ravnmi dovoljenj
- Podpisovanje Event Webhook – preverjanje podpisa ECDSA za koristne tovore webhookov
- TLS šifriranje – vsa komunikacija API šifrirana prek HTTPS
- Upravljanje dostopa IP – omeji dostop do nadzorne plošče in API po IP
- Dvofaktorska avtentikacija – 2FA na voljo za dostop do računa