Zapier Connector
เชื่อมต่อ Zapier กับ Brevo ผ่าน Tajo เพื่อเชื่อมแอปของบุคคลที่สามนับพันกับเวิร์กโฟลว์ระบบอัตโนมัติทางการตลาดของคุณ เปิดใช้งานการไหลของข้อมูลแบบไม่ต้องเขียนโค้ดและทริกเกอร์ที่ขับเคลื่อนด้วยเหตุการณ์ทั่วทั้ง tech stack ของคุณ
ภาพรวม
| คุณสมบัติ | ค่า |
|---|---|
| แพลตฟอร์ม | Zapier |
| หมวดหมู่ | Automation (แบบกำหนดเอง) |
| ความซับซ้อนในการตั้งค่า | ง่าย |
| การผสานรวมอย่างเป็นทางการ | ไม่ |
| ข้อมูลที่ซิงค์ | เหตุการณ์ ผู้ติดต่อ เวิร์กโฟลว์ ทริกเกอร์ |
| วิธีการยืนยันตัวตน | API Key / OAuth 2.0 |
ฟีเจอร์
- การประสานงานหลายแอป - เชื่อมต่อ 6,000+ แอปกับ Brevo ผ่าน Zap workflows
- Webhook triggers - รับเหตุการณ์แบบเรียลไทม์จากแอปใดก็ตามที่เชื่อมต่อกับ Zapier
- การซิงค์ผู้ติดต่อ - ผลักดันและดึงผู้ติดต่อระหว่างแพลตฟอร์มที่เชื่อมต่อกับ Zapier และ Brevo
- การส่งต่อเหตุการณ์ - กำหนดเส้นทางเหตุการณ์แอปพลิเคชันผ่าน Tajo เข้าสู่ระบบอัตโนมัติ Brevo
- Zaps หลายขั้นตอน - สร้างเวิร์กโฟลว์ที่ซับซ้อนพร้อมตัวกรอง formatters และ delays
- Custom Zapier app - ใช้ Zapier Platform CLI เพื่อสร้างการผสานรวมที่ปรับแต่งได้
ข้อกำหนดเบื้องต้น
ก่อนเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณมี:
- บัญชี Zapier (Free tier หรือสูงกว่า)
- บัญชี Brevo ที่มีสิทธิ์เข้าถึง API
- บัญชี Tajo ที่มีสิทธิ์ connector
- Node.js 18+ ที่ติดตั้งแล้ว (สำหรับการพัฒนาการผสานรวมด้วย CLI)
การยืนยันตัวตน
การยืนยันตัวตนด้วย 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 รองรับ OAuth 2.0 สำหรับการเชื่อมต่อบริการของบุคคลที่สามภายใน Zaps:
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' } } }};การกำหนดค่า
การตั้งค่าพื้นฐาน
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: LASTNAMEการกำหนดค่า Webhook
กำหนดค่า Tajo เพื่อส่งเหตุการณ์ไปยัง Zapier webhooks:
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: exponentialAPI Endpoints
| Endpoint | เมธอด | คำอธิบาย |
|---|---|---|
https://hooks.zapier.com/hooks/catch/{id} | POST | Webhook catch hook |
https://nla.zapier.com/api/v1/dynamic/exposed/ | GET | แสดงรายการ actions ที่เปิดเผย |
https://nla.zapier.com/api/v1/dynamic/exposed/{action_id}/execute/ | POST | รัน action |
https://zapier.com/api/platform/cli/apps | GET | แสดงรายการแอปที่ลงทะเบียน |
https://zapier.com/api/platform/cli/push | POST | Deploy integration |
ตัวอย่างโค้ด
เริ่มต้น Connector
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']});สร้าง Custom Zapier Integration ด้วย 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;จัดการ Zapier Webhooks ขาเข้า
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' });});ขีดจำกัดอัตรา
| แผน | คำขอ | Tasks/เดือน | ช่วงเวลา Polling |
|---|---|---|---|
| Free | 100/วัน | 100 | 15 นาที |
| Starter | 1,000/วัน | 750 | 15 นาที |
| Professional | 5,000/วัน | 2,000 | 2 นาที |
| Team | 10,000/วัน | 50,000 | 1 นาที |
ขีดจำกัด Zapier Task
แต่ละขั้นตอน Zap นับเป็น task หนึ่งรายการ Zaps หลายขั้นตอนบริโภค tasks หลายรายการต่อการรัน ตรวจสอบการใช้งาน task ใน Zapier dashboard เพื่อหลีกเลี่ยงการเกินขีดจำกัด
การแก้ไขปัญหา
| ปัญหา | สาเหตุ | วิธีแก้ |
|---|---|---|
| Webhook ไม่ทำงาน | Zap ถูกปิด | ตรวจสอบสถานะ Zap ใน Zapier dashboard |
| ข้อมูลไม่แมป | ชื่อฟิลด์ไม่ตรงกัน | ตรวจสอบว่า field keys ตรงกันระหว่างแอป |
| ผู้ติดต่อซ้ำกัน | ไม่ได้กำหนดค่า dedup | เปิดใช้งาน email-based deduplication ใน Tajo |
| ข้อผิดพลาด Zap | ถึงขีดจำกัด API rate | เพิ่ม delay steps หรืออัปเกรดแผน Zapier |
| Auth หมดอายุ | Token ไม่ได้ refresh | ยืนยันตัวตนการเชื่อมต่อใหม่ใน Zapier |
โหมด Debug
connectors: zapier: debug: true log_level: verbose log_webhooks: trueแนวทางปฏิบัติที่ดีที่สุด
- ใช้ webhooks แทนการ polling - Webhooks ให้การไหลของข้อมูลแบบเรียลไทม์เทียบกับความล่าช้าในการ polling
- เพิ่มการจัดการข้อผิดพลาด - ใช้ Zapier Paths เพื่อจัดการสถานการณ์ success/failure
- Deduplicate ข้อมูล - เปิดใช้งาน deduplication keys เพื่อป้องกัน records ซ้ำกัน
- ตรวจสอบการใช้งาน task - ตั้งค่าการแจ้งเตือนก่อนถึงขีดจำกัด task
- ใช้ตัวกรองอย่างชาญฉลาด - กรองในช่วงต้นของ Zaps เพื่อลดการบริโภค task ที่ไม่จำเป็น
- จัดเวอร์ชัน CLI integrations ของคุณ - ใช้ semantic versioning สำหรับแอป Platform CLI
ความปลอดภัย
- HTTPS เท่านั้น - Webhook URLs ทั้งหมดต้องใช้ HTTPS
- การหมุนเวียน API key - หมุนเวียน keys เป็นระยะผ่าน Zapier dashboard
- OAuth 2.0 - ใช้ OAuth สำหรับการยืนยันตัวตนบริการของบุคคลที่สาม
- การตรวจสอบ webhook - ตรวจสอบลายเซ็น webhook ขาเข้า
- สิทธิ์ที่กำหนดขอบเขต - ให้สิทธิ์การเข้าถึงขั้นต่ำที่จำเป็นต่อ Zap