SendGrid конектор

Свържи своя акаунт в SendGrid с Brevo чрез Tajo за миграция на имейл инфраструктура, синхронизация на контакти, прехвърляне на данни за кампании и унифицирана аналитика за ангажираност в двете платформи.

Преглед

СвойствоСтойност
ПлатформаSendGrid (Twilio)
КатегорияМаркетинг
Сложност на настройкаЛесна
Официална интеграцияДа
Синхронизирани данниКонтакти, кампании, транзакционни имейли, събития
Base URL на APIhttps://api.sendgrid.com/v3

Функции

  • Миграция на контакти – Мигрирай SendGrid Marketing контакти към Brevo с персонализирани полета
  • Синхронизация на транзакционни имейли – Проследявай събития от транзакционни имейли за унифицирано отчитане
  • Данни за кампании – Синхронизирай данни за performance на Single Send и Automation кампании
  • Event webhooks – Препращай имейл събития (delivered, opened, clicked, bounced) към Brevo
  • Синхронизация на suppressions – Мигрирай bounce, block и unsubscribe списъци за съвместимост
  • Миграция на шаблони – Експортирай Dynamic Transactional Templates за използване в Brevo
  • Sender верификация – Синхронизирай верифицирани sender идентичности и автентикация на домейн
  • Синхронизация на статистики – Импортирай исторически статистики за ангажираност към атрибути в Brevo

Предварителни условия

Преди да започнеш, увери се, че имаш:

  1. Акаунт в SendGrid (Free, Essentials, Pro или Premier)
  2. SendGrid API ключ с необходимите разрешения
  3. Акаунт в Brevo с API достъп
  4. Акаунт в Tajo

Автентикация

Автентикация с API ключ

SendGrid използва bearer token автентикация.

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

Създавай API ключове в SendGrid Settings > API Keys със специфични нива на разрешения:

  • Full Access – Пълен API достъп
  • Restricted Access – Гранулиран контрол на разрешенията
  • Billing Access – Само billing операции

Необходими разрешения

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

Сигурност на API ключ

SendGrid API ключовете се показват само веднъж при създаване. Съхранявай ги сигурно. Ако бъдат загубени, трябва да създадеш нов ключ.

Конфигурация

Основна настройка

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

Мапване на полета

Мапвай SendGrid полета на контакти към атрибути на контактите в Brevo:

Мапвания по подразбиране

Parameter Type Description
email required
string

Имейл адрес на контакта (уникален идентификатор)

first_name optional
string

Мапва към атрибут FIRSTNAME

last_name optional
string

Мапва към атрибут LASTNAME

phone_number optional
string

Мапва към атрибут SMS

city optional
string

Град на контакта

country optional
string

Държава на контакта

custom_fields optional
object

Персонализирани ключ-стойност двойки

list_ids optional
array

Членства в SendGrid списъци

Мапване на персонализирани полета

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 крайни точки

Marketing Contacts

МетодКрайна точкаОписание
PUT/v3/marketing/contactsДобавяне или обновяване на контакти
POST/v3/marketing/contacts/searchТърсене на контакти
GET/v3/marketing/contacts/countПолучаване на брой контакти
POST/v3/marketing/contacts/exportsЕкспорт на контакти
DELETE/v3/marketing/contactsИзтриване на контакти
GET/v3/marketing/listsСписък с всички списъци с контакти

Транзакционен имейл (Mail Send)

МетодКрайна точкаОписание
POST/v3/mail/sendИзпращане на имейл
GET/v3/templatesСписък с Dynamic Templates
GET/v3/templates/{id}Получаване на детайли за шаблон

Кампании (Single Sends)

МетодКрайна точкаОписание
GET/v3/marketing/singlesendsСписък със Single Sends
GET/v3/marketing/singlesends/{id}Получаване на детайли за Single Send
GET/v3/marketing/automationsСписък с автоматизации

Статистики

МетодКрайна точкаОписание
GET/v3/statsПолучаване на глобални имейл статистики
GET/v3/categories/statsПолучаване на статистики за категории
GET/v3/marketing/stats/singlesendsПолучаване на статистики за Single Send

Suppressions

МетодКрайна точкаОписание
GET/v3/suppression/bouncesСписък с bounce-нали имейли
GET/v3/suppression/blocksСписък с блокирани имейли
GET/v3/suppression/spam_reportsСписък със spam reports
GET/v3/suppression/unsubscribesСписък с глобални unsubscribes

Събития

Имейл събития (чрез Event Webhook)

СъбитиеТригерСлучай на употреба
processedИмейлът е приет от SendGridПотвърждение на изпращане
deliveredИмейлът е доставен на получателяПроследяване на доставка
openИмейлът е отворенEngagement scoring
clickКликнат линкПроследяване на интерес
bounceИмейлът е bounce-налХигиена на списък
droppedИмейлът е suppress-натCompliance преглед
deferredДоставката е отложенаМониторинг на retry
spam_reportМаркиран като спамУправление на репутация
unsubscribeОтписан чрез линкСинхронизация на предпочитания

Примери с код

Инициализация на конектора

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

Миграция на контакти към 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
// }

Препращане на имейл събития

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

Ограничения на заявките

Rate limits на SendGrid API:

Крайна точкаЛимитДетайли
Mail Send (/v3/mail/send)Зависи от планаFree: 100/ден, Essentials: на базата на плана
Marketing Contacts PUT3 заявки/секундаПакетно до 30 000 контакта
Marketing Contacts Search50 заявки/секундаНа API ключ
Общ API1 000 заявки/секундаНа API ключ
Event WebhookBatch доставкаДо 1 000 събития на POST

Лимити за Mail Send

Лимитите за Mail Send зависят от твоя SendGrid план. Free акаунтите са ограничени до 100 имейла/ден. Провери детайлите на своя план за точните лимити за изпращане.

Отстраняване на проблеми

Чести проблеми

ПроблемПричинаРешение
401 UnauthorizedНевалиден API ключПровери API ключа в SendGrid Settings
403 ForbiddenНедостатъчни разрешения на API ключСъздай нов ключ с необходимите обхвати
Contact export pendingОбработка на голям datasetPoll-вай export status крайната точка до завършване
Непълна синхронизация на suppressionsИзисква се пагинацияВнедри пагинация с параметър offset
Event webhook не се получаваURL не е верифициранЗавърши webhook URL верификацията в SendGrid

Режим за дебъг

Активирай подробно логване:

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

Тест на връзката

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

Добри практики

  1. Първо мигрирай suppressions – Увери се, че bounces, blocks и unsubscribes са в Brevo преди изпращане
  2. Използвай пакетни качвания на контакти – PUT до 30 000 контакта на заявка за ефективност
  3. Верифицирай Event Webhook – Активирай подписани уебхуци с ECDSA верификация
  4. Мапвай персонализирани полета – Създай съответните атрибути в Brevo преди миграция на контакти
  5. Синхронизирай данни за ангажираност – Импортирай исторически статистики за сегментация в Brevo
  6. Обработвай асинхронни експорти – Експортите на контакти са асинхронни; poll-вай за завършване

Сигурност

  • Автентикация с API ключ – Bearer token с гранулирани нива на разрешения
  • Event Webhook подписване – ECDSA верификация на подпис за webhook payloads
  • TLS криптиране – Цялата API комуникация е криптирана чрез HTTPS
  • IP Access Management – Ограничаване на Dashboard и API достъп по IP
  • Two-factor автентикация – 2FA достъпна за достъп до акаунт

Свързани ресурси

Subscribe to updates

developer-docs

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

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

Здравейте! Попитайте ме за документацията.