こんにちは、Xtoneの松本です。
Google Sheets(スプレッドシート)でタスク管理や試験管理をする際、シートが更新されたらSlackへ通知したいと考える方は少なくないと思います。本記事では、非エンジニアでも簡単にGoogleスプレッドシートの変更内容をSlackへ通知できる方法を紹介します。
※所用時間:約10分〜15分
Googleスプレッドシートの特定の列の表記の変更をSlackへ通知する
今回は以下のようなタスク表を想定し、特定の列が変更された場合にSlackへ通知を送るような仕組みを作ります。今回はステータスを管理する「H列」が任意のステータスに変更された場合に通知が飛ぶようにします。
Slackチャンネルへ通知されるイメージは以下の通りです。
事前に準備しておくもの
事前に準備をしておくものは以下の3つだけです。
それでは、具体的な設定方法の説明に入ります。
1. SlackにWebhookをインストールする
はじめに、SlackにWebhookをインストールします。
手順は下記の通りです。
- SlackのWEBサイトから「Incoming Webhook」をみつけます
- 「Slackに追加」します(※Slackにログインしている必要があります)
- 更新の通知を受け取りたいSlackチャンネルを選び、「Incoming Webhook インテグレーションの追加」を押します
- Webhook URLが表示されるので、コピーして手元に控えておきます(※後で使います)
- 画面の下の方にスクロールし、設定を保存します
以上でWebhookの設定は完了です。
2. Googleスプレッドシートを用意する
通知を受け取りたいGoogleスプレッドシートを用意します。
はじめに、列を作る
どのようなフォーマットでも問題ありませんが、以下の3種類の列を作成し、それぞれの列番号を控えておいてください。列番号は「アルファベット」ではなく「番号」で控えてください。
(A列=1、B列=2、C列=3…といった具合です)
列 | 記載内容 |
---|---|
ID | タスクのID |
内容 | タスクの内容 |
ステータス | タスクのステータス |
通知を受け取りたいステータスを決める
ステータスの列がどのステータスになったら通知を送りたいか、を決めておきます。
例えば今回の例では「対応中」「対応済み」「完了」のステータスに変わった際に通知を受け取りたい想定としてあります。
Google Apps Script(GAS)に記述する
さぁ、いよいよスクリプトを書きます。
- まず、Googleスプレッドシートのメニュー「拡張機能」から「Apps Script」を選びます
- コードエディタが開いたら、予め記載されている内容(function myFunction〜)をすべて削除します
- 以下のコードを丸ごとコピーし、貼り付けます
- プログラムの上部に記載されている以下の内容を、あらかじめ控えておいた内容に書き換えます
※以下は記載例です
上記の記載が終わったら、スクリプトの準備は完了です。
トリガーを追加する
トリガーを追加します。
- 左のメニューから「トリガー」を選択します
- 右下の「トリガーを追加」をクリックします
- 各項目を以下のように設定し、「保存」します
- Googleの認証画面が表示されるので、認証するアカウントを選択します
- アカウントへのアクセスを「許可」します
以上で全ての設定は完了です。
試しにステータスを変更してみる
試しに、一つのタスクのステータスを「完了」に変更してみます。
きちんとSlackの指定したチャンネルに通知が飛んでいました。
まとめ
最近では、さまざまなツールをSlackに統合して、通知を中心にした効率的な作業とコミュニケーションが一般的になっています。そのような中で、GoogleスプレッドシートがSlackへの通知を行えないことは唯一のストレス要因でした。逆に、これが実現できるようになることで、Googleスプレッドシートの活用範囲の拡大が期待できます。この記事では、基本的な内容の通知方法を紹介しましたが、さらに発展的なカスタマイズを探求してみても面白いと思います。
たとえば、
- 「特定の担当者」に向けて、「特定のステータス」になったら通知する
- タスクが特定の人に割り当てられた場合、通知メッセージにその人へのメンションを追加する
など、より便利で効率的な通知システムはいくらでも考えられます。
また機会があれば、そうしたカスタマイズ版を別の記事で紹介できればと思います。