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ă
| Proprietate | Valoare |
|---|---|
| Platformă | SendGrid (Twilio) |
| Categorie | Marketing |
| Complexitate configurare | Ușoară |
| Integrare oficială | Da |
| Date sincronizate | Contacte, Campanii, E-mail tranzacțional, Evenimente |
| URL de bază API | https://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:
- Un cont SendGrid (Free, Essentials, Pro sau Premier)
- O cheie API SendGrid cu permisiunile necesare
- Un cont Brevo cu acces API
- Un cont Tajo
Autentificare
Autentificare cu cheie API
SendGrid utilizează autentificarea cu token bearer.
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 AccessSuppressions: Read AccessTracking: Read AccessSecuritate 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": 62Mapare 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_TYPEPuncte finale API
Contacte marketing
| Metodă | Punct final | Descriere |
|---|---|---|
PUT | /v3/marketing/contacts | Adaugă sau actualizează contacte |
POST | /v3/marketing/contacts/search | Caută contacte |
GET | /v3/marketing/contacts/count | Obține numărul de contacte |
POST | /v3/marketing/contacts/exports | Exportă contacte |
DELETE | /v3/marketing/contacts | Șterge contacte |
GET | /v3/marketing/lists | Listează toate listele de contacte |
E-mail tranzacțional (Mail Send)
| Metodă | Punct final | Descriere |
|---|---|---|
POST | /v3/mail/send | Trimite un e-mail |
GET | /v3/templates | Listează Șabloanele Dinamice |
GET | /v3/templates/{id} | Obține detalii șablon |
Campanii (Single Sends)
| Metodă | Punct final | Descriere |
|---|---|---|
GET | /v3/marketing/singlesends | Listează Single Sends |
GET | /v3/marketing/singlesends/{id} | Obține detalii Single Send |
GET | /v3/marketing/automations | Listează automatizările |
Statistici
| Metodă | Punct final | Descriere |
|---|---|---|
GET | /v3/stats | Obține statistici globale e-mail |
GET | /v3/categories/stats | Obține statistici pe categorii |
GET | /v3/marketing/stats/singlesends | Obține statisticile Single Send |
Supresii
| Metodă | Punct final | Descriere |
|---|---|---|
GET | /v3/suppression/bounces | Listează e-mailurile respinse |
GET | /v3/suppression/blocks | Listează e-mailurile blocate |
GET | /v3/suppression/spam_reports | Listează rapoartele de spam |
GET | /v3/suppression/unsubscribes | Listează dezabonările globale |
Evenimente
Evenimente e-mail (prin Event Webhook)
| Eveniment | Declanșator | Caz de utilizare |
|---|---|---|
processed | E-mail acceptat de SendGrid | Confirmare trimitere |
delivered | E-mail livrat destinatarului | Urmărire livrare |
open | E-mail deschis | Scorare implicare |
click | Link accesat | Urmărire interes |
bounce | E-mail respins | Igienă listă |
dropped | E-mail suprimat | Revizuire conformitate |
deferred | Livrare amânată | Monitorizare reîncercare |
spam_report | Marcat ca spam | Gestionare reputație |
unsubscribe | Dezabonat prin link | Sincronizare 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 SendGridawait tajo.connectors.connect('sendgrid', { apiKey: process.env.SENDGRID_API_KEY});Migrare contacte la 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// }Redirecționare evenimente e-mail
// 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');});Limite de rată
Limite de rată API SendGrid:
| Punct final | Limită | Detalii |
|---|---|---|
Mail Send (/v3/mail/send) | Dependent de plan | Free: 100/zi, Essentials: bazat pe plan |
| Marketing Contacts PUT | 3 cereri/secundă | Lot de până la 30.000 de contacte |
| Marketing Contacts Search | 50 cereri/secundă | Per cheie API |
| API general | 1.000 cereri/secundă | Per cheie API |
| Event Webhook | Livrare în lot | Pâ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 Neautorizat | Cheie API invalidă | Verificați cheia API în SendGrid Settings |
| 403 Interzis | Permisiuni insuficiente ale cheii API | Creați o cheie nouă cu scope-urile necesare |
| Export contacte în așteptare | Procesare set de date mare | Interogați punctul final de status export până la finalizare |
| Sincronizare supresii incompletă | Paginare necesară | Implementați paginarea cu parametrul offset |
| Webhook de eveniment neprimit | URL neverificat | Completați verificarea URL webhook în SendGrid |
Modul de depanare
Activați jurnalizarea verbosă:
connectors: sendgrid: debug: true log_level: verbose log_webhooks: trueTestare conexiune
tajo connectors test sendgrid# ✓ API connection successful# ✓ Contacts readable# ✓ Lists accessible# ✓ Statistics readable# ✓ Suppressions accessibleBune practici
- Migrați supresiile mai întâi - Asigurați că respingerile, blocările și dezabonările sunt în Brevo înainte de trimitere
- Utilizați încărcări de contacte în lot - PUT până la 30.000 de contacte per cerere pentru eficiență
- Verificați Event Webhook - Activați webhook-uri semnate cu verificare ECDSA
- Mapați câmpurile personalizate - Creați atributele Brevo corespunzătoare înainte de migrarea contactelor
- Sincronizați datele de implicare - Importați statisticile istorice pentru segmentare în Brevo
- 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