Conector Zapier
Conecte o Zapier ao Brevo através do Tajo para fazer a ponte entre milhares de aplicações de terceiros e seus workflows de automação de marketing, permitindo fluxos de dados sem código e gatilhos orientados por eventos em toda a sua stack tecnológica.
Visão geral
| Propriedade | Valor |
|---|---|
| Plataforma | Zapier |
| Categoria | Automação (Personalizado) |
| Complexidade de configuração | Fácil |
| Integração oficial | Não |
| Dados sincronizados | Eventos, Contatos, Workflows, Triggers |
| Método de autenticação | API Key / OAuth 2.0 |
Recursos
- Orquestração multi-app - Conecte mais de 6.000 apps ao Brevo via workflows de Zap
- Gatilhos de webhook - Receba eventos em tempo real de qualquer app conectado ao Zapier
- Sincronização de contatos - Envie e receba contatos entre plataformas conectadas ao Zapier e o Brevo
- Encaminhamento de eventos - Roteie eventos de aplicações pelo Tajo para automações do Brevo
- Zaps multi-step - Construa workflows complexos com filtros, formatadores e atrasos
- App Zapier personalizado - Use a Zapier Platform CLI para construir integrações sob medida
Pré-requisitos
Antes de começar, certifique-se de ter:
- Uma conta Zapier (tier gratuito ou superior)
- Uma conta Brevo com acesso à API
- Uma conta Tajo com permissões de conector
- Node.js 18+ instalado (para desenvolvimento de integração baseada em CLI)
Autenticação
Autenticação por 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
O Zapier suporta OAuth 2.0 para conectar serviços de terceiros dentro de 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' } } }};Configuração
Configuração básica
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: LASTNAMEConfiguração de webhook
Configure o Tajo para enviar eventos a webhooks do 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: exponentialEndpoints da API
| Endpoint | Método | Descrição |
|---|---|---|
https://hooks.zapier.com/hooks/catch/{id} | POST | Webhook catch hook |
https://nla.zapier.com/api/v1/dynamic/exposed/ | GET | Listar ações expostas |
https://nla.zapier.com/api/v1/dynamic/exposed/{action_id}/execute/ | POST | Executar uma ação |
https://zapier.com/api/platform/cli/apps | GET | Listar apps registrados |
https://zapier.com/api/platform/cli/push | POST | Implantar integração |
Exemplos de código
Inicializar o conector
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']});Construir uma integração Zapier personalizada com a 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;Tratar webhooks recebidos do 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' });});Limites de taxa
| Plano | Requisições | Tarefas/Mês | Intervalo de polling |
|---|---|---|---|
| Free | 100/dia | 100 | 15 min |
| Starter | 1.000/dia | 750 | 15 min |
| Professional | 5.000/dia | 2.000 | 2 min |
| Team | 10.000/dia | 50.000 | 1 min |
Limites de tarefas do Zapier
Cada step de Zap conta como uma tarefa. Zaps multi-step consomem múltiplas tarefas por execução. Monitore seu uso de tarefas no painel do Zapier para evitar excedente.
Solução de problemas
| Problema | Causa | Solução |
|---|---|---|
| Webhook não disparando | Zap desligado | Verifique o status do Zap no painel do Zapier |
| Dados não mapeando | Nome de campo não corresponde | Verifique se os nomes de campos correspondem entre os apps |
| Contatos duplicados | Nenhuma deduplicação configurada | Habilite deduplicação baseada em e-mail no Tajo |
| Erros de Zap | Limite de taxa da API atingido | Adicione steps de atraso ou faça upgrade do plano Zapier |
| Autenticação expirada | Token não atualizado | Reautentique a conexão no Zapier |
Modo de depuração
connectors: zapier: debug: true log_level: verbose log_webhooks: trueMelhores práticas
- Use webhooks em vez de polling - Webhooks fornecem fluxo de dados em tempo real versus atrasos de polling
- Adicione tratamento de erros - Use Zapier Paths para tratar cenários de sucesso/falha
- Deduplique dados - Habilite chaves de deduplicação para evitar registros duplicados
- Monitore o uso de tarefas - Configure alertas antes de atingir limites de tarefas
- Use filtros com sabedoria - Filtre cedo nos Zaps para reduzir consumo desnecessário de tarefas
- Versione suas integrações CLI - Use versionamento semântico para apps da Platform CLI
Segurança
- Somente HTTPS - Todas as URLs de webhook devem usar HTTPS
- Rotação de API key - Faça rotação das chaves periodicamente pelo painel do Zapier
- OAuth 2.0 - Use OAuth para autenticação de serviços de terceiros
- Verificação de webhook - Valide assinaturas de webhook recebidas
- Permissões com escopo - Conceda acesso mínimo necessário por Zap