Slack, Jira, GoogleスプレッドシートをWorkatoで連携して作業完了報告書の自動作成してみた

# 1．はじめに
Slackをフロントエンドとした作業完了報告書作成レシピをWorkatoで作成してみました。

以下で紹介する内容では、データソース（作業ログ）にJiraを利用し、レポーティングツール（帳票出力）にGoogleスプレッドシートを利用しています。

いずれもクラウドサービスとして提供されており、かつWorkatoに標準でコネクターが用意されているため、Workatoを利用することで簡単に連携することができます。

# 2．処理の流れ
Slackで特定の操作を行うと、その操作をトリガーに作業完了報告書の作成を開始します。

作成された作業完了報告書はGoogleドライブ上の特定のフォルダに保存されるとともに、Slack上にも作成されたPDFファイルが添付されます。

![UseCase.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2266312/e7e9c89d-1308-d0fb-08db-459aa4d106f8.gif)

# 3．準備
１）テンプレートの準備

テンプレートとなるスプレッドシートを、Googleスプレッドシート上に用意します。
![Imaee0028.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2266312/875d90b5-9d8c-7f87-1d06-b0ebe39a8fe4.jpeg)

![Imaee0029.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2266312/a668de17-9bac-cb95-b2ef-00429bcfa094.jpeg)


２）出力フォルダの作成

Googleドライブ上に、作業完了報告書のスプレッドシートおよびPDFの出力先とするフォルダを用意します。

３）Jira課題の作成

作業ログを記録するためのJira課題を作成します。

![Imaee0030.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2266312/49a6f10b-9f1b-d656-a66c-55bcdf71c38f.jpeg)

# 4．レシピ
## 4-1．コネクター
次のコネクターを使用してレシピを作成します。

|コネクター|用途|
|---|---|
|Workbot|・Slackから送信されたWorkbotコマンドの処理<br>・Slackへのメッセージ送信<br>・Slackへの添付ファイルのアップロード|
|jira|・Jira課題情報および作業ログの取得|
|Google Drive|・テンプレートから新しいスプレッドシートを作成<br>・スプレッドシートをPDF形式でダウンロード|
|Google Sheets|・作業完了報告書の基本情報および作業時間をスプレッドシートへ転記|

## 4-2．レシピ作成
次のようなレシピを作成します。

・Work_Completion_Report
![reciepi_full_Image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2266312/39880795-2e5a-55b0-cc04-96d9a588fe16.png)

・Work_Completion_Report_Menu
![Imaee0035.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2266312/9ca8b57f-acbf-bf16-3ace-9aff6a80519d.jpeg)

・Work_Completion_Report_Dialog
![Imaee0036.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2266312/df68bb71-6527-7a44-c45f-247da9be720d.jpeg)


①トリガー

SlackからのWorkbotコマンドが実行された際の処理を実装します。
![Imaee0021.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2266312/e4b1769b-4405-e40c-76be-490f0f5b07a1.jpeg)

②ダイアログ表示

Slackのダイアログ表示に必要な処理を実装します。
![Imaee0022.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2266312/00ff33d1-1d9a-1f19-18f1-399442588edd.jpeg)

③Jira課題からの情報取得

Jira課題から基本情報と作業ログを取得するための処理を実装します。
![Imaee0023.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2266312/798c44d7-8c38-a11a-e0a3-46419cba8bd9.jpeg)


④テンプレートのコピー

テンプレートから新しいスプレッドシートを作成するための処理を実装します。
![Imaee0024.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2266312/ecaedeb7-c15f-967c-dc88-e72e53ee1119.jpeg)

⑤Googleスプレッドシートへの転記

テンプレートから新たに作成されたスプレッドシートへJira課題の情報を転記するための処理を実装します。
![Imaee0025.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2266312/64193844-eff8-dcca-6c05-17779ae777ea.jpeg)

⑥PDFダウンロード

GoogleドライブからPDFをダウンロードするための処理を実装します。
![Imaee0026.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2266312/f35365e3-2cb7-3517-52a7-db408f840314.jpeg)


⑦PDFをSlackへアップロード

ダウンロードしたPDFをSlackへアップロードします。
![Imaee0027.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2266312/54bb4d47-d9e6-277e-b2a0-d3a88abd9dd8.jpeg)


# 5．実行例
１）Slack上で作業報告書を作成するコマンド ( work completion report ) を実行し、「課題検索」ボタンをクリックします。
![Image0001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2266312/7f9d7076-945f-b5b0-13f9-db92fa6f12ce.png)

２）作業時間を集計したいjira課題キーを入力し、「作業完了報告書作成」ボタンをクリックします。
![Image0002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2266312/6559ba4a-68b7-922b-ef17-fe681cc8b4b5.png)

３）Workatoで作業完了報告書の作成が行われ、PDFとしてSlackへアップロードされます。
![Image0003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2266312/951a791f-7cba-476a-2dea-53434934bc7f.png)


・出力されたPDFファイルサンプルイメージ
![Image0004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2266312/4d3e1415-50bd-d9d1-770f-c4fe877d0c2a.png)
![Image0005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2266312/967bd75c-b389-331a-8f76-e24d2e3d3b0e.png)