Ajukan akses awal

Masukkan nama depan serta email atau nomor telepon Anda. Kami akan menghubungi Anda dengan detail akses Tajo.

Konektor SendGrid

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

PropertiNilai
PlatformSendGrid (Twilio)
KategoriMarketing
Kompleksitas setupMudah
Integrasi resmiYa
Data yang disinkronkanKontak, kampanye, email transaksional, event
Base URL APIhttps://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:

  1. Akun SendGrid (Free, Essentials, Pro, atau Premier)
  2. API key SendGrid dengan izin yang dibutuhkan
  3. Akun Brevo dengan akses API
  4. Akun Tajo

Autentikasi

Autentikasi API key

SendGrid memakai autentikasi bearer token.

Terminal window
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 Access
Suppressions: Read Access
Tracking: Read Access

Keamanan 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": 62

Pemetaan 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_TYPE

Endpoint API

Marketing Contacts

MethodEndpointDeskripsi
PUT/v3/marketing/contactsMenambahkan atau memperbarui kontak
POST/v3/marketing/contacts/searchMencari kontak
GET/v3/marketing/contacts/countMengambil jumlah kontak
POST/v3/marketing/contacts/exportsMengekspor kontak
DELETE/v3/marketing/contactsMenghapus kontak
GET/v3/marketing/listsMenampilkan seluruh daftar kontak

Email transaksional (Mail Send)

MethodEndpointDeskripsi
POST/v3/mail/sendMengirim sebuah email
GET/v3/templatesMenampilkan Dynamic Template
GET/v3/templates/{id}Mengambil detail template

Kampanye (Single Send)

MethodEndpointDeskripsi
GET/v3/marketing/singlesendsMenampilkan Single Send
GET/v3/marketing/singlesends/{id}Mengambil detail Single Send
GET/v3/marketing/automationsMenampilkan Automation

Statistik

MethodEndpointDeskripsi
GET/v3/statsMengambil statistik email global
GET/v3/categories/statsMengambil statistik kategori
GET/v3/marketing/stats/singlesendsMengambil statistik Single Send

Suppression

MethodEndpointDeskripsi
GET/v3/suppression/bouncesMenampilkan email yang bounce
GET/v3/suppression/blocksMenampilkan email yang diblokir
GET/v3/suppression/spam_reportsMenampilkan laporan spam
GET/v3/suppression/unsubscribesMenampilkan unsubscribe global

Event

Event email (melalui Event Webhook)

EventPemicuKasus penggunaan
processedEmail diterima SendGridKonfirmasi pengiriman
deliveredEmail sampai ke penerimaPelacakan pengiriman
openEmail dibukaSkoring keterlibatan
clickTautan diklikPelacakan minat
bounceEmail bounceHigienitas daftar
droppedEmail ditekanPeninjauan kepatuhan
deferredPengiriman ditundaPemantauan retry
spam_reportDitandai sebagai spamPengelolaan reputasi
unsubscribeBerhenti berlangganan lewat tautanSinkronisasi 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 SendGrid
await tajo.connectors.connect('sendgrid', {
apiKey: process.env.SENDGRID_API_KEY
});

Migrasi kontak ke 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
// }

Meneruskan event email

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

Batas rate

Batas rate API SendGrid:

EndpointBatasDetail
Mail Send (/v3/mail/send)Bergantung paketFree: 100/hari, Essentials: sesuai paket
PUT Marketing Contacts3 permintaan/detikBatch hingga 30.000 kontak
Search Marketing Contacts50 permintaan/detikPer API key
API umum1.000 permintaan/detikPer API key
Event WebhookPengiriman batchHingga 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

MasalahPenyebabSolusi
401 UnauthorizedAPI key tidak validPeriksa API key di SendGrid Settings
403 ForbiddenIzin API key tidak mencukupiBuat key baru dengan scope yang dibutuhkan
Ekspor kontak tertundaPemrosesan dataset besarPolling endpoint status ekspor sampai selesai
Sinkronisasi suppression tidak lengkapPerlu paginasiTerapkan paginasi dengan parameter offset
Event webhook tidak diterimaURL belum terverifikasiSelesaikan verifikasi URL webhook di SendGrid

Mode debug

Aktifkan logging verbose:

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

Menguji koneksi

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

Praktik terbaik

  1. Migrasikan suppression lebih dulu - Pastikan bounce, block, dan unsubscribe sudah ada di Brevo sebelum mengirim
  2. Gunakan unggahan kontak batch - Kirim PUT hingga 30.000 kontak per permintaan agar efisien
  3. Verifikasi Event Webhook - Aktifkan webhook bertanda tangan dengan verifikasi ECDSA
  4. Petakan field kustom - Buat atribut Brevo yang setara sebelum migrasi kontak
  5. Sinkronkan data keterlibatan - Impor statistik historis untuk segmentasi di Brevo
  6. 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

Sumber daya terkait

Ajukan akses awal

Masukkan nama depan serta email atau nomor telepon Anda. Kami akan menghubungi Anda dengan detail akses Tajo.

deteksi otomatis
Asisten AI

Halo! Tanyakan apa saja tentang dokumentasi.