---
title: "Zapier 커넥터"
description: "Tajo를 통해 Zap, 웹훅, Zapier Platform CLI를 사용하여 수천 개의 앱을 Brevo에 연결하는 완전한 Zapier 통합 가이드입니다."
url: https://tajo.io/kr/docs/connectors/custom/zapier/
markdown: https://tajo.io/kr/docs/connectors/custom/zapier.md
lang: ko-KR
robots: noindex
---

Tajo 사전 이용 신청

이름과 회사 이메일 주소를 입력하세요. Tajo 이용 신청을 확인할 수 있는 링크를 이메일로 보내드립니다.

# Zapier 커넥터

커넥터 상태: 예정 아직 구축되지 않았습니다. Tajo는 현재 이 커넥터를 실행하지 않습니다.

| 원본 필드 | 대상 필드 | 예시 값 |
| --- | --- | --- |
| `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를 사용하여 맞춤 통합 구축

## 사전 요구 사항

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

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

## 인증

### API 키 인증

```bash
# 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을 지원합니다.

```javascript
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'
      }
    }
  }
};
```

## 구성

### 기본 설정

```yaml
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 웹훅으로 이벤트를 보내도록 구성합니다.

```yaml
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/apps` | GET | 등록된 앱 목록 |
| `https://zapier.com/api/platform/cli/push` | POST | 통합 배포 |

## 코드 예제

### 커넥터 초기화

```javascript
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 통합 구축

```javascript
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 웹훅 처리

```javascript
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에서 연결 재인증 |

### 디버그 모드

```yaml
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별 최소 필요 접근 권한 부여

## 관련 리소스

- [Segment 커넥터](https://tajo.io/kr/docs/connectors/custom/segment)
- [Brevo 커넥터](https://tajo.io/kr/docs/connectors/marketing/brevo)
- [고객 동기화 스킬](https://tajo.io/kr/docs/skills/data-sync/customer-sync)
- [Zapier Platform CLI 문서](https://platform.zapier.com/reference/cli-docs)
