先日リリースした社内ツールの改修要望をGoogle Spreadsheet(以下、スプレッドシート)に都度追記してもらうことにした。
しかし、スプレッドシートに追記されたことに気づかないことがあり、対応が遅れることがあった。
対応が遅くなってしまうのも良くないので、スプレッドシートに新しいレコードが追加されたタイミングでSlackに通知を送るようにしてみた。
作成したコード
https://github.com/hal40n/sendNotificationToSlack
作成過程とか
参考にさせていただいた記事は以下。
GASの onEdit(e)
イベントで該当のセルを特定し、Slack通知メソッドを呼び出すようにした。
【GAS】Googleスプレッドシートを更新したらSlackに通知させる仕組みを作ってみた - Qiita
はじめは下記の記事を参考に作成していたのだが、A列にはじめから1~100番までの番号が振られていたせいか、作成したスクリプトだと102行目が取得されてしまったので onEdit(e)
を使う方法に切り替えた。
Googleスプレッドシートに新しいレコードが追加されたらSlackに投稿するGoogle App Script|Key
ただ、私のケースではあるシートだけがほかのシートより1列だけ入力箇所が多かった。
そのためにシート名で処理を分岐させている。
またイベントの発火は入力項目の一番最後(E列またはF列)とした。
なぜこのような対応を取ったかというと、通知が連続して送られてしまっていたから。
はじめはB~E(F)列までのすべての列に値が入力されたタイミングで通知を発火していた。
しかし、通知が2回連続して送信されてしまだていたため、このような処理に変更した(実際には依頼の詳細が入る列なので、詳細だけ書く人はいないだろうという想定)。
もう少し時間をかけて調査すれば原因がわかっただろうが、時間もなかったため早々に切り替えた。
これまではPythonでスプレッドシートの操作をしていたが、GAS使ったほうが楽だなと思った。
必要に応じて使っていきたいと思う。