موصل Zapier
اربط Zapier بـ Brevo من خلال Tajo لتجسير آلاف التطبيقات الخارجية مع سير عمل أتمتة التسويق الخاص بك، مما يتيح تدفقات بيانات بدون كود ومحفزات قائمة على الأحداث عبر مجموعتك التقنية بأكملها.
نظرة عامة
| الخاصية | القيمة |
|---|---|
| المنصة | Zapier |
| الفئة | أتمتة (مخصص) |
| تعقيد الإعداد | سهل |
| تكامل رسمي | لا |
| البيانات المُزامَنة | أحداث، جهات اتصال، سير عمل، محفزات |
| طريقة المصادقة | مفتاح API / OAuth 2.0 |
الميزات
- تنسيق متعدد التطبيقات - ربط أكثر من 6,000 تطبيق بـ Brevo عبر سير عمل Zap
- محفزات Webhook - استقبال أحداث في الوقت الفعلي من أي تطبيق مرتبط بـ Zapier
- مزامنة جهات الاتصال - دفع وسحب جهات الاتصال بين المنصات المرتبطة بـ Zapier وBrevo
- إعادة توجيه الأحداث - توجيه أحداث التطبيق عبر Tajo إلى أتمتة Brevo
- Zaps متعددة الخطوات - بناء سير عمل معقدة بعوامل التصفية والمُنسِّقات والتأخيرات
- تطبيق Zapier مخصص - استخدام Zapier Platform CLI لبناء تكاملات مُخصَّصة
المتطلبات الأساسية
قبل البدء، تأكد من توفر ما يلي:
- حساب Zapier (الطبقة المجانية أو أعلى)
- حساب Brevo مع وصول إلى API
- حساب Tajo مع صلاحيات الموصلات
- Node.js 18+ مثبّت (لتطوير التكامل القائم على CLI)
المصادقة
مصادقة مفتاح API
# 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 لإرسال الأحداث إلى webhooks 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: exponentialنقاط نهاية واجهة البرمجة
| نقطة النهاية | الطريقة | الوصف |
|---|---|---|
https://hooks.zapier.com/hooks/catch/{id} | POST | نقطة التقاط webhook |
https://nla.zapier.com/api/v1/dynamic/exposed/ | GET | سرد الإجراءات المعروضة |
https://nla.zapier.com/api/v1/dynamic/exposed/{action_id}/execute/ | POST | تنفيذ إجراء |
https://zapier.com/api/platform/cli/apps | GET | سرد التطبيقات المسجلة |
https://zapier.com/api/platform/cli/push | POST | نشر التكامل |
أمثلة على الكود
تهيئة الموصل
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']});بناء تكامل Zapier مخصص باستخدام 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;التعامل مع webhooks 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' });});حدود المعدل
| الخطة | الطلبات | المهام/شهر | فترة الاستطلاع |
|---|---|---|---|
| مجاني | 100/يوم | 100 | 15 دقيقة |
| Starter | 1,000/يوم | 750 | 15 دقيقة |
| Professional | 5,000/يوم | 2,000 | دقيقتان |
| Team | 10,000/يوم | 50,000 | دقيقة واحدة |
حدود مهام Zapier
تُعتبر كل خطوة Zap مهمة. تستهلك Zaps متعددة الخطوات عدة مهام لكل تنفيذ. راقب استخدام المهام في لوحة Zapier لتجنب التجاوزات.
استكشاف الأخطاء وإصلاحها
| المشكلة | السبب | الحل |
|---|---|---|
| Webhook لا يعمل | Zap متوقف | تحقق من حالة Zap في لوحة Zapier |
| البيانات لا تُعيَّن | عدم تطابق أسماء الحقول | تحقق من مطابقة مفاتيح الحقول بين التطبيقات |
| جهات اتصال مكررة | لم يُضبَط إزالة التكرار | فعّل إزالة التكرار القائمة على البريد الإلكتروني في Tajo |
| أخطاء Zap | تم بلوغ حد معدل API | أضف خطوات تأخير أو رقّي خطة Zapier |
| انتهاء المصادقة | الرمز لم يُحدَّث | أعد مصادقة الاتصال في Zapier |
وضع التصحيح
connectors: zapier: debug: true log_level: verbose log_webhooks: trueأفضل الممارسات
- استخدم webhooks بدلاً من الاستطلاع - توفر webhooks تدفق بيانات آني مقابل تأخيرات الاستطلاع
- أضف معالجة الأخطاء - استخدم Zapier Paths للتعامل مع سيناريوهات النجاح/الفشل
- إزالة تكرار البيانات - فعّل مفاتيح إزالة التكرار لمنع السجلات المكررة
- راقب استخدام المهام - إعداد تنبيهات قبل الوصول إلى حدود المهام
- استخدم عوامل التصفية بحكمة - صفِّ مبكرًا في Zaps لتقليل استهلاك المهام غير الضروري
- رقِّم تكاملات CLI - استخدم التحكم في الإصدار الدلالي لتطبيقات Platform CLI
الأمان
- HTTPS فقط - يجب أن تستخدم جميع عناوين webhook URL بروتوكول HTTPS
- تدوير مفاتيح API - دوّر المفاتيح دوريًا عبر لوحة Zapier
- OAuth 2.0 - استخدم OAuth لمصادقة الخدمات الخارجية
- التحقق من Webhook - تحقق من توقيعات webhook الواردة
- صلاحيات مقيدة - امنح أدنى الوصول المطلوب لكل Zap