【Zapier×ワークフロービルダー】SlackワークフロービルダーのフォームからClickUpのtaskを作成する

## はじめに

---

非エンジニアの新卒が、SlackのワークフロービルダーとZapierを使って、
Slackでフォームを提出→自動でClickUpでタスク作成→Slackにスレッドを立ち上げ
をしてくれるワークフローを組みました！

ワークフローの設定手順を記載しました。
今回の設定上必要な部分のみ記載しています。

## このワークフローでできること

---

Slackでフォームを提出するとClickUpでタスクが作成され、SlackにClickUpのリンクがついたスレッドが立ち上がります。

![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981564/656dcb6c-baa6-9996-fc91-1da865a48625.png)


## 必要なもの

---

- Zapier
    - アカウント（Multi-step Zaps を作成できるStarterプラン以上）
- Slack
    - アカウント
    - フォーム
- Notion
    - ClickUpのIDとSlackの氏名（表示名ではない）が対応したDB
- Googleスプレッドシート
    - 必要情報が転記される列を用意します。
    
![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981564/f960197c-6dd7-b3cc-740a-4e11c6811c49.png)
    

## ワークフローの構成

---

- Slackのフォームが提出されたら、その情報をスプレッドシートに転記するワークフロー
- スプレッドシートに行が追加されたら、その情報をもとにClickUpにタスクを作成し、タスクが作成されたら、Slackにスレッドを作成するワークフロー

## ワークフローの作り方

---

### １Slackのフォームが提出されたら、その情報をスプレッドシートに転記するワークフロー

---

Slackのワークフロービルダーを使います。

【ワークフロービルダーの構成】

![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981564/5f924fd7-6cc4-76bc-6b08-7ed5f161bf60.png)

**【各ステップの設定】**

**１ショートカットを作成**

![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981564/16d6ac39-aab9-872e-7f9f-2a9b0143b99c.png)

- どのチャンネルですか？
    - ショートカットを作成したいチャンネルを指定する
- 短い名前を追加
    - ショートカットの名前

********************************************************************************************************************２ショートカットをクリックしたユーザーにメッセージを送信する********************************************************************************************************************

![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981564/b5cfdd06-2922-eacd-5469-140baf69ea6f.png)


- メッセージの送信先は下記から選ぶことができる
    - ショートカットをクリックしたユーザー
    - ワークフローを開始したチャンネル
    - 特定のユーザー
- メッセージのテキスト
    - 送りたい文章を入力する

********************************************************************************************************************３ショートカットをクリックしたユーザーにフォームを送信する********************************************************************************************************************

![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981564/5d4b9057-a9e8-f450-5907-2b71396fd012.png)


- メッセージの送信先は下記から選ぶことができる
    - ショートカットをクリックしたユーザー
    - ワークフローを開始したチャンネル
    - 特定のユーザー
    - スレッドにメッセージを投稿することも可能

- メッセージ
    - 送りたい文章を入力する
    - ボタンは最大24文字までの任意のテキストが入力可能
- タイトル
    - フォームのタイトル
- 質問
    - 質問の回答は下記から選択可能
        - 短い回答
        - 長い回答
        - 一覧から選択
        - メンバーを選択
        - チャンネルまたはDMを選択
    - 回答を必須にすることもできる

********************************************************************************************************************４フォームを提出したメンバーにメッセージを送信する********************************************************************************************************************

![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981564/3d39b7f0-f3bb-d9cd-a160-b1add782041e.png)


- メッセージの送信先は下記から選ぶことができる
    - ショートカットをクリックしたユーザー
    - ワークフローを開始したチャンネル
    - フォームを提出したメンバー
    - 特定のユーザー
    - スレッドにメッセージを投稿することも可能
- メッセージのテキスト
    - 送りたい文章を入力する
    - 

************************************************５スプレッドシートに行が追加される************************************************

![8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981564/52f29e9e-9ada-9799-fc44-d8b2d5ae1856.png)


- Connected account
    - フォームから入力したデータを転記したいスプレッドシートの権限を持つアカウント
- Select a spreadsheet
    - フォームから入力したデータを転記したいスプレッドシートを選択
- Sheet
    - フォームから入力したデータを転記したいスプレッドシートのシート名を選択
- Column name
    - スプレッドシートを選択すると、最初に作成した列の名前が選択できるようになる
- Value
    - Column nameの値として入れたいものを入力する
    - 「変数を挿入する」から下記のものが挿入できる
        - ショートカットをクリックしたユーザー
        - ワークフローを開始したチャンネル
        - ワークフローが開始した時刻
        - フォームで設定した質問

**２スプレッドシートに行が追加されたら、その情報をもとにClickUpにタスクを作成し、タスクが作成されたら、Slackにスレッドを作成するワークフロー**

---

**【全体の構成】**

![17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981564/33feedf6-9662-5ec4-41b1-f498acedf4a2.png)

****【各ステップの設定】****

****1. New Spreadsheet Row (Team Drive) in Google Sheets****

![9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981564/ad37cab0-65b5-d013-6449-b8bf13d9ee30.png)

- App : Google Sheets
- Event : New Spreadsheet Row (Team Drive)
- Account : 対象のスプレッドシートを見られるアカウントであればOK
- Trigger
    - Drive : スプレッドシートが所属する共有/マイドライブを指定（任意）
    - Spreadsheet : スプレッドシートのIDを指定（プルダウンで指定選択可能）
    - Worksheet : スプレッドシートの対象シート名を指定
- Test : テストを行うと、スプレッドシートに入力した直近の値が入ってくるので、想定通りの値かどうかを確認する

****2. Find Database Item in Notion****

- App : Notion
- Event : Find Database Item
- Account : 対象のNotionページにアクセスできるアカウントであればOK
- Trigger
    - Database : 用意したClickUpのIDとSlackのIDが対応したDBを選択
    - NotionのDB内のカラム: Slackの氏名のカラムにスプレッドシートから「フォームを提出した人」の値が入るようにする
    
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981564/ff00870a-bfdd-01d2-96f8-9634cf705a0d.png)
    
- Worksheet : スプレッドシートの対象シート名を指定
- Test : テストを行うと、NotionのDBに登録されている値が入ってくるので、想定通りの値かどうか確認する

****3. Create Task in ClickUp****

![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981564/67e05d0f-8d1d-77a5-3200-3246eae9bf9c.png)

![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981564/95fdddb6-379d-bcf8-b626-eeee7b30f508.png)

- App : ClickUp
- Event : Create Task
- Account : Clickupのタスクを作成したいフォルダにアクセス可能なアカウントであればOK
- Trigger
    - Workspace : タスクを作成したいフォルダが所属するワークスペース
    - Space : タスクを作成したいフォルダが所属するスペース
    - Folder : タスクを作成したいリストが所属するフォルダー
    - List : タスクを作成したいリスト
    - Task Name : タスクの名前
        - スプレッドシートの情報を入れることができる
    - Task Description : タスクの説明
        - スプレッドシートの情報を入れることができる
    - Markdown Content **[](https://zapier.com/help/create/basics/understand-different-field-types-in-zaps#step-3) :** Descriptionがマークダウン記法でも良ければTrue
    - Task Status : タスクのステータスを選択 ****
    - 依頼者 : NotionのDBからClickUpのUserIDを指定
- Test : テストを行うと、ClickUpの指定したリストにタスクが作成される

****4. Send Channel Message in Slack****

![13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981564/b55d8070-c589-86ab-e37c-51c639350959.png)
![14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981564/7eb59d04-3533-ccdd-79a4-0f555b9ef2e9.png)

- App : Slack
- Event : Send Channel Message
- Account : メッセージを送信したいチャンネルに入れる権限のアカウントであればOK
- Action
    - Channel : メッセージを送信したいチャンネルを指定
    - Message Text : 送信したいメッセージを指定
    - Send as a bot? : Botからのメッセージに見せたければYes、Account で指定したユーザーからのメッセージに見せたければNoを選択
    - Bot Name / Bot Icon : Botからのメッセージに見せる場合、Botの名前 / アイコンを自由に設定可能
    
    ※Include a link to this Zap? ～ Broadcast To Channel? の設定はスクショ内容を推奨しますが、自由にカスタマイズいただいて問題ありません
    
- Test : テストすると設定どおりにメッセージが送信されるので、想定通りとなっているか確認する

****5. Send Channel Message in Slack****

![15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981564/dcb07853-ec9d-511e-5794-6a63ce3fdec0.png)
![16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2981564/29f3fea7-4cd2-decc-10c6-a8be4e4342fe.png)

- App : Slack
- Event : Send Channel Message
- Account : メッセージを送信したいチャンネルに入れる権限のアカウントであればOK
- Action
    - Channel : メッセージを送信したいチャンネルを指定
    - Message Text : 送信したいメッセージを指定
    - Send as a bot? : Botからのメッセージに見せたければYes、Account で指定したユーザーからのメッセージに見せたければNoを選択
    - Bot Name / Bot Icon : Botからのメッセージに見せる場合、Botの名前 / アイコンを自由に設定可能
- Thread : 4で作成したメッセージのスレッドに送信する
- Broadcast To Channel? : チャンネルにも投稿したい場合はYes
- Test : テストすると設定どおりにメッセージが送信されるので、想定通りとなっているか確認する

****ワークフローをPublish → Onに設定すれば、完了です！****

### まとめ
---

所属部署ではClickUpを使ってタスク管理をしていますが、依頼元の部署ではClickUpは使っておらず、共通で使っているツールから依頼してもらうことで物理的・精神的な負荷を軽減したい。かつ、所属部署では引き続きClickUpでタスク管理をするために、このようなワークフローを組みました。

複数のツールを開くことなく依頼可能なので、依頼元の部署からは好評で、頻繁に活用されています。
今後もあらゆる依頼に対応できるように作成していきたいと思います。