Zapier 커넥터
커넥터 상태: 예정 아직 구축되지 않았습니다. Tajo는 현재 이 커넥터를 실행하지 않습니다.
예시 그림 · 샘플 데이터
동기화 예시
원본
Zapier
커넥터 상태: 예정
대상
다른 도구
커넥터 상태: 사용자 지정 도구
필드 매핑
| 원본 필드 | 대상 필드 | 예시 값 |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- 초안
- 레코드 한 건 검토
- 이 버전 승인
상태는 개별 커넥터에 대한 것으로, 이 동기화가 준비됐다는 보장은 아닙니다. 표시된 필드는 예시입니다. 동기화 실행 전에 실제 스키마와 권한을 확인하세요.
Tajo를 통해 Zapier를 Brevo에 연결하여 수천 개의 타사 애플리케이션을 마케팅 자동화 워크플로와 연결하고, 전체 기술 스택에서 코드 없는 데이터 플로 및 이벤트 기반 트리거를 가능하게 하십시오.
개요
| 속성 | 값 |
|---|---|
| 플랫폼 | Zapier |
| 카테고리 | 자동화 (Custom) |
| 설정 복잡도 | 쉬움 |
| 공식 통합 | 아니오 |
| 동기화 데이터 | 이벤트, 연락처, 워크플로, 트리거 |
| 인증 방법 | API Key / OAuth 2.0 |
기능
- 다중 앱 오케스트레이션 - Zap 워크플로를 통해 6,000개 이상의 앱을 Brevo에 연결
- 웹훅 트리거 - Zapier에 연결된 모든 앱에서 실시간 이벤트 수신
- 연락처 동기화 - Zapier에 연결된 플랫폼과 Brevo 간에 연락처 푸시 및 풀
- 이벤트 전달 - Tajo를 통해 애플리케이션 이벤트를 Brevo 자동화로 라우팅
- 멀티스텝 Zap - 필터, 포매터, 지연으로 복잡한 워크플로 구축
- 맞춤 Zapier 앱 - Zapier Platform CLI를 사용하여 맞춤 통합 구축
사전 요구 사항
시작하기 전에 다음이 준비되어 있는지 확인하십시오.
- Zapier 계정 (Free 티어 이상)
- API 접근이 가능한 Brevo 계정
- 커넥터 권한이 있는 Tajo 계정
- Node.js 18+ 설치 (CLI 기반 통합 개발용)
인증
API 키 인증
# Zapier 플랫폼 자격 증명 설정export ZAPIER_DEPLOY_KEY=your_deploy_keyexport TAJO_API_KEY=your_tajo_api_keyexport BREVO_API_KEY=your_brevo_api_keyOAuth 2.0
Zapier는 Zap 내에서 타사 서비스를 연결하기 위한 OAuth 2.0을 지원합니다.
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: exponentialAPI 엔드포인트
| 엔드포인트 | 메서드 | 설명 |
|---|---|---|
https://hooks.zapier.com/hooks/catch/{id} | POST | 웹훅 캐치 후크 |
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']});Platform CLI로 맞춤 Zapier 통합 구축
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.example.com/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.example.com/v1/contacts/sync', body: bundle.inputData }); return response.data; } } } }};
module.exports = App;Caution
위의 example.com 주소는 Tajo 엔드포인트가 제공될 때까지 사용하는 자리표시자입니다.
들어오는 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 단계는 하나의 태스크로 계산됩니다. 멀티스텝 Zap은 실행당 여러 태스크를 소비합니다. 초과 사용을 피하려면 Zapier 대시보드에서 태스크 사용량을 모니터링하십시오.
문제 해결
| 문제 | 원인 | 해결 방법 |
|---|---|---|
| 웹훅이 실행되지 않음 | Zap이 꺼짐 | Zapier 대시보드에서 Zap 상태 확인 |
| 데이터가 매핑되지 않음 | 필드 이름 불일치 | 앱 간 필드 키가 일치하는지 확인 |
| 중복 연락처 | 중복 제거가 구성되지 않음 | Tajo에서 이메일 기반 중복 제거 활성화 |
| Zap 오류 | API 속도 제한 도달 | 지연 단계 추가 또는 Zapier 요금제 업그레이드 |
| 인증 만료 | 토큰이 새로 고침되지 않음 | Zapier에서 연결 재인증 |
디버그 모드
connectors: zapier: debug: true log_level: verbose log_webhooks: true모범 사례
- 폴링보다 웹훅 사용 - 웹훅은 폴링 지연에 비해 실시간 데이터 플로 제공
- 오류 처리 추가 - 성공/실패 시나리오를 처리하려면 Zapier Paths 사용
- 데이터 중복 제거 - 중복 레코드를 방지하려면 중복 제거 키 활성화
- 태스크 사용량 모니터링 - 태스크 한도에 도달하기 전에 알림 설정
- 필터를 현명하게 사용 - 불필요한 태스크 소비를 줄이기 위해 Zap에서 일찍 필터링
- CLI 통합 버전 관리 - Platform CLI 앱에 시맨틱 버전 관리 사용
보안
- HTTPS 전용 - 모든 웹훅 URL은 HTTPS 사용 필요
- API 키 교체 - Zapier 대시보드를 통해 주기적으로 키 교체
- OAuth 2.0 - 타사 서비스 인증에 OAuth 사용
- 웹훅 검증 - 들어오는 웹훅 서명 검증
- 범위 지정 권한 - Zap별 최소 필요 접근 권한 부여