Halcyon Days

IT × 移住 × ファイナンス

MENU

Google Spreadsheetにレコードが追加されたらSlackへ通知を送信するスクリプトをGASで書いてみた

先日リリースした社内ツールの改修要望を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使ったほうが楽だなと思った。

必要に応じて使っていきたいと思う。