SendGrid Bağlayıcısı
E-posta altyapısı taşıma, kişi senkronizasyonu, kampanya verisi aktarımı ve her iki platformda birleşik etkileşim analitiği için SendGrid hesabınızı Tajo aracılığıyla Brevo’ya bağlayın.
Genel Bakış
| Özellik | Değer |
|---|---|
| Platform | SendGrid (Twilio) |
| Kategori | Pazarlama |
| Kurulum Karmaşıklığı | Kolay |
| Resmi Entegrasyon | Evet |
| Senkronize Edilen Veri | Kişiler, Kampanyalar, İşlemsel E-posta, Olaylar |
| API Temel URL’si | https://api.sendgrid.com/v3 |
Özellikler
- Kişi taşıma - SendGrid Marketing kişilerini özel alanlarla Brevo’ya taşıyın
- İşlemsel e-posta senkronizasyonu - Birleşik raporlama için işlemsel e-posta olaylarını takip edin
- Kampanya verileri - Single Send ve Automation kampanya performans verilerini senkronize edin
- Olay webhook’ları - E-posta olaylarını (teslim edildi, açıldı, tıklandı, geri döndü) Brevo’ya iletin
- Bastırma senkronizasyonu - Uyumluluk için geri dönme, engelleme ve abonelikten çıkma listelerini taşıyın
- Şablon taşıma - Brevo kullanımı için Dynamic Transactional Templates dışa aktarın
- Gönderici doğrulama - Doğrulanmış gönderici kimliklerini ve alan adı kimlik doğrulamasını senkronize edin
- İstatistik senkronizasyonu - Geçmiş etkileşim istatistiklerini Brevo özniteliklerine içe aktarın
Ön Koşullar
Başlamadan önce sahip olmanız gerekenler:
- Bir SendGrid hesabı (Free, Essentials, Pro veya Premier)
- Gerekli izinlere sahip bir SendGrid API anahtarı
- API erişimi olan bir Brevo hesabı
- Bir Tajo hesabı
Kimlik Doğrulama
API Anahtar Kimlik Doğrulaması
SendGrid bearer belirteç kimlik doğrulaması kullanır.
curl https://api.sendgrid.com/v3/marketing/contacts \ -H "Authorization: Bearer SG.YOUR_API_KEY" \ -H "Content-Type: application/json"SendGrid Settings > API Keys’te belirli izin seviyeleriyle API anahtarları oluşturun:
- Full Access - Tam API erişimi
- Restricted Access - Ayrıntılı izin kontrolü
- Billing Access - Yalnızca faturalama işlemleri
Gerekli İzinler
Marketing: Full Access - Contacts (read) - Single Sends (read) - Automations (read)Mail Send: Full Access - Mail Send (read)Stats: Read AccessSuppressions: Read AccessTracking: Read AccessAPI Anahtar Güvenliği
SendGrid API anahtarları yalnızca oluşturma sırasında gösterilir. Bunları güvenli bir şekilde saklayın. Kaybolursa, yeni bir anahtar oluşturmanız gerekir.
Yapılandırma
Temel Kurulum
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": 62Alan Eşleme
SendGrid kişi alanlarını Brevo kişi özniteliklerine eşleyin:
Varsayılan Eşlemeler
| Parameter | Type | Description |
|---|---|---|
email required | string | Kişi e-posta adresi (benzersiz tanımlayıcı) |
first_name optional | string | FIRSTNAME özniteliğine eşlenir |
last_name optional | string | LASTNAME özniteliğine eşlenir |
phone_number optional | string | SMS özniteliğine eşlenir |
city optional | string | Kişi şehri |
country optional | string | Kişi ülkesi |
custom_fields optional | object | Özel alan anahtar-değer çiftleri |
list_ids optional | array | SendGrid liste üyelikleri |
Özel Alan Eşleme
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_TYPEAPI Uç Noktaları
Marketing Kişileri
| Yöntem | Uç Nokta | Açıklama |
|---|---|---|
PUT | /v3/marketing/contacts | Kişileri ekle veya güncelle |
POST | /v3/marketing/contacts/search | Kişileri ara |
GET | /v3/marketing/contacts/count | Kişi sayısını al |
POST | /v3/marketing/contacts/exports | Kişileri dışa aktar |
DELETE | /v3/marketing/contacts | Kişileri sil |
GET | /v3/marketing/lists | Tüm kişi listelerini listele |
İşlemsel E-posta (Mail Send)
| Yöntem | Uç Nokta | Açıklama |
|---|---|---|
POST | /v3/mail/send | Bir e-posta gönder |
GET | /v3/templates | Dynamic Templates’i listele |
GET | /v3/templates/{id} | Şablon detaylarını al |
Kampanyalar (Single Sends)
| Yöntem | Uç Nokta | Açıklama |
|---|---|---|
GET | /v3/marketing/singlesends | Single Sends’i listele |
GET | /v3/marketing/singlesends/{id} | Single Send detaylarını al |
GET | /v3/marketing/automations | Automations’ı listele |
İstatistikler
| Yöntem | Uç Nokta | Açıklama |
|---|---|---|
GET | /v3/stats | Genel e-posta istatistiklerini al |
GET | /v3/categories/stats | Kategori istatistiklerini al |
GET | /v3/marketing/stats/singlesends | Single Send istatistiklerini al |
Bastırmalar
| Yöntem | Uç Nokta | Açıklama |
|---|---|---|
GET | /v3/suppression/bounces | Geri dönen e-postaları listele |
GET | /v3/suppression/blocks | Engellenen e-postaları listele |
GET | /v3/suppression/spam_reports | Spam raporlarını listele |
GET | /v3/suppression/unsubscribes | Genel abonelikten çıkmaları listele |
Olaylar
E-posta Olayları (Event Webhook üzerinden)
| Olay | Tetikleyici | Kullanım Alanı |
|---|---|---|
processed | E-posta SendGrid tarafından kabul edildi | Gönderim onayı |
delivered | E-posta alıcıya teslim edildi | Teslimat takibi |
open | E-posta açıldı | Etkileşim puanlaması |
click | Bağlantıya tıklandı | İlgi takibi |
bounce | E-posta geri döndü | Liste hijyeni |
dropped | E-posta bastırıldı | Uyumluluk incelemesi |
deferred | Teslimat ertelendi | Yeniden deneme izleme |
spam_report | Spam olarak işaretlendi | İtibar yönetimi |
unsubscribe | Bağlantı üzerinden abonelikten çıkıldı | Tercih senkronizasyonu |
Kod Örnekleri
Bağlayıcıyı Başlat
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});Kişileri Brevo’ya Taşı
// 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// }E-posta Olaylarını İlet
// 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');});Hız Limitleri
SendGrid API hız limitleri:
| Uç Nokta | Limit | Detaylar |
|---|---|---|
Mail Send (/v3/mail/send) | Plana bağlı | Free: 100/gün, Essentials: plana göre |
| Marketing Contacts PUT | 3 istek/saniye | 30.000 kişiye kadar toplu |
| Marketing Contacts Search | 50 istek/saniye | API anahtarı başına |
| Genel API | 1.000 istek/saniye | API anahtarı başına |
| Event Webhook | Toplu teslimat | POST başına 1.000’e kadar olay |
Mail Send Limitleri
Mail Send limitleri SendGrid planınıza bağlıdır. Ücretsiz hesaplar 100 e-posta/gün ile sınırlıdır. Tam gönderim limitleri için plan detaylarınızı kontrol edin.
Sorun Giderme
Sık Karşılaşılan Sorunlar
| Sorun | Neden | Çözüm |
|---|---|---|
| 401 Unauthorized | Geçersiz API anahtarı | SendGrid Settings’te API anahtarını doğrulayın |
| 403 Forbidden | Yetersiz API anahtar izinleri | Gerekli kapsamlarla yeni anahtar oluşturun |
| Kişi dışa aktarımı bekliyor | Büyük veri kümesi işleniyor | Tamamlanana kadar dışa aktarma durum uç noktasını sorgulayın |
| Bastırma senkronizasyonu eksik | Sayfalama gerekli | Offset parametresi ile sayfalama uygulayın |
| Event webhook alınmıyor | URL doğrulanmadı | SendGrid’de webhook URL doğrulamasını tamamlayın |
Hata Ayıklama Modu
Ayrıntılı günlüklemeyi etkinleştirin:
connectors: sendgrid: debug: true log_level: verbose log_webhooks: trueBağlantıyı Test Et
tajo connectors test sendgrid# ✓ API connection successful# ✓ Contacts readable# ✓ Lists accessible# ✓ Statistics readable# ✓ Suppressions accessibleEn İyi Uygulamalar
- Önce bastırmaları taşıyın - Gönderim öncesinde geri dönmelerin, engellemelerin ve abonelikten çıkmaların Brevo’da olduğundan emin olun
- Toplu kişi yüklemeleri kullanın - Verimlilik için istek başına 30.000 kişiye kadar PUT yapın
- Event Webhook’u doğrulayın - ECDSA doğrulamasıyla imzalı webhook’ları etkinleştirin
- Özel alanları eşleyin - Kişi taşımadan önce karşılık gelen Brevo özniteliklerini oluşturun
- Etkileşim verilerini senkronize edin - Brevo’da segmentasyon için geçmiş istatistikleri içe aktarın
- Eşzamansız dışa aktarmaları yönetin - Kişi dışa aktarmaları eşzamansızdır; tamamlanma için sorgulayın
Güvenlik
- API Anahtar Kimlik Doğrulaması - Ayrıntılı izin seviyeleri ile bearer belirteç
- Event Webhook imzalama - Webhook yükleri için ECDSA imza doğrulaması
- TLS şifrelemesi - Tüm API iletişimi HTTPS aracılığıyla şifrelenir
- IP Erişim Yönetimi - Dashboard ve API erişimini IP’ye göre kısıtlayın
- İki faktörlü kimlik doğrulama - Hesap erişimi için 2FA mevcuttur