Konektor SendGrid
Status konektor: Dalam pengerjaan Sedang dibangun. Belum terverifikasi.
Ilustrasi · data contoh
Contoh sinkronisasi
Sumber
SendGrid
Status konektor: Dalam pengerjaan
Tujuan
Alat Anda yang lain
Status konektor: Alat khusus
Pemetaan field
| Field sumber | Field tujuan | Nilai contoh |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Susun draf
- Tinjau satu data
- Setujui versi ini
Status berlaku untuk masing-masing konektor dan tidak menjamin sinkronisasi ini siap. Field ini hanya ilustrasi. Periksa skema dan izin sebenarnya sebelum sinkronisasi berjalan.
Hubungkan akun SendGrid Anda ke Brevo melalui Tajo untuk migrasi infrastruktur email, sinkronisasi kontak, transfer data kampanye, dan analitik keterlibatan terpadu di kedua platform.
Ikhtisar
| Properti | Nilai |
|---|---|
| Platform | SendGrid (Twilio) |
| Kategori | Marketing |
| Kompleksitas setup | Mudah |
| Integrasi resmi | Tidak |
| Data yang disinkronkan | Kontak, kampanye, email transaksional, event |
| Base URL API | https://api.sendgrid.com/v3 |
Fitur
- Migrasi kontak - Migrasikan kontak SendGrid Marketing ke Brevo beserta field kustomnya
- Sinkronisasi email transaksional - Lacak event email transaksional untuk pelaporan terpadu
- Data kampanye - Sinkronkan data performa kampanye Single Send dan Automation
- Webhook event - Teruskan event email (delivered, opened, clicked, bounced) ke Brevo
- Sinkronisasi suppression - Migrasikan daftar bounce, block, dan unsubscribe demi kepatuhan
- Migrasi template - Ekspor Dynamic Transactional Template untuk dipakai di Brevo
- Verifikasi pengirim - Sinkronkan identitas pengirim terverifikasi dan autentikasi domain
- Sinkronisasi statistik - Impor statistik keterlibatan historis ke atribut Brevo
Prasyarat
Sebelum memulai, pastikan Anda memiliki:
- Akun SendGrid (Free, Essentials, Pro, atau Premier)
- API key SendGrid dengan izin yang dibutuhkan
- Akun Brevo dengan akses API
- Akun Tajo
Autentikasi
Autentikasi API key
SendGrid memakai autentikasi bearer token.
curl https://api.sendgrid.com/v3/marketing/contacts \ -H "Authorization: Bearer SG.YOUR_API_KEY" \ -H "Content-Type: application/json"Buat API key di SendGrid Settings > API Keys dengan tingkat izin tertentu:
- Full Access - Akses API sepenuhnya
- Restricted Access - Kontrol izin secara granular
- Billing Access - Operasi penagihan saja
Izin yang dibutuhkan
Marketing: Full Access - Contacts (read) - Single Sends (read) - Automations (read)Mail Send: Full Access - Mail Send (read)Stats: Read AccessSuppressions: Read AccessTracking: Read AccessKeamanan API key
API key SendGrid hanya ditampilkan sekali saat dibuat. Simpan dengan aman. Jika hilang, Anda harus membuat key baru.
Konfigurasi
Setup dasar
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": 62Pemetaan field
Petakan field kontak SendGrid ke atribut kontak Brevo:
Pemetaan default
| Parameter | Type | Description |
|---|---|---|
email required | string | Alamat email kontak (identifier unik) |
first_name optional | string | Dipetakan ke atribut FIRSTNAME |
last_name optional | string | Dipetakan ke atribut LASTNAME |
phone_number optional | string | Dipetakan ke atribut SMS |
city optional | string | Kota kontak |
country optional | string | Negara kontak |
custom_fields optional | object | Pasangan key-value field kustom |
list_ids optional | array | Keanggotaan daftar SendGrid |
Pemetaan field kustom
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_TYPEEndpoint API
Marketing Contacts
| Method | Endpoint | Deskripsi |
|---|---|---|
PUT | /v3/marketing/contacts | Menambahkan atau memperbarui kontak |
POST | /v3/marketing/contacts/search | Mencari kontak |
GET | /v3/marketing/contacts/count | Mengambil jumlah kontak |
POST | /v3/marketing/contacts/exports | Mengekspor kontak |
DELETE | /v3/marketing/contacts | Menghapus kontak |
GET | /v3/marketing/lists | Menampilkan seluruh daftar kontak |
Email transaksional (Mail Send)
| Method | Endpoint | Deskripsi |
|---|---|---|
POST | /v3/mail/send | Mengirim sebuah email |
GET | /v3/templates | Menampilkan Dynamic Template |
GET | /v3/templates/{id} | Mengambil detail template |
Kampanye (Single Send)
| Method | Endpoint | Deskripsi |
|---|---|---|
GET | /v3/marketing/singlesends | Menampilkan Single Send |
GET | /v3/marketing/singlesends/{id} | Mengambil detail Single Send |
GET | /v3/marketing/automations | Menampilkan Automation |
Statistik
| Method | Endpoint | Deskripsi |
|---|---|---|
GET | /v3/stats | Mengambil statistik email global |
GET | /v3/categories/stats | Mengambil statistik kategori |
GET | /v3/marketing/stats/singlesends | Mengambil statistik Single Send |
Suppression
| Method | Endpoint | Deskripsi |
|---|---|---|
GET | /v3/suppression/bounces | Menampilkan email yang bounce |
GET | /v3/suppression/blocks | Menampilkan email yang diblokir |
GET | /v3/suppression/spam_reports | Menampilkan laporan spam |
GET | /v3/suppression/unsubscribes | Menampilkan unsubscribe global |
Event
Event email (melalui Event Webhook)
| Event | Pemicu | Kasus penggunaan |
|---|---|---|
processed | Email diterima SendGrid | Konfirmasi pengiriman |
delivered | Email sampai ke penerima | Pelacakan pengiriman |
open | Email dibuka | Skoring keterlibatan |
click | Tautan diklik | Pelacakan minat |
bounce | Email bounce | Higienitas daftar |
dropped | Email ditekan | Peninjauan kepatuhan |
deferred | Pengiriman ditunda | Pemantauan retry |
spam_report | Ditandai sebagai spam | Pengelolaan reputasi |
unsubscribe | Berhenti berlangganan lewat tautan | Sinkronisasi preferensi |
Contoh kode
Inisialisasi konektor
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});Migrasi kontak ke 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// }Meneruskan event email
// 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');});Batas rate
Batas rate API SendGrid:
| Endpoint | Batas | Detail |
|---|---|---|
Mail Send (/v3/mail/send) | Bergantung paket | Free: 100/hari, Essentials: sesuai paket |
| PUT Marketing Contacts | 3 permintaan/detik | Batch hingga 30.000 kontak |
| Search Marketing Contacts | 50 permintaan/detik | Per API key |
| API umum | 1.000 permintaan/detik | Per API key |
| Event Webhook | Pengiriman batch | Hingga 1.000 event per POST |
Batas Mail Send
Batas Mail Send bergantung pada paket SendGrid Anda. Akun gratis dibatasi 100 email/hari. Periksa detail paket Anda untuk batas pengiriman yang persis.
Pemecahan masalah
Masalah umum
| Masalah | Penyebab | Solusi |
|---|---|---|
| 401 Unauthorized | API key tidak valid | Periksa API key di SendGrid Settings |
| 403 Forbidden | Izin API key tidak mencukupi | Buat key baru dengan scope yang dibutuhkan |
| Ekspor kontak tertunda | Pemrosesan dataset besar | Polling endpoint status ekspor sampai selesai |
| Sinkronisasi suppression tidak lengkap | Perlu paginasi | Terapkan paginasi dengan parameter offset |
| Event webhook tidak diterima | URL belum terverifikasi | Selesaikan verifikasi URL webhook di SendGrid |
Mode debug
Aktifkan logging verbose:
connectors: sendgrid: debug: true log_level: verbose log_webhooks: trueMenguji koneksi
tajo connectors test sendgrid# ✓ API connection successful# ✓ Contacts readable# ✓ Lists accessible# ✓ Statistics readable# ✓ Suppressions accessiblePraktik terbaik
- Migrasikan suppression lebih dulu - Pastikan bounce, block, dan unsubscribe sudah ada di Brevo sebelum mengirim
- Gunakan unggahan kontak batch - Kirim PUT hingga 30.000 kontak per permintaan agar efisien
- Verifikasi Event Webhook - Aktifkan webhook bertanda tangan dengan verifikasi ECDSA
- Petakan field kustom - Buat atribut Brevo yang setara sebelum migrasi kontak
- Sinkronkan data keterlibatan - Impor statistik historis untuk segmentasi di Brevo
- Tangani ekspor asinkron - Ekspor kontak bersifat asinkron, lakukan polling sampai selesai
Keamanan
- Autentikasi API key - Bearer token dengan tingkat izin granular
- Penandatanganan Event Webhook - Verifikasi tanda tangan ECDSA untuk payload webhook
- Enkripsi TLS - Seluruh komunikasi API dienkripsi melalui HTTPS
- IP Access Management - Batasi akses Dashboard dan API berdasarkan IP
- Autentikasi dua faktor - 2FA tersedia untuk akses akun