---
title: "Zapier"
description: "웹훅과 REST API로 Quire를 Zapier에 연결하기."
image: "https://docs.quirelms.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.quirelms.com/ko/llms.txt
> Use this file to discover all available pages before exploring further.

# Zapier

<span id="zapier"></span>

Zapier는 모든 연동이 사용하는 동일한 REST API, OAuth 클라이언트, 웹훅을 통해
Quire에 연결합니다. 양쪽 모두 Quire 전용 코드가 없으므로
[API 레퍼런스](https://docs.quirelms.com/api/)가 제공하는 모든 것을 Zap으로 수행할 수 있습니다.

## Quire에서 무언가 일어나면 Zap 시작 <!--quire:start-a-zap-when-something-happens-in-quire-->

1. Zapier에서 트리거로 **Webhooks by Zapier**를 이벤트 **Catch Raw Hook**과
   함께 선택하세요. Raw인 이유는 서명이 Quire가 보낸 정확한 바이트에 대해
   계산되기 때문입니다. Zapier가 주는 주소를 복사하세요.
2. Quire에서 `/admin/webhooks`를 열고 **구독 추가**를 선택해 주소를 붙여넣고
   이벤트를 고르세요. 예: `course_completion.changed`. Quire는 먼저 테스트
   이벤트를 보내고, Zapier가 받은 뒤에 구독이 시작됩니다.
3. 구독 비밀로 서명을 검증하는 **Code by Zapier** 단계를
   [개발자 가이드](/ko/developer/#webhooks)에 나온 대로 추가하세요. 검증에
   실패하면 Zap을 멈추세요.
4. 본문을 파싱하고 필요한 단계를 이어가세요.

## Zap에서 Quire에서 행동하기 <!--quire:act-in-quire-from-a-zap-->

**Webhooks by Zapier**의 **Custom Request** 동작을 쓰거나, 앱 단계의
**API Request**를 사용하세요.

- **URL**: `https://acme.quirelms.com/api/v1/...`. 예를 들어 누군가를 등록하려면
  `/api/v1/enrolments`.
- **Headers**: `Authorization: Bearer qk_live_...`는 이 Zap 전용으로
  `/admin/integrations/api-keys`에서 만든 키를 사용하고,
  `Idempotency-Key`는 트리거 ID로 만들어 Zapier가 재전송한 Zap이라도 같은
  사람을 두 번 등록하지 않습니다.
- **Data**: API 레퍼런스에 설명된 대로 JSON.

조직이 아니라 사람으로 행동하려면 Zapier의 주소로
`/admin/integrations/oauth-clients`에 OAuth 클라이언트를 등록하고, 비공개
Zapier 연동에서 사용하세요.

## 예시: 성사된 거래의 고객 등록 <!--quire:example-enrol-a-customer-when-a-deal-closes-->

1. 트리거: CRM의 "거래 성사".
2. 사용자의 이름과 이메일을 담아 커스텀 요청 `PUT /api/v1/users/ext:{customer id}`:
   사용자를 만들거나, 이미 있으면 갱신합니다.
3. 사용자와 코스를 담아 커스텀 요청 `POST /api/v1/enrolments`에
   `Idempotency-Key: deal-{deal id}`를 붙입니다.

Source: https://docs.quirelms.com/ko/integrations/zapier/index.mdx
