> For the complete documentation index, see [llms.txt](https://batiai.gitbook.io/service/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://batiai.gitbook.io/service/webhook.md).

# 바티 웹훅 연동 가이드

## 웹훅이란?

웹훅(Webhook)은 웹훅은 이벤트가 발생할 때 자동으로 메시지를 보내주는 알림 시스템입니다. 특정 이벤트가 발생할 때 자동으로 정해진 URL로 데이터를 보내줄 있어요. 예를 들어, 여러분이 새로운 주문이 들어올 때마다 문자 메시지를 받고 싶다고 할 때 웹훅을 이용하면 됩니다.

## Bati Webhook 설정 가이드

### 0. 트리거(웹훅) 설정 열기

바티 작업 화면 우측 하단에 트리거 버튼을 누르면 웹훅을 설정할 수 있는 창을 열 수 있습니다. 설정창을 통해 웹훅 On/Off와 상세 설정들을 수정 및 저장할 수 있습니다.&#x20;

<figure><img src="/files/xNoJKbYccOENDHyk2WgK" alt=""><figcaption></figcaption></figure>

### 1. post/get 방식 선택하기

웹훅 설정 시, 데이터를 보내는 방식으로 POST와 GET 방식을 선택할 수 있어요. 이 두 가지 방식의 공통점과 차이점을 살펴보고, 각각의 특징을 알아볼게요. 두 방식 모두 특정 이벤트가 발생했을 때 자동으로 데이터를 전송해줄 수 있습니다.&#x20;

**POST는 데이터를 안전하게 보내기 좋고, 타 서비스에서 웹훅 기능을 제공할 때 연동하기 좋아요.**&#x20;

**GET 방식은 데이터를 직접 전송하기 보다는 이벤트 발생 시 워크플로가 자동으로 실행되기를 원하시는 경우 쉽게 세팅하실 수 있어요.**&#x20;

<figure><img src="/files/BaOZ8RaKvBrlTQ5nq30E" alt=""><figcaption></figcaption></figure>

#### 1) post방식

* post 방식은 대부분 바티가 아닌 다른 서비스에서 이벤트가 발생했을 때 외부 서비스에서 발생한 데이터를 전송하고자 할 때 사용해요.
* 이벤트가 발생하는 사이트(서비스)에서 웹훅 기능을 제공한다면 어렵지 않게 바티 웹훅URL을 연결해서 데이터 전송을 자동화할 수 있어요.&#x20;
* post방식은 get방식에 비해서 보안적으로 더 안전하고 많은 데이터 전송이 가능해요.&#x20;

**2) get방식**&#x20;

* get방식은 post방식과 다르게 외부 서비스에서 웹훅 연동 기능을 제공하고 있지 않아도 활용이 가능해요.&#x20;
* 웹훅 URL을 인터넷 주소창에 입력하고 엔터를 치는 것만으로 웹훅URL을 호출할 수 있어요.&#x20;
* URL을 통해서 데이터를 전송할 수도 있고, 단순히 URL을 입력해서 워크플로를 실행만 할수도 있어요.&#x20;

  URL을 통해서 데이터를 보내고자 하는 경우에는 개발자의 도움이 필요할 수도 있습니다.&#x20;

&#x20;

### 2. 웹훅 URL 연결 및 옵션 설정하기

#### 1)  웹훅 옵션 설정하기

#### post방식

<figure><img src="/files/6OuMS51w2qhuxtgSpi7H" alt=""><figcaption></figcaption></figure>

* 보안옵션: 헤더 값에 특정한 값이 함께 전송이 되는 경우에만 전송되는 데이터를 저장하고 워크플로를 실행합니다. 만약 헤더에 지정한 값이 없는 경우에는 워크플로가 작동하지 않아요.&#x20;

**get방식**

<figure><img src="/files/pguJdL5n3v3e1R3a8ycH" alt=""><figcaption></figcaption></figure>

* 보안옵션: 헤더 값에 특정한 값이 함께 전송이 되는 경우에만 전송되는 데이터를 저장하고 워크플로를 실행합니다. 만약 헤더에 지정한 값이 없는 경우에는 워크플로가 작동하지 않아요.&#x20;
  * get 방식의 헤더 설정에는 개발자의 도움이 필요할 수 있어요.&#x20;
* 데이터포함
  * URL 쿼리스트링으로 데이터를 함께 포함하여 보낼 수 있습니다. 예로 웹훅 URL이 <mark style="color:red;">`https://app.bati.ai/webhook/testurl/`</mark> 형태라면 <mark style="color:red;">`?name=이름&age=30`</mark> 과 같이  뒤에 URL에 데이터를 포함해서 name과 age에 대한 데이터값을 함께 전송할 수 있어요. 이렇게 전송된 값들은 저장되어 워크플로 자동화에 사용될 수 있어요.&#x20;
* 완료 후 페이지&#x20;
  * get방식으로 호출을 하는 경우 별도의 완료 페이지가 뜨는데 이 때 이동할 페이지를 설정할 수 있어요.  웹훅 호출 이후에 원하는 페이지로 이동할 수 있도록 설정을 세팅할 수 있어요.&#x20;

2\) 웹훅 연결하기

* 화면에 나오는 URL을 복사해서 적용을 원하는 사이트에 붙여넣기를 해주세요.&#x20;
* post 방식의 경우에는 웹훅을 설정하려는 서비스(예: 주문 관리 시스템)에서 웹훅 설정 메뉴를 찾아주세요. 보통 '설정(Settings)' 메뉴나 '알림(Notification)' 메뉴 안에 있을 거예요.&#x20;
* get 방식의 경우 해당 URL을 복사해서 주소창에 입력 후 엔터를 치면 호출이 가능합니다.&#x20;

### 3. 테스트 호출해보기

* 테스트 호출은 연결한 URL이 정상 작동을 하는지 미리 사전에 호출을 하는 단계입니다.&#x20;

#### post

<figure><img src="/files/KpyL11cSSOfpyTg4AtE2" alt=""><figcaption></figcaption></figure>

* ⭐post방식으로 연동을 한 경우에는 연동한 서비스에서 **임의로 이벤트를 한번 발생해주셔야 해요**. 예로 만약 tally와 같은 서비스에 웹훅을 연동을 했다면 연결한 설문에 테스트로 설문을 제출해주세요.&#x20;
* 그 후 바티 사이트로 돌아와서 연결 여부를 확인해주세요.&#x20;
* <mark style="color:green;">**`연결 성공`**</mark>으로 표시가 되었다면 다음 단계에서 데이터 매핑할 수 있어요.&#x20;
  * 보안옵션,  데이터포함 옵션을 설정했다면 해당 옵션에 해당하는 사항들이 설정 시 모두 반영이 되어 있어야 연결 성공으로 표시되니 이를 확인해주세요.

#### get

* get방식은 URL을 복사하고, 주소창에 입력 후 엔터를 치는 것만으로 연결 여부를 확인할 수 있어요.
* <mark style="color:green;">**`연결 성공`**</mark>으로 표시가 되었다면 설정을 마무리하거나 다음 단계에서 데이터를 매핑할 수 있어요.&#x20;
  * 보안옵션,  데이터포함 옵션을 설정했다면 해당 옵션에 해당하는 사항들이 설정 시 모두 반영이 되어 있어야 연결 성공으로 표시되니 이를 확인해주세요.

### 4. 데이터 매핑하기

웹훅으로 데이터를 전송을 받았다면 전송 받은 값들 중 어떤 데이터를 데이터시트 어느 컬럼에 저장할 것인지를 설정하는 단계에요.&#x20;

#### 1) 시트 선택과 데이터 매핑하기

* 데이터시트에 있는 시트목록 중 어느 시트에 데이터를 저장할 것인지 선택할 수 있어요.&#x20;
* 기존 데이터시트를 선택하는 경우에는 데이터시트 컬럼과 실제 전송되는 어느 값을 연결할지 입력할 수 있어요.&#x20;
* 새로 만들기를 한 경우에는 만들어지는 시트이름, 컬럼이름, 값 등을 새롭게 지정할 수 있어요.&#x20;

{% hint style="warning" %}
**⚠️주의 사항**

* 데이터를 서로 매핑한 컬럼명이 변경이 되는 경우에는 데이터 매핑 과정을 다시 해줘야 해요. 그렇지 않은 경우에는 해당 컬럼이 없는 것으로 인식되어 데이터 저장이 제대로 이루어지지 않습니다.
  {% endhint %}

<figure><img src="/files/ps3oV1ScGQJiOhTPYQ49" alt=""><figcaption></figcaption></figure>
