現場でよくある「あの地味にイライラする瞬間」
「日報、出した?」
「あ、スプレッドシートに書いたはずですが…」
こんなやり取り、身に覚えありませんか?
毎朝日報チェックのためだけにスプレッドシートを開き、誰が提出済みで誰がまだなのか、ひとつずつ目で追っていく・・・
地味に時間を食われるし、見落とすと「あの件どうなってる?」と上司に聞かれて冷や汗をかく…
そんな経験、正直なところ自分は何度もあります。
さらに厄介なのが承認フロー。
稟議書や経費申請がメールやチャットの奥底に埋もれて、気づいたら3日経っていた、なんてことも。
今回はこの「地味だけど地味につらい業務」を、GAS(Google Apps Script)とSlack APIを組み合わせて自動通知する仕組みに変えてみた、その実践記録をお届けします。
実際に手を動かして検証した内容なので、コピペだけでは動かない部分も含めて正直に書いていきます。
GASとSlack APIで実現!日報・承認フローを自動通知するチーム連携システムの作り方とは? 実際に使って分かった本音のメリット
やっていることは単純です。
Googleフォームやスプレッドシートに日報・申請内容が入力されたら、GASがそれを検知してSlackの該当チャンネルやDMに自動でメッセージを飛ばす、というだけ。
ただ、この「だけ」が業務時間に与えるインパクトは想像以上でした。
自分の場合、毎朝の日報確認作業がほぼゼロになりました。
チェックのために開いていたスプレッドシートを開く回数が激減し、体感では1日あたり15〜20分くらいは浮いている感覚があります。
チリツモですが、月に換算すると結構な時間ですよね。
さらに良かったのが、承認が必要な案件が「見える化」されること。
これまでは申請者側も「催促していいのかな…」とためらっていた場面が、Slack通知のおかげで承認者側から自然に反応が来るようになりました。
催促の心理的ハードルがなくなるというのは、数字には表れにくいですが、チームの空気が明らかに軽くなります。
【図解いらずでわかる】実践手順と、実際に試したコード
まずはSlack側でIncoming Webhookを有効化し、通知先チャンネルのURLを発行します。
Slack APIの管理画面から「Incoming Webhooks」を追加するだけなので、ここは迷うことは少ないはずです。
次にGoogleスプレッドシート(日報・申請フォームの回答先)を開き、拡張機能からApps Scriptエディタを立ち上げます。以下は、フォーム送信をトリガーに、内容をSlackへ投稿するシンプルなコード例です。
function onFormSubmit(e) {
const values = e.values; // フォーム回答の配列
const name = values[1];
const report = values[2];
const webhookUrl = "ここにSlackのWebhook URLを貼る";
const payload = {
text: `📝 日報提出:${name}さん\n内容:${report}`
};
const options = {
method: "post",
contentType: "application/json",
payload: JSON.stringify(payload)
};
UrlFetchApp.fetch(webhookUrl, options);
}
このonFormSubmit関数を、スクリプトエディタの「トリガー」設定画面で「フォーム送信時」に紐づければ完成です。
承認フローの場合は、ステータス列(未承認/承認済)をチェックする時間主導型トリガーを別途組んで、未承認のまま一定時間放置されている行だけを拾ってリマインド通知する、という形にすると実用性がぐっと上がります。
【要注意】自分がハマった罠と、エラーの回避法
正直に告白すると、最初はWebhook URLの文字列に余計な改行が混じっていて、構文エラーで小一時間悩みました。
単純な話なんですが、コピペ元のURLをそのまま貼ったのが原因でした。
URLを貼ったら一度ログに出して中身を確認する癖、つけておいて損はないです。
もう一つの落とし穴は、トリガーの権限承認です。
初回実行時にGoogleアカウントの承認ダイアログが出るのですが、ここで「詳細」から進まないと先に進めず、公式リファレンスを読んでも地味に分かりにくいポイントだと思います。
あとは地味にやりがちなのが、Slack側のチャンネルアーカイブです。
Webhookを設定したチャンネルをうっかりアーカイブしてしまうと、通知がエラーも出さずに静かに届かなくなります。
「あれ、今日通知来てないな」と気づくまで数日かかった、なんてこともありました…。😓
総括:まずはここから始めてみよう
ここまで読んで「よし、やってみよう」と思った方は、まず自分の業務で一番「確認が面倒」だと感じているスプレッドシートを一つだけ選んでみてください。
日報でも経費申請でも構いません。
いきなり全社展開を狙わず、まずは自分のチーム内、数人規模の小さなフォームから試すのが失敗しないコツです。
GASとSlack APIの組み合わせは、無料で始められる割に効果が大きい仕組みだと自分は感じています。
今日の午後、30分だけ時間を作って、まずはWebhook URLを発行するところから動いてみませんか?




