Konektor Mailchimp
Hubungkan akun Mailchimp Anda ke Brevo melalui Tajo untuk migrasi audiens yang mulus, sinkronisasi data kampanye, dan otomatisasi marketing terpadu di kedua platform.
Ikhtisar
| Properti | Nilai |
|---|---|
| Platform | Mailchimp |
| Kategori | Marketing |
| Kompleksitas setup | Mudah |
| Integrasi resmi | Ya |
| Data yang disinkronkan | Kontak, kampanye, otomatisasi, event |
| Base URL API | https://{dc}.api.mailchimp.com/3.0 |
Fitur
- Sinkronisasi audiens - Migrasikan dan sinkronkan audiens Mailchimp dengan daftar kontak Brevo
- Data kampanye - Sinkronkan data performa kampanye untuk pelaporan terpadu
- Migrasi otomatisasi - Petakan otomatisasi Mailchimp ke workflow Brevo
- Metrik keterlibatan - Sinkronkan data open, klik, dan bounce ke atribut Brevo
- Pemetaan segmen - Replikasi segmen Mailchimp sebagai daftar atau segmen Brevo
- Data e-commerce - Sinkronkan data toko, produk, dan pesanan dari e-commerce Mailchimp
- Sinkronisasi tag - Petakan tag Mailchimp ke atribut kontak atau daftar Brevo
- Migrasi template - Ekspor template Mailchimp untuk dipakai pada kampanye Brevo
Prasyarat
Sebelum memulai, pastikan Anda memiliki:
- Akun Mailchimp (Free, Essentials, Standard, atau Premium)
- API key Mailchimp atau aplikasi OAuth
- Akun Brevo dengan akses API
- Akun Tajo
Autentikasi
Autentikasi API key
Buat API key dari Mailchimp Account > Extras > API Keys.
curl https://{dc}.api.mailchimp.com/3.0/ping \ --user "anystring:{api_key}" \ -H "Content-Type: application/json"Prefiks data center {dc} adalah bagian terakhir dari API key Anda (misalnya us21).
OAuth 2.0
Untuk integrasi multi-akun:
# Authorization URLhttps://login.mailchimp.com/oauth2/authorize? response_type=code& client_id={client_id}& redirect_uri={redirect_uri}
# Token exchangecurl -X POST https://login.mailchimp.com/oauth2/token \ -d "grant_type=authorization_code" \ -d "client_id={client_id}" \ -d "client_secret={client_secret}" \ -d "redirect_uri={redirect_uri}" \ -d "code={auth_code}"Data center
Selalu ambil data center dari API key Anda atau dari endpoint metadata OAuth. Memakai data center yang keliru akan menyebabkan kegagalan autentikasi.
Konfigurasi
Setup dasar
connectors: mailchimp: enabled: true api_key: "${MAILCHIMP_API_KEY}" data_center: "us21"
# Data sync options sync: audiences: true campaigns: true automations: true ecommerce: true
# Audience to Brevo list mapping audience_mapping: "Main Audience": 40 "Newsletter": 41 "Customers": 42Pemetaan field
Petakan merge field Mailchimp ke atribut kontak Brevo:
Pemetaan default
| Parameter | Type | Description |
|---|---|---|
email_address required | string | Email pelanggan email (identifier unik) |
FNAME optional | string | Merge field nama depan, dipetakan ke FIRSTNAME |
LNAME optional | string | Merge field nama belakang, dipetakan ke LASTNAME |
PHONE optional | string | Merge field telepon, dipetakan ke SMS |
status optional | string | Status langganan (subscribed, unsubscribed, cleaned, pending) |
tags optional | array | Tag pelanggan email untuk segmentasi |
stats.avg_open_rate optional | number | Rata-rata open rate email |
stats.avg_click_rate optional | number | Rata-rata click rate email |
Pemetaan merge field kustom
field_mapping: # Standard fields email_address: email FNAME: FIRSTNAME LNAME: LASTNAME PHONE: SMS
# Engagement metrics stats.avg_open_rate: AVG_OPEN_RATE stats.avg_click_rate: AVG_CLICK_RATE member_rating: ENGAGEMENT_SCORE
# E-commerce fields ecommerce_data.total_revenue: TOTAL_REVENUE ecommerce_data.number_of_orders: ORDER_COUNT
# Custom merge fields MMERGE5: COMPANY_NAME MMERGE6: CUSTOMER_TYPEEndpoint API
Audiens (daftar)
| Method | Endpoint | Deskripsi |
|---|---|---|
GET | /3.0/lists | Menampilkan seluruh audiens |
GET | /3.0/lists/{list_id} | Mengambil detail audiens |
GET | /3.0/lists/{list_id}/members | Menampilkan anggota audiens |
POST | /3.0/lists/{list_id}/members | Menambahkan seorang anggota |
PUT | /3.0/lists/{list_id}/members/{hash} | Memperbarui seorang anggota |
POST | /3.0/lists/{list_id} | Berlangganan/berhenti berlangganan secara batch |
Kampanye
| Method | Endpoint | Deskripsi |
|---|---|---|
GET | /3.0/campaigns | Menampilkan kampanye |
GET | /3.0/campaigns/{id} | Mengambil detail kampanye |
GET | /3.0/reports/{id} | Mengambil laporan kampanye |
GET | /3.0/reports/{id}/email-activity | Mengambil aktivitas email |
Otomatisasi
| Method | Endpoint | Deskripsi |
|---|---|---|
GET | /3.0/automations | Menampilkan otomatisasi |
GET | /3.0/automations/{id} | Mengambil detail otomatisasi |
GET | /3.0/automations/{id}/emails | Menampilkan email otomatisasi |
E-commerce
| Method | Endpoint | Deskripsi |
|---|---|---|
GET | /3.0/ecommerce/stores | Menampilkan toko yang terhubung |
GET | /3.0/ecommerce/stores/{id}/customers | Menampilkan pelanggan toko |
GET | /3.0/ecommerce/stores/{id}/orders | Menampilkan pesanan toko |
GET | /3.0/ecommerce/stores/{id}/products | Menampilkan produk toko |
Event
Event kampanye
| Event | Pemicu | Kasus penggunaan |
|---|---|---|
campaign.sent | Kampanye terkirim | Pelacakan performa |
campaign.opened | Email dibuka | Skoring keterlibatan |
campaign.clicked | Tautan diklik | Pelacakan minat |
campaign.bounced | Email bounce | Higienitas daftar |
Event pelanggan email
| Event | Pemicu | Kasus penggunaan |
|---|---|---|
subscribe | Pelanggan email baru ditambahkan | Alur sambutan |
unsubscribe | Pelanggan email berhenti berlangganan | Pengelolaan preferensi |
profile | Profil diperbarui | Sinkronisasi atribut |
cleaned | Email dibersihkan (bounce) | Pemeliharaan daftar |
Event e-commerce
| Event | Pemicu | Kasus penggunaan |
|---|---|---|
ecommerce.order | Pesanan dibuat | Alur pascapembelian |
ecommerce.cart | Keranjang diperbarui | Pemulihan keranjang terbengkalai |
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 Mailchimpawait tajo.connectors.connect('mailchimp', { apiKey: process.env.MAILCHIMP_API_KEY});Migrasi audiens ke Brevo
// Full audience migration from Mailchimp to Brevoawait tajo.connectors.sync('mailchimp', { type: 'full', resources: ['audiences', 'campaigns', 'ecommerce'], options: { preserveTags: true, migrateSegments: true, includeUnsubscribed: false }});
// Check migration statusconst status = await tajo.connectors.status('mailchimp');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// contactsMigrated: 52000,// campaignsSynced: 245,// segmentsMapped: 18// }Sinkronisasi data keterlibatan kampanye
// Sync campaign performance to Brevo attributesawait tajo.connectors.sync('mailchimp', { type: 'incremental', resources: ['campaigns'], options: { syncEngagement: true, updateContactMetrics: true, since: '2024-01-01' }});Batas rate
Batas rate Mailchimp Marketing API:
| Tipe | Batas | Detail |
|---|---|---|
| Standar | 10 permintaan bersamaan | Per API key |
| Operasi batch | 500 operasi per batch | Per permintaan |
| Batas ekspor | 1 ekspor bersamaan | Per akun |
| Transaksional | 25 permintaan/detik | Per API key |
Strategi batas rate
Mailchimp membatasi koneksi bersamaan, bukan permintaan per detik. Gunakan endpoint batch dan terapkan logika retry dengan exponential backoff pada respons 429.
Pemecahan masalah
Masalah umum
| Masalah | Penyebab | Solusi |
|---|---|---|
| 401 Unauthorized | API key tidak valid atau data center keliru | Periksa API key dan ambil prefiks dc yang benar |
| Member exists | Email sudah ada di audiens | Gunakan PUT alih-alih POST untuk memperbarui anggota yang ada |
| Compliance state | Penghapusan GDPR mencegah penambahan ulang | Kontak harus berlangganan ulang melalui formulir pendaftaran |
| Batch timeout | Operasi batch terlalu besar | Pecah menjadi batch lebih kecil berisi 500 operasi |
| Merge field hilang | Field kustom belum dibuat | Buat merge field di Mailchimp sebelum melakukan pemetaan |
Mode debug
Aktifkan logging verbose:
connectors: mailchimp: debug: true log_level: verbose log_api_calls: trueMenguji koneksi
tajo connectors test mailchimp# ✓ API connection successful# ✓ Audiences readable# ✓ Campaigns readable# ✓ E-commerce data accessible# ✓ Webhook configuredPraktik terbaik
- Gunakan operasi batch - Gunakan batch subscribe/unsubscribe untuk pembaruan massal
- Pertahankan status pelanggan email - Hormati persetujuan langganan selama migrasi
- Petakan merge field lebih dulu - Buat atribut Brevo yang setara sebelum menyinkronkan
- Sinkronkan data keterlibatan - Impor open/click rate untuk segmentasi historis
- Tangani compliance state - Hormati status GDPR dan penghapusan permanen
- Gunakan sinkronisasi inkremental - Sinkronkan hanya perubahan sejak sinkronisasi terakhir untuk menekan penggunaan API
Keamanan
- Autentikasi API key - Secret key dikirim sebagai password HTTP Basic Auth
- OAuth 2.0 - Otorisasi berbasis token untuk akses multi-akun
- Enkripsi TLS - Seluruh komunikasi API dienkripsi melalui HTTPS
- Verifikasi webhook - Validasi sumber webhook dengan shared secret
- Isolasi data center - Data disimpan di data center spesifik per region