Konektor Brevo
Hubungkan akun Brevo Anda ke Tajo untuk manajemen kontak terpadu, pesan transaksional lintas email, SMS, dan WhatsApp, serta otomatisasi marketing yang menyeluruh.
Ikhtisar
| Properti | Nilai |
|---|---|
| Platform | Brevo |
| Kategori | Marketing |
| Kompleksitas setup | Mudah |
| Integrasi resmi | Ya |
| Data yang disinkronkan | Kontak, Kampanye, Pesan Transaksional, Event, eCommerce |
| URL dasar API | https://api.brevo.com/v3 |
Fitur
- Pesan multi-kanal - Kirim email transaksional, SMS, dan WhatsApp dari satu API terpadu
- Manajemen kontak - Buat, perbarui, dan segmentasikan kontak dengan atribut kustom
- Kampanye marketing - Buat dan kirim kampanye email secara terprogram
- Pelacakan event - Lacak custom event dan aktivitas situs web melalui Brevo Tracker
- Sinkronisasi eCommerce - Sinkronkan produk, pesanan, dan data keranjang untuk kampanye yang dipersonalisasi
- Program loyalitas - Kelola langganan loyalitas, poin, dan data anggota
- Dukungan webhook - Notifikasi event real-time untuk event transaksional, marketing, dan CRM
- Conversations - Integrasi widget live chat dan manajemen pesan secara terprogram
Prasyarat
Sebelum memulai, pastikan Anda memiliki:
- Akun Brevo (paket Free, Starter, Business, atau Enterprise)
- API key yang dibuat dari Brevo Settings > API Keys
- Akun Tajo dengan akses API
- Domain pengirim terverifikasi untuk pengiriman email
Autentikasi
Brevo mendukung dua metode autentikasi:
Autentikasi API key (direkomendasikan)
Sertakan API key Anda pada header api-key di setiap permintaan. Paling cocok untuk integrasi langsung dan komunikasi server ke server.
curl -X GET "https://api.brevo.com/v3/account" \ -H "api-key: YOUR_API_KEY" \ -H "Content-Type: application/json"Autentikasi OAuth 2.0
Gunakan OAuth 2.0 untuk integrasi privat di dalam organisasi yang memerlukan akses terdelegasi dan izin spesifik per pengguna. OAuth menyediakan sistem berbasis token dengan masa berlaku yang ditentukan.
Ketersediaan OAuth
Saat ini OAuth hanya tersedia untuk integrasi privat di dalam organisasi. Integrasi OAuth tidak ditujukan untuk distribusi publik atau pendaftaran di marketplace.
Konfigurasi
Setup dasar
connectors: brevo: enabled: true api_key: "${BREVO_API_KEY}" api_version: "v3"
# Data sync options sync: contacts: true campaigns: true transactional: true events: true ecommerce: true
# List assignment lists: all_customers: 5 newsletter: 6 buyers: 7Pemetaan field
Petakan field data Anda ke atribut kontak Brevo:
Pemetaan default
| Parameter | Type | Description |
|---|---|---|
email required | string | Alamat email kontak (identifier unik) |
FIRSTNAME optional | string | Atribut nama depan kontak |
LASTNAME optional | string | Atribut nama belakang kontak |
SMS optional | string | Nomor telepon untuk pesan SMS dan WhatsApp |
OPT_IN optional | boolean | Status persetujuan opt-in marketing |
ORDER_COUNT optional | integer | Jumlah total pesanan yang dibuat |
TOTAL_REVENUE optional | number | Total pendapatan seumur hidup dari kontak |
LOYALTY_POINTS optional | integer | Saldo poin program loyalitas saat ini |
Pemetaan atribut kustom
field_mapping: # Standard fields email: email first_name: FIRSTNAME last_name: LASTNAME phone: SMS
# Marketing fields opt_in: OPT_IN signup_source: SIGNUP_SOURCE preferred_language: LANGUAGE
# eCommerce metrics orders_count: ORDER_COUNT total_spent: TOTAL_REVENUE last_order_date: LAST_ORDER_DATE
# Loyalty fields loyalty_tier: VIP_TIER loyalty_points: LOYALTY_POINTSEndpoint API
Endpoint inti
| Metode | Endpoint | Deskripsi |
|---|---|---|
POST | /v3/smtp/email | Mengirim email transaksional |
POST | /v3/transactionalSMS/send | Mengirim SMS transaksional |
POST | /v3/whatsapp/sendMessage | Mengirim WhatsApp transaksional |
POST | /v3/contacts | Membuat kontak |
PUT | /v3/contacts/{email} | Memperbarui kontak |
GET | /v3/contacts/{identifier} | Mengambil detail kontak |
POST | /v3/contacts/import | Impor kontak secara massal |
Endpoint eCommerce
| Metode | Endpoint | Deskripsi |
|---|---|---|
POST | /v3/orders/status | Membuat atau memperbarui status pesanan |
POST | /v3/products | Membuat atau memperbarui produk |
POST | /v3/categories | Membuat atau memperbarui kategori produk |
POST | /v3/events | Melacak custom event |
Endpoint kampanye
| Metode | Endpoint | Deskripsi |
|---|---|---|
POST | /v3/emailCampaigns | Membuat kampanye email |
POST | /v3/emailCampaigns/{id}/sendNow | Mengirim kampanye seketika |
GET | /v3/emailCampaigns | Menampilkan semua kampanye email |
GET | /v3/smtp/statistics/events | Mengambil statistik event email |
Event
Event transaksional
| Event | Trigger | Kasus penggunaan |
|---|---|---|
delivered | Email terkirim ke inbox | Konfirmasi pengiriman |
opened | Email dibuka oleh penerima | Pelacakan engagement |
clicked | Tautan diklik di dalam email | Pelacakan click-through |
bounced | Email bounce | Higienitas list |
spam | Ditandai sebagai spam | Pemantauan kepatuhan |
unsubscribed | Kontak berhenti berlangganan | Manajemen preferensi |
Event eCommerce
| Event | Trigger | Kasus penggunaan |
|---|---|---|
order_completed | Pesanan berhasil dibuat | Alur pascapembelian |
cart_updated | Isi keranjang berubah | Pelacakan keranjang terbengkalai |
cart_deleted | Keranjang dikosongkan atau kedaluwarsa | Pemulihan keranjang |
product_viewed | Halaman produk dikunjungi | Browse abandonment |
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 Brevo accountawait tajo.connectors.connect('brevo', { apiKey: process.env.BREVO_API_KEY});Kirim email transaksional
// Send a transactional email via Brevoawait tajo.brevo.sendTransactionalEmail({ templateId: 12, params: { ORDER_ID: '12345', ORDER_TOTAL: '$59.99', DELIVERY_DATE: '2024-02-15' }});Sinkronkan kontak
// Bulk import contacts to Brevoawait tajo.connectors.sync('brevo', { type: 'full', resources: ['contacts'], options: { listIds: [5, 6], updateExisting: true, emptyContactsAttributes: false }});
// Check sync statusconst status = await tajo.connectors.status('brevo');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// contactsSynced: 25400,// campaignsSent: 142,// eventsTracked: 89320// }Lacak custom event
// Track a custom event for a contactawait tajo.brevo.trackEvent({ event: 'product_purchased', eventdata: { id: 'txn_98765', data: { product_name: 'Premium Widget', price: 49.99, currency: 'USD' } }});Batas rate
Brevo menerapkan batas rate dalam tiga tingkatan berdasarkan paket Anda:
| Endpoint | Free/Starter | Professional | Enterprise |
|---|---|---|---|
POST /v3/smtp/email | 1.000 RPS | 2.000 RPS | 6.000 RPS |
POST /v3/transactionalSMS/send | 150 RPS | 200 RPS | 250 RPS |
POST /v3/events | 10 RPS | 20 RPS | 60 RPS |
/v3/contacts/* | 10 RPS | 20 RPS | 60 RPS |
| Semua endpoint lainnya | 100 RPH | 200 RPH | 600 RPH |
Respons batas rate
Ketika Anda melampaui batas rate, API mengembalikan kode status 429 Too Many Requests. Pantau header batas rate pada respons untuk melacak penggunaan Anda.
Pemecahan masalah
Masalah umum
| Masalah | Penyebab | Solusi |
|---|---|---|
| 401 Unauthorized | API key tidak valid | Buat ulang API key di Brevo Settings |
| Kontak tidak dibuat | Field email tidak ada | Pastikan email tersedia untuk semua kontak |
| Email tidak terkirim | Domain pengirim belum terverifikasi | Verifikasi domain di pengaturan Brevo Senders |
| Webhook tidak diterima | URL salah atau error server | Periksa aksesibilitas URL webhook dan log-nya |
| SMS tidak terkirim | Format nomor telepon tidak valid | Gunakan format internasional dengan kode negara |
Mode debug
Aktifkan logging terperinci:
connectors: brevo: debug: true log_level: verbose log_webhooks: trueUji koneksi
tajo connectors test brevo# ✓ API connection successful# ✓ Contacts API accessible# ✓ Transactional email ready# ✓ SMS sending configured# ✓ Webhooks registeredPraktik terbaik
- Rotasi API key - Rotasikan API key secara berkala demi keamanan
- Terapkan verifikasi webhook - Validasi signature webhook dengan autentikasi username/password
- Impor kontak secara batch - Gunakan impor massal untuk dataset besar alih-alih panggilan API satu per satu
- Pantau batas rate - Periksa header batas rate untuk menghindari error 429
- Gunakan pelacakan event - Terapkan Brevo Tracker untuk data perilaku pelanggan yang menyeluruh
- Siapkan autentikasi pengirim yang benar - Konfigurasikan SPF, DKIM, dan DMARC demi deliverability optimal
Keamanan
- Autentikasi API key - Akses berbasis token rahasia melalui header
api-key - OAuth 2.0 - Akses terdelegasi berbasis token untuk integrasi privat
- Verifikasi webhook - Autentikasi username dan password untuk panggilan webhook yang aman
- Enkripsi TLS - Semua komunikasi API dienkripsi saat transit
- Whitelist IP - Pembatasan IP opsional yang tersedia pada paket Enterprise