# 확장 서비스

카카오워크에서는 업무에 필요한 협업 서비스 및 사내 시스템을 카카오워크 봇(Bot)으로 연결하여, 중요한 알림을 빠르게 확인할 수 있습니다. 카카오워크의 모든 워크스페이스에서 기본으로 제공하는 기본 봇(Bot) 외에도 전사 공지, 장애 전파 등 사내 시스템과 연동한 우리 조직만의 봇(Bot)을 관리자가 직접 생성하여 멤버들에게 알림 메시지를 보낼 수도 있습니다.

**확장** 탭 > **확장 서비스** 메뉴에서 연동 가능한 서비스 목록을 확인할 수 있습니다. 각 서비스의 연동 및 봇(Bot) 설정 방법은 해당 서비스를 클릭하면 나타나는 상세 설명을 참고하시기 바랍니다.

{% hint style="info" %}
**안내**

관리자가 워크스페이스에서 사용할 봇(Bot)을 관리 및 설정하는 방법은 [Broken link](https://kakaowork.gitbook.io/kakao-work/basic/user/broken-reference "mention") > [bot](https://kakaowork.gitbook.io/kakao-work/basic/admin/work-service/bot "mention") 문서를 참고하시기 바랍니다.
{% endhint %}

확장 서비스의 연동 유형은 **계정 연동형**과 **Webhook형**으로 구분할 수 있습니다. 본 가이드에서는 각 유형별 대표적인 연동 사례를 안내합니다.

<figure><img src="https://2565186304-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqC7tZkfc1WOjuywmrlty%2Fuploads%2FKDHJL2MYMIjI7o48VOpV%2F718.png?alt=media&#x26;token=18bc4c2a-fadc-45d6-8c1c-61293bd3b873" alt=""><figcaption><p>확장 탭 > 확장 서비스</p></figcaption></figure>

## 계정 연동형 <a href="#account" id="account"></a>

계정 연동형이란 별도의 계정 체계가 있는 외부 서비스에서 사용자 가입한 계정을 기반으로 카카오워크 봇(Bot)을 이용하는 방식입니다. 서비스 연동을 위해 해당 서비스가 카카오워크 워크스페이스의 정보를 조회하고 봇(Bot)의 기능을 수행할 수 있도록 접근 권한 허용이 필요합니다.

### Google Calendar <a href="#google-calendar" id="google-calendar"></a>

사용자의 구글 캘린더 계정과 연동하면, 해당 봇(Bot)이 오늘/내일의 일정 알림, 새로운 일정 초대 알림, 10분 전 일정 알림 등을 1:1 채팅방으로 알려줍니다.

{% tabs %}
{% tab title="PC/Mobile" %}

1. **확장** 탭 > **확장 서비스** 메뉴에서 **Google Calendar**를 클릭한 후, \[사용] 버튼을 클릭합니다.
2. \[허용] 버튼을 클릭하여 구글 캘린더 권한 요청을 허용합니다.
3. 연동할 구글 계정을 입력하고 \[다음] 버튼을 클릭하여 로그인을 완료합니다.
4. \[허용] 버튼을 클릭하여 구글 계정 액세스 권한을 허용합니다.
5. Google Calendar 연동 완료 시 1:1 Bot 채팅방이 생성됩니다.
   * 최초로 수신하는 봇(Bot) 메시지에서 \[설정하기]를 클릭하면, 봇(Bot) 알림 상세 설정 및 계정 연결 해제를 진행할 수 있습니다.
     {% endtab %}
     {% endtabs %}

## Webhook형 <a href="#webhook" id="webhook"></a>

Webhook형이란 사용자의 계정 정보가 필요한 계정 연동 방식과는 달리, 사용자가 이용 중인 서비스에서 특정 이벤트가 발생하였을 때 카카오워크의 지정된 채팅방으로 알림을 보내는 방식입니다.

{% hint style="info" %}
**안내**\
Webhook은 클라이언트에서 제공하는 URL을 서버 측에 등록하면, 서버에서 특정 이벤트가 발생했을 때 클라이언트를 호출하는 기능입니다. Webhook 활용 시, 다른 애플리케이션과 연동하여 기능을 확장할 수 있습니다.

* Webhook형 봇(Bot)의 경우, 여러 개의 봇(Bot)을 각기 다른 이름으로 각기 다른 채팅방에 추가할 수 있으며 1인당 생성 개수 제한이 없습니다.
  {% endhint %}

### Jira Enterprise <a href="#jira" id="jira"></a>

Jira Enterprise에서 특정 이벤트가 발생했을 때 봇(Bot)이 1:1 채팅방 또는 연동된 채팅방으로 알려줍니다.

{% hint style="info" %}
**안내**

* 관리자 권한이 있는 프로젝트에 한해서만 Webhook URL 연동을 진행할 수 있습니다.
* Jira의 구축형 서비스를 이용하는 경우, **Project Automation**이라는 유료 플러그인을 사용하는 경우에만 설정이 가능합니다.
  {% endhint %}

#### Step 1. 카카오워크에서 봇(Bot) 생성하기 <a href="#step-1" id="step-1"></a>

Jira Enterprise 봇(Bot)을 연동하기 위해, 먼저 **확장 서비스** 메뉴에서 Jira Enterprise 봇(Bot)을 생성합니다.

{% tabs %}
{% tab title="PC/Mobile" %}

1. **확장** 탭 > **확장 서비스** 메뉴에서 **Jira Enterprise**를 클릭 후, \[봇(Bot) 만들기]를 클릭합니다.
2. 봇(Bot)의 프로필 사진과 이름, 메시지를 받을 채팅방을 선택 후, \[봇(Bot) 만들기] 버튼을 클릭합니다.
3. 봇(Bot)이 정상적으로 추가되면 Webhook URL이 발급됩니다.
   * 생성된 Webhook URL은 **확장 서비스** 메뉴 > **Jira Enterprise** > **나의 봇(Bot) 관리** > \[관리] 버튼을 클릭해 재설정 할 수 있습니다.
4. \[채팅방 이동하기] 버튼을 클릭하면 Jira Enterprise 봇(Bot)과의 1:1 대화방으로 이동합니다.
   {% endtab %}
   {% endtabs %}

#### Step 2. 서비스 웹사이트에서 Webhook URL 등록하기 <a href="#step-2" id="step-2"></a>

발급받은 Webhook URL을 Jira 웹사이트에 등록하여, 특정 이벤트가 발생할 때마다 채팅방으로 메시지를 전송할 수 있습니다. 모바일 환경에서는 Webhook URL 등록이 어려우니, PC를 통해 웹사이트로 접속하여 진행하시기 바랍니다.

{% tabs %}
{% tab title="Cloud형" %}

1. Jira Software 웹사이트에서 **설정 > Jira 설정 > 시스템** 메뉴로 이동합니다.

   ![Jira Software 설정 > 시스템](https://t1.kakaocdn.net/service_kep_docpublish/git/kakaowork/user/Jira%20Software%20%EC%84%A4%EC%A0%95%20_%20%EC%8B%9C%EC%8A%A4%ED%85%9C.png)
2. **웹후크** 메뉴에서 \[웹훅 만들기] 버튼을 클릭합니다.
3. **URL**에 Jira Enterprise Bot에서 발급한 Webhook URL을 입력합니다.

   ![Webhook URL 입력](https://t1.kakaocdn.net/service_kep_docpublish/git/kakaowork/user/Webhook%20URL%20%EC%9E%85%EB%A0%A5.png)
4. 알림을 수신할 이벤트 유형을 선택 후, \[만들기] 버튼을 클릭합니다.

   ![Webhook 만들기](https://t1.kakaocdn.net/service_kep_docpublish/git/kakaowork/user/Webhook%20%EB%A7%8C%EB%93%A4%EA%B8%B0.png)
5. 연동이 완료되면 다음과 같은 메시지를 수신할 수 있습니다.

   ![Jira Bot 메시지 예시](https://t1.kakaocdn.net/service_kep_docpublish/git/kakaowork/user/Jira%20Bot%20%EB%A9%94%EC%8B%9C%EC%A7%80%20%EC%98%88%EC%8B%9C.png)
   {% endtab %}

{% tab title="구축형" %}

1. 프로젝트 보드의 **Project settings** **Project automation**으로 이동한 뒤, \[Create rule] 버튼을 클릭합니다.

   <figure><img src="https://t1.kakaocdn.net/service_kep_docpublish/git/kakaowork/user/Jira%20create%20rule.png" alt=""><figcaption><p>Jira Create rule</p></figcaption></figure>
2. 지원하는 Trigger 중 하나를 선택한 후, \[Save] 버튼을 클릭합니다.
   * 지원하는 Trigger는 Issue created, Issue updated, Issue deleted, Issue commented입니다.
3. **Action**에서 \[Send web request] 버튼을 클릭합니다.

   ![Jira Send web request](https://t1.kakaocdn.net/service_kep_docpublish/git/kakaowork/user/Jira%20Send%20web%20request.png)
4. Webhook URL에 발급받은 Webhook URL을 입력한 후, Headers 영역에 값을 입력합니다. 왼쪽 칸은 x-jira-event이고, 오른쪽 칸은 선택한 Trigger 이름입니다.

   * 예시: 왼쪽 칸은 `x-jira-event`, 오른쪽 칸은 `issue created` 입력

   ![Jira Webhook URL, Headers 입력](https://t1.kakaocdn.net/service_kep_docpublish/git/kakaowork/user/Jira%20webhook%20url%20headers%20%EC%9E%85%EB%A0%A5.png)
5. Webhook body는 `Issue data`를 선택한 뒤, \[Save] 버튼을 클릭하여 저장합니다.

   ![Jira Webhook body](https://t1.kakaocdn.net/service_kep_docpublish/git/kakaowork/user/Jira%20webhook%20body.png)
6. **Project automation > automation** 리스트에서 **Enabled**가 활성화 상태이면 연동이 완료됩니다.

   ![Jira 연동 완료](https://t1.kakaocdn.net/service_kep_docpublish/git/kakaowork/user/Jira%20%EC%97%B0%EB%8F%99%20%EC%99%84%EB%A3%8C.png)
7. 연동이 완료되면 다음과 같은 메시지를 수신할 수 있습니다.

   ![Jira Bot 메시지 예시](https://t1.kakaocdn.net/service_kep_docpublish/git/kakaowork/user/Jira%20Bot%20%EB%A9%94%EC%8B%9C%EC%A7%80%20%EC%98%88%EC%8B%9C.png)
   {% endtab %}
   {% endtabs %}
