Zapier 커넥터

Tajo를 통해 Zapier를 Brevo에 연결하여 수천 개의 타사 애플리케이션을 마케팅 자동화 워크플로와 연결하고, 전체 기술 스택에서 코드 없는 데이터 플로 및 이벤트 기반 트리거를 가능하게 하십시오.

개요

속성
플랫폼Zapier
카테고리자동화 (Custom)
설정 복잡도쉬움
공식 통합아니오
동기화 데이터이벤트, 연락처, 워크플로, 트리거
인증 방법API Key / OAuth 2.0

기능

  • 다중 앱 오케스트레이션 - Zap 워크플로를 통해 6,000개 이상의 앱을 Brevo에 연결
  • 웹훅 트리거 - Zapier에 연결된 모든 앱에서 실시간 이벤트 수신
  • 연락처 동기화 - Zapier에 연결된 플랫폼과 Brevo 간에 연락처 푸시 및 풀
  • 이벤트 전달 - Tajo를 통해 애플리케이션 이벤트를 Brevo 자동화로 라우팅
  • 멀티스텝 Zap - 필터, 포매터, 지연으로 복잡한 워크플로 구축
  • 맞춤 Zapier 앱 - Zapier Platform CLI를 사용하여 맞춤 통합 구축

사전 요구 사항

시작하기 전에 다음이 준비되어 있는지 확인하십시오.

  1. Zapier 계정 (Free 티어 이상)
  2. API 접근이 가능한 Brevo 계정
  3. 커넥터 권한이 있는 Tajo 계정
  4. Node.js 18+ 설치 (CLI 기반 통합 개발용)

인증

API 키 인증

Terminal window
# Zapier 플랫폼 자격 증명 설정
export ZAPIER_DEPLOY_KEY=your_deploy_key
export TAJO_API_KEY=your_tajo_api_key
export BREVO_API_KEY=your_brevo_api_key

OAuth 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: exponential

API 엔드포인트

엔드포인트메서드설명
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/appsGET등록된 앱 목록
https://zapier.com/api/platform/cli/pushPOST통합 배포

코드 예제

커넥터 초기화

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.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' });
});

속도 제한

요금제요청월간 태스크폴링 간격
Free100/일10015분
Starter1,000/일75015분
Professional5,000/일2,0002분
Team10,000/일50,0001분

Zapier 태스크 한도

각 Zap 단계는 하나의 태스크로 계산됩니다. 멀티스텝 Zap은 실행당 여러 태스크를 소비합니다. 초과 사용을 피하려면 Zapier 대시보드에서 태스크 사용량을 모니터링하십시오.

문제 해결

문제원인해결 방법
웹훅이 실행되지 않음Zap이 꺼짐Zapier 대시보드에서 Zap 상태 확인
데이터가 매핑되지 않음필드 이름 불일치앱 간 필드 키가 일치하는지 확인
중복 연락처중복 제거가 구성되지 않음Tajo에서 이메일 기반 중복 제거 활성화
Zap 오류API 속도 제한 도달지연 단계 추가 또는 Zapier 요금제 업그레이드
인증 만료토큰이 새로 고침되지 않음Zapier에서 연결 재인증

디버그 모드

connectors:
zapier:
debug: true
log_level: verbose
log_webhooks: true

모범 사례

  1. 폴링보다 웹훅 사용 - 웹훅은 폴링 지연에 비해 실시간 데이터 플로 제공
  2. 오류 처리 추가 - 성공/실패 시나리오를 처리하려면 Zapier Paths 사용
  3. 데이터 중복 제거 - 중복 레코드를 방지하려면 중복 제거 키 활성화
  4. 태스크 사용량 모니터링 - 태스크 한도에 도달하기 전에 알림 설정
  5. 필터를 현명하게 사용 - 불필요한 태스크 소비를 줄이기 위해 Zap에서 일찍 필터링
  6. CLI 통합 버전 관리 - Platform CLI 앱에 시맨틱 버전 관리 사용

보안

  • HTTPS 전용 - 모든 웹훅 URL은 HTTPS 사용 필요
  • API 키 교체 - Zapier 대시보드를 통해 주기적으로 키 교체
  • OAuth 2.0 - 타사 서비스 인증에 OAuth 사용
  • 웹훅 검증 - 들어오는 웹훅 서명 검증
  • 범위 지정 권한 - Zap별 최소 필요 접근 권한 부여

관련 리소스

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI 어시스턴트

안녕하세요! 문서에 대해 무엇이든 물어보세요.