以下のようなエクセルやスプレッドシートを作成して、質問内容の管理をすることがあるかと思います。
この場合に、常に両者でシートへの追加を確認しないといけなかったりするので手間ではあります。
かといって、Slack等のチャットツールだけで、質問等のやり取りをすると埋もれてしまい
最終的にどうなったかがわからなくなったりします。
そのため、シートに書き込みが行われ、ステータスが変更されたら、Slackに通知する。
そして、回答を書き込み、ステータスを完了に切り替えたら、Slackに通知する。という機能を持ったものを
Airtableで作成してみます。
もちろん、GASで同様のことは可能です。(SpreadSheet + GAS + Google Form)
前提として、既にAirtableのアカウントを開設済みとします。
仕様
以下の仕様で作成していきます。
- スプレッドシートのようなもので、一覧で質問、回答を確認することができる。
- 質問は、フォームから投稿する。
- 質問が投稿されたら、メールで通知、Slackに通知する。
- 回答が投稿され、ステータスが完了に変更されたら、Slackに通知する。
Baseを作成する
workspaceから、Add a baseからbase => Start from scratchから作成します。
base名(質問管理表)をつけます。
シートの列のタイトルをダブルクリックして、名称の変更、型の変更を行っていきます。
- No / Autonumber (オートインクリメントになります)
- 質問日 / Created time / Friendly(2021年3月19日)
- 質問内容 / Long text
- 質問者 / Single line text (別のシートを作成して、マスタ化してSelectBoxで選ばせることも可能)
- ステータス / Single select / 未対応・確認・完了
- 回答 / Long text
- 回答者 / Single line text (別のシートを作成して、マスタ化してSelectBoxで選ばせることも可能)
- 回答日 / Date / Friendly(2021年3月19日)
Airtableでは、項目のデフォルト値の設定ができないので、質問日を作成日にすることで日付が自動で入るようにしています。
上記の項目を追加して、以下のようにシートを作成します。
フォーム作成
シート作成後、メニューのFormを選択します。
以下のようなフォームが表示されます。
すべての項目がフォームとして表示されてしまうので、加工していきます。
回答、回答者、回答日を削除します。</>マークをクリックします。
質問日は、項目の定義をCreated timeにすることで消えます。
カバー画像、ロゴ、送信ボタン名、Airtableのブランド名、リダイレクト先の設定は、有料アカウントでないと変更できません。
また、各項目については、必須 or 必須でないの設定が可能です。
さしあたり、すべて必須項目にしました。
できれば、新規登録時は、フォームに項目出力せず、ステータスを未対応にしたいのですが、Single selectではデフォルト設定ができないため、フォームに項目を残しています。
ただしフォーム側での選択できるものを制限できるので、こちらを設定しておきます。
また、フォームの設定として完了画面のメッセージと投稿があったらEメール送信のオプションを設定しておきます。
これで、質問用のフォームが完成しました。
Open formを押すと、フォーム単体の画面が表示されます。
実際のフォームが以下になります。
フォームから投稿すると、スプレッドシートに質問内容が追加されます。
以下のように、投稿するとメールが飛んできます。
ここまでで、記事を作成しながら進めて、1時間ぐらいです。
Slack連携設定
投稿されたらメールが飛ぶ設定は、既にフォームのところでできています。
追加で、Slackに表示されるようにします。
以下の2つのAUTOMATIONSを設定して
- 質問のステータスが更新されたら、Slackへ通知する。
- 質問が投稿されたら、Slackへ通知する。
回答時のSlack通知設定
メニューのAUTOMATIONSをクリックします。
いくつかメニューが出るので、”Send a Slack message”をクリックします。
以下のように、条件を設定できます。
どのテーブルで、どのビューで、どの項目が更新された場合という条件設定が可能です。
フィールドについては、デフォルトだとすべての項目が選択されているので、Watching all fieldsを押して特定の項目だけに絞り込みを行います。
今回は、ステータスのみにします。ステータスが、未対応で登録された時、完了に変更した時に通知させます。
回答者は、回答の際に、ステータスを完了にするフローとします。
Slackへの連携部分の設定を行います。
Send a slack messageから、new accountの設定を行います。
通知するchannelも設定します。そして、メッセージを変更します。
Grid viewから更新するレコードの回答を記入して、ステータスを完了に変更します。
Slackに以下のようにメッセージが通知されます。
質問時のSlack通知設定
new automationsから新規作成していきます。サジェストされているものから選ぶと更新時の処理となるため、レコードが追加された時の処理を追加するには、新規作成になります。
トリガーはこちら。
アクションは、以下になります。
設定したら、ONに切り替えておきます。
実際にフォームから質問を投稿してみます。
以下のように、Slackに通知がされました。
以上で、簡易な質問管理システムができました。
とりあえず動作するものをとざっと作成したので、改善点はあるかと思いますが
コードを一切かかずにここまでできるのは大変便利です。
社内だけで利用するシステムは、Airtableで作っていいですね。
それでは。