Konektor Zapier
Hubungkan Zapier ke Brevo melalui Tajo untuk menjembatani ribuan aplikasi pihak ketiga dengan alur kerja otomatisasi pemasaran Anda, sehingga aliran data tanpa kode dan pemicu berbasis event dapat berjalan di seluruh tech stack Anda.
Ikhtisar
| Properti | Nilai |
|---|---|
| Platform | Zapier |
| Kategori | Otomatisasi (Custom) |
| Kompleksitas setup | Mudah |
| Integrasi resmi | Tidak |
| Data yang disinkronkan | Event, kontak, alur kerja, pemicu |
| Metode autentikasi | API Key / OAuth 2.0 |
Fitur
- Orkestrasi multi-aplikasi - Hubungkan 6.000+ aplikasi ke Brevo melalui alur kerja Zap
- Pemicu webhook - Terima event real-time dari aplikasi mana pun yang terhubung ke Zapier
- Sinkronisasi kontak - Kirim dan tarik kontak antara platform yang terhubung ke Zapier dan Brevo
- Penerusan event - Arahkan event aplikasi melalui Tajo ke dalam otomatisasi Brevo
- Zap multi-langkah - Bangun alur kerja kompleks dengan filter, formatter, dan penundaan
- Aplikasi Zapier kustom - Gunakan Zapier Platform CLI untuk membangun integrasi yang disesuaikan
Prasyarat
Sebelum memulai, pastikan Anda memiliki:
- Akun Zapier (paket Free atau lebih tinggi)
- Akun Brevo dengan akses API
- Akun Tajo dengan izin konektor
- Node.js 18+ terpasang (untuk pengembangan integrasi berbasis CLI)
Autentikasi
Autentikasi API key
# Set your Zapier Platform credentialsexport ZAPIER_DEPLOY_KEY=your_deploy_keyexport TAJO_API_KEY=your_tajo_api_keyexport BREVO_API_KEY=your_brevo_api_keyOAuth 2.0
Zapier mendukung OAuth 2.0 untuk menghubungkan layanan pihak ketiga di dalam Zap:
const authentication = { type: 'oauth2', oauth2Config: { authorizeUrl: { url: 'https://your-app.com/oauth/authorize', params: { client_id: '{{process.env.CLIENT_ID}}', state: '{{bundle.inputData.state}}', redirect_uri: '{{bundle.inputData.redirect_uri}}', response_type: 'code' } }, getAccessToken: { url: 'https://your-app.com/oauth/token', method: 'POST', body: { code: '{{bundle.inputData.code}}', client_id: '{{process.env.CLIENT_ID}}', client_secret: '{{process.env.CLIENT_SECRET}}', grant_type: 'authorization_code', redirect_uri: '{{bundle.inputData.redirect_uri}}' } }, refreshAccessToken: { url: 'https://your-app.com/oauth/token', method: 'POST', body: { refresh_token: '{{bundle.authData.refresh_token}}', client_id: '{{process.env.CLIENT_ID}}', client_secret: '{{process.env.CLIENT_SECRET}}', grant_type: 'refresh_token' } } }};Konfigurasi
Setup dasar
connectors: zapier: enabled: true webhook_url: "https://hooks.zapier.com/hooks/catch/YOUR_HOOK_ID"
sync: contacts: true events: true workflows: true
triggers: - contact_created - order_placed - form_submitted
mapping: email: email first_name: FIRSTNAME last_name: LASTNAMEKonfigurasi webhook
Konfigurasikan Tajo untuk mengirim event ke webhook Zapier:
webhooks: zapier: url: "https://hooks.zapier.com/hooks/catch/YOUR_HOOK_ID" events: - contact.created - contact.updated - order.completed - cart.abandoned retry: max_attempts: 3 backoff: exponentialEndpoint API
| Endpoint | Metode | Deskripsi |
|---|---|---|
https://hooks.zapier.com/hooks/catch/{id} | POST | Catch hook webhook |
https://nla.zapier.com/api/v1/dynamic/exposed/ | GET | Menampilkan action yang diekspos |
https://nla.zapier.com/api/v1/dynamic/exposed/{action_id}/execute/ | POST | Menjalankan sebuah action |
https://zapier.com/api/platform/cli/apps | GET | Menampilkan aplikasi terdaftar |
https://zapier.com/api/platform/cli/push | POST | Men-deploy integrasi |
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 Zapier via webhookawait tajo.connectors.connect('zapier', { webhookUrl: process.env.ZAPIER_WEBHOOK_URL, events: ['contact.created', 'order.completed']});Membangun integrasi Zapier kustom dengan Platform CLI
const { version: platformVersion } = require('zapier-platform-core');
const App = { version: require('./package.json').version, platformVersion, authentication, triggers: { new_contact: { key: 'new_contact', noun: 'Contact', display: { label: 'New Contact in Tajo', description: 'Triggers when a new contact is synced.' }, operation: { perform: async (z, bundle) => { const response = await z.request({ url: 'https://api.tajo.io/v1/contacts', params: { since: bundle.meta.lastPoll } }); return response.data; } } } }, creates: { sync_contact: { key: 'sync_contact', noun: 'Contact', display: { label: 'Sync Contact to Brevo', description: 'Syncs a contact to Brevo via Tajo.' }, operation: { inputFields: [ { key: 'email', required: true, type: 'string' }, { key: 'firstName', type: 'string' }, { key: 'lastName', type: 'string' } ], perform: async (z, bundle) => { const response = await z.request({ method: 'POST', url: 'https://api.tajo.io/v1/contacts/sync', body: bundle.inputData }); return response.data; } } } }};
module.exports = App;Menangani webhook masuk dari Zapier
app.post('/webhooks/zapier', async (req, res) => { const { event, data } = req.body;
await tajo.connectors.handleWebhook('zapier', { topic: event, payload: data });
res.status(200).json({ status: 'received' });});Batas rate
| Paket | Permintaan | Task/bulan | Interval polling |
|---|---|---|---|
| Free | 100/hari | 100 | 15 menit |
| Starter | 1.000/hari | 750 | 15 menit |
| Professional | 5.000/hari | 2.000 | 2 menit |
| Team | 10.000/hari | 50.000 | 1 menit |
Batas task Zapier
Setiap langkah Zap dihitung sebagai satu task. Zap multi-langkah menghabiskan beberapa task per eksekusi. Pantau penggunaan task Anda di dasbor Zapier untuk menghindari kelebihan kuota.
Pemecahan masalah
| Masalah | Penyebab | Solusi |
|---|---|---|
| Webhook tidak terpicu | Zap dimatikan | Periksa status Zap di dasbor Zapier |
| Data tidak terpetakan | Nama field tidak cocok | Pastikan key field cocok antar aplikasi |
| Kontak duplikat | Dedup belum dikonfigurasi | Aktifkan deduplikasi berbasis email di Tajo |
| Error Zap | Batas rate API tercapai | Tambahkan langkah penundaan atau tingkatkan paket Zapier |
| Auth kedaluwarsa | Token tidak disegarkan | Autentikasi ulang koneksi di Zapier |
Mode debug
connectors: zapier: debug: true log_level: verbose log_webhooks: truePraktik terbaik
- Gunakan webhook daripada polling - Webhook memberikan aliran data real-time, bukan penundaan polling
- Tambahkan penanganan error - Gunakan Zapier Paths untuk menangani skenario berhasil dan gagal
- Deduplikasi data - Aktifkan key deduplikasi untuk mencegah record duplikat
- Pantau penggunaan task - Siapkan peringatan sebelum batas task tercapai
- Gunakan filter dengan bijak - Saring lebih awal dalam Zap untuk mengurangi konsumsi task yang tidak perlu
- Beri versi integrasi CLI Anda - Gunakan semantic versioning untuk aplikasi Platform CLI
Keamanan
- Hanya HTTPS - Seluruh URL webhook wajib menggunakan HTTPS
- Rotasi API key - Rotasikan key secara berkala melalui dasbor Zapier
- OAuth 2.0 - Gunakan OAuth untuk autentikasi layanan pihak ketiga
- Verifikasi webhook - Validasi tanda tangan webhook yang masuk
- Izin tersegmentasi - Berikan akses seminimal yang diperlukan per Zap