Konektor SendGrid

Połącz swoje konto SendGrid z Brevo przez Tajo dla migracji infrastruktury e-mailowej, synchronizacji kontaktów, transferu danych kampanii i ujednoliconej analityki zaangażowania na obu platformach.

Przegląd

WłaściwośćWartość
PlatformaSendGrid (Twilio)
KategoriaMarketing
Poziom konfiguracjiŁatwy
Integracja oficjalnaTak
Synchronizowane daneKontakty, Kampanie, E-mail transakcyjny, Zdarzenia
Bazowy URL APIhttps://api.sendgrid.com/v3

Funkcje

  • Migracja kontaktów - Migruj kontakty marketingowe SendGrid do Brevo z niestandardowymi polami
  • Synchronizacja e-maili transakcyjnych - Śledź zdarzenia e-maili transakcyjnych dla ujednoliconego raportowania
  • Dane kampanii - Synchronizuj dane wydajności kampanii Single Send i Automation
  • Webhooki zdarzeń - Przekazuj zdarzenia e-mailowe (dostarczone, otwarte, kliknięte, odrzucone) do Brevo
  • Synchronizacja suppressions - Migruj listy odrzuceń, blokad i rezygnacji dla zgodności
  • Migracja szablonów - Eksportuj szablony transakcyjne Dynamic dla użytku w Brevo
  • Weryfikacja nadawcy - Synchronizuj zweryfikowane tożsamości nadawców i uwierzytelnianie domeny
  • Synchronizacja statystyk - Importuj historyczne statystyki zaangażowania do atrybutów Brevo

Wymagania wstępne

Zanim zaczniesz, upewnij się, że masz:

  1. Konto SendGrid (Free, Essentials, Pro lub Premier)
  2. Klucz API SendGrid z wymaganymi uprawnieniami
  3. Konto Brevo z dostępem do API
  4. Konto Tajo

Uwierzytelnianie

Uwierzytelnianie kluczem API

SendGrid używa uwierzytelniania tokenem bearer.

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

Twórz klucze API w SendGrid Settings > API Keys z określonymi poziomami uprawnień:

  • Full Access - Pełny dostęp do API
  • Restricted Access - Szczegółowa kontrola uprawnień
  • Billing Access - Operacje tylko rozliczeniowe

Wymagane uprawnienia

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

Bezpieczeństwo klucza API

Klucze API SendGrid są wyświetlane tylko raz podczas tworzenia. Przechowuj je bezpiecznie. W przypadku utraty musisz utworzyć nowy klucz.

Konfiguracja

Podstawowa konfiguracja

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

Mapowanie pól

Mapuj pola kontaktów SendGrid na atrybuty kontaktów Brevo:

Domyślne mapowania

Parameter Type Description
email required
string

Adres e-mail kontaktu (unikalny identyfikator)

first_name optional
string

Mapuje na atrybut FIRSTNAME

last_name optional
string

Mapuje na atrybut LASTNAME

phone_number optional
string

Mapuje na atrybut SMS

city optional
string

Miasto kontaktu

country optional
string

Kraj kontaktu

custom_fields optional
object

Niestandardowe pary klucz-wartość

list_ids optional
array

Przynależności do list SendGrid

Mapowanie niestandardowych pól

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

Endpointy API

Kontakty marketingowe

MetodaEndpointOpis
PUT/v3/marketing/contactsDodaj lub zaktualizuj kontakty
POST/v3/marketing/contacts/searchWyszukaj kontakty
GET/v3/marketing/contacts/countPobierz liczbę kontaktów
POST/v3/marketing/contacts/exportsEksportuj kontakty
DELETE/v3/marketing/contactsUsuń kontakty
GET/v3/marketing/listsLista wszystkich list kontaktów

E-mail transakcyjny (Mail Send)

MetodaEndpointOpis
POST/v3/mail/sendWyślij e-mail
GET/v3/templatesLista szablonów Dynamic
GET/v3/templates/{id}Szczegóły szablonu

Kampanie (Single Sends)

MetodaEndpointOpis
GET/v3/marketing/singlesendsLista Single Sends
GET/v3/marketing/singlesends/{id}Szczegóły Single Send
GET/v3/marketing/automationsLista automatyzacji

Statystyki

MetodaEndpointOpis
GET/v3/statsGlobalne statystyki e-mailowe
GET/v3/categories/statsStatystyki kategorii
GET/v3/marketing/stats/singlesendsStatystyki Single Send

Suppressions

MetodaEndpointOpis
GET/v3/suppression/bouncesLista odrzuconych e-maili
GET/v3/suppression/blocksLista zablokowanych e-maili
GET/v3/suppression/spam_reportsLista raportów spamu
GET/v3/suppression/unsubscribesLista globalnych rezygnacji

Zdarzenia

Zdarzenia e-mailowe (przez Event Webhook)

ZdarzenieWyzwalaczPrzypadek użycia
processedE-mail zaakceptowany przez SendGridPotwierdzenie wysyłki
deliveredE-mail dostarczony do odbiorcyŚledzenie dostarczenia
openE-mail otwartyScoring zaangażowania
clickLink klikniętyŚledzenie zainteresowania
bounceE-mail odrzuconyHigiena listy
droppedE-mail wyciszonyPrzegląd zgodności
deferredDostarczenie odłożoneMonitorowanie ponownych prób
spam_reportOznaczono jako spamZarządzanie reputacją
unsubscribeRezygnacja przez linkSynchronizacja preferencji

Przykłady kodu

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

Migruj kontakty do 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
// }

Przekazuj zdarzenia e-mailowe

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

Limity API

Limity szybkości SendGrid API:

EndpointLimitSzczegóły
Mail Send (/v3/mail/send)Zależy od planuFree: 100/dzień, Essentials: zależy od planu
Marketing Contacts PUT3 żądania/sekundęDo 30 000 kontaktów w partii
Marketing Contacts Search50 żądań/sekundęNa klucz API
General API1 000 żądań/sekundęNa klucz API
Event WebhookDostarczanie wsadoweDo 1 000 zdarzeń na POST

Limity Mail Send

Limity Mail Send zależą od Twojego planu SendGrid. Konta bezpłatne są ograniczone do 100 e-maili/dzień. Sprawdź szczegóły planu dla dokładnych limitów wysyłania.

Rozwiązywanie problemów

Typowe problemy

ProblemPrzyczynaRozwiązanie
401 UnauthorizedNieprawidłowy klucz APIZweryfikuj klucz API w SendGrid Settings
403 ForbiddenNiewystarczające uprawnienia klucza APIUtwórz nowy klucz z wymaganymi zakresami
Eksport kontaktów oczekującyPrzetwarzanie dużego zestawu danychOdpytuj endpoint statusu eksportu do zakończenia
Niekompletna synchronizacja suppressionsWymagana paginacjaWdrożyj paginację z parametrem offset
Webhook nie odebranyURL nie zweryfikowanyUkończ weryfikację URL webhooka w SendGrid

Tryb debug

Włącz szczegółowe logowanie:

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

Test połączenia

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

Najlepsze praktyki

  1. Najpierw migruj suppressions - Upewnij się, że odrzucenia, blokady i rezygnacje są w Brevo przed wysyłaniem
  2. Używaj wsadowych przesyłań kontaktów - PUT do 30 000 kontaktów na żądanie dla wydajności
  3. Weryfikuj Event Webhook - Włącz podpisane webhooki z weryfikacją ECDSA
  4. Mapuj pola niestandardowe - Utwórz odpowiednie atrybuty Brevo przed migracją kontaktów
  5. Synchronizuj dane zaangażowania - Importuj historyczne statystyki dla segmentacji w Brevo
  6. Obsługuj asynchroniczne eksporty - Eksporty kontaktów są asynchroniczne; odpytuj pod kątem zakończenia

Bezpieczeństwo

  • Uwierzytelnianie kluczem API - Token bearer ze szczegółowymi poziomami uprawnień
  • Podpisywanie Event Webhook - Weryfikacja podpisu ECDSA dla ładunków webhooków
  • Szyfrowanie TLS - Cała komunikacja API szyfrowana przez HTTPS
  • IP Access Management - Ogranicz dostęp do Dashboard i API według IP
  • Uwierzytelnianie dwuskładnikowe - 2FA dostępne dla dostępu do konta

Powiązane zasoby

Subscribe to updates

developer-docs

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

auto-detect
Asystent AI

Cześć! Zapytaj mnie o dokumentację.