Коннектор Zapier
Подключите Zapier к Brevo через Tajo для связи тысяч сторонних приложений с рабочими процессами маркетинговой автоматизации, обеспечения no-code потоков данных и event-driven триггеров по всему технологическому стеку.
Обзор
| Свойство | Значение |
|---|---|
| Платформа | Zapier |
| Категория | Automation (Custom) |
| Сложность настройки | Простая |
| Официальная интеграция | Нет |
| Синхронизируемые данные | События, контакты, рабочие процессы, триггеры |
| Метод аутентификации | API Key / OAuth 2.0 |
Возможности
- Оркестрация нескольких приложений, подключение 6 000+ приложений к Brevo через Zap-рабочие процессы
- Вебхук-триггеры, получение событий в реальном времени из любого подключённого к Zapier приложения
- Синхронизация контактов, передача и получение контактов между платформами и Brevo
- Пересылка событий, маршрутизация событий приложений через Tajo в автоматизации Brevo
- Многошаговые Zaps, создание сложных рабочих процессов с фильтрами, форматтерами и задержками
- Пользовательское приложение Zapier, использование Zapier Platform CLI для создания индивидуальных интеграций
Предварительные требования
Прежде чем начать, убедитесь, что у вас есть:
- Аккаунт Zapier (бесплатный тариф или выше)
- Аккаунт Brevo с доступом к API
- Аккаунт Tajo с правами на управление коннекторами
- Node.js 18+ (для разработки интеграций на основе CLI)
Аутентификация
Аутентификация по API Key
# Задайте учётные данные Zapier Platformexport 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Конфигурация вебхука
Настройте Tajo для отправки событий в вебхуки 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Эндпоинты API
| Эндпоинт | Метод | Описание |
|---|---|---|
https://hooks.zapier.com/hooks/catch/{id} | POST | Вебхук catch hook |
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});
// Подключение Zapier через вебхукawait 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;Обработка входящих вебхуков 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' });});Ограничения скорости
| План | Запросы | Задач/мес. | Интервал опроса |
|---|---|---|---|
| Free | 100/день | 100 | 15 мин |
| Starter | 1 000/день | 750 | 15 мин |
| Professional | 5 000/день | 2 000 | 2 мин |
| Team | 10 000/день | 50 000 | 1 мин |
Лимиты задач Zapier
Каждый шаг Zap считается задачей. Многошаговые Zaps потребляют несколько задач за выполнение. Следите за потреблением задач в панели Zapier, чтобы избежать перерасхода.
Устранение неполадок
| Проблема | Причина | Решение |
|---|---|---|
| Вебхук не срабатывает | Zap выключен | Проверьте статус Zap в панели Zapier |
| Данные не сопоставляются | Несоответствие имён полей | Проверьте совпадение ключей полей между приложениями |
| Дублирующиеся контакты | Дедупликация не настроена | Включите дедупликацию по email в Tajo |
| Ошибки Zap | Превышен лимит API | Добавьте шаги задержки или перейдите на более высокий тариф Zapier |
| Авторизация истекла | Токен не обновлён | Повторно пройдите аутентификацию в Zapier |
Режим отладки
connectors: zapier: debug: true log_level: verbose log_webhooks: trueЛучшие практики
- Используйте вебхуки вместо опроса, вебхуки обеспечивают потоки данных в реальном времени против задержек опроса
- Добавляйте обработку ошибок, используйте Zapier Paths для обработки сценариев успеха/неудачи
- Дедублицируйте данные, включайте ключи дедупликации для предотвращения дублирующихся записей
- Следите за потреблением задач, настройте оповещения до достижения лимитов задач
- Используйте фильтры разумно, фильтруйте на ранних этапах Zaps для снижения лишнего потребления задач
- Версионируйте CLI-интеграции, используйте семантическое версионирование для приложений Platform CLI
Безопасность
- Только HTTPS, все URL вебхуков должны использовать HTTPS
- Ротация API-ключей, регулярно ротируйте ключи через панель Zapier
- OAuth 2.0, используйте OAuth для аутентификации сторонних сервисов
- Верификация вебхуков, валидируйте подписи входящих вебхуков
- Ограниченные права, предоставляйте минимально необходимый доступ для каждого Zap