Googleフォーム×GASで承認フローを自動化する方法

目次

承認作業、こんな状態になっていませんか?

  • 申請はフォームで集めている
  • でも承認はメール・口頭・チャット
  • 誰がOKしたか分からない
  • 差し戻し理由が残らない

この状態は、「集めるだけ自動化」で止まっています。


考え方:フォームは「入口」、承認は「流れ」で作る

承認フロー自動化のポイントは、
すべてを完結させようとしないことです。

  • 判断は人が行う
  • 通知・記録・分岐を自動化する

「一次対応まで」をGASに任せるのが現実的です。


全体の仕組み

  1. Googleフォームで申請を送信
  2. GASが内容を取得
  3. 承認者へ自動通知(メール or LINE)
  4. 承認/差し戻しをクリックで選択
  5. 結果を記録・申請者へ通知

① フォームとスプレッドシートの構成

フォーム回答は、次のような列構成がおすすめです。


申請日 | 氏名 | 内容 | 承認状態 | 承認者 | コメント

承認状態は最初「未確認」にしておきます。


② フォーム送信時に承認依頼を送る

フォーム送信トリガーを使い、承認者に通知します。


function onFormSubmit(e) {
  const sheet = SpreadsheetApp.getActiveSheet();
  const row = sheet.getLastRow();
  sheet.getRange(row, 4).setValue('未確認');

  sendApprovalMail(row);
}

③ 承認メールに「判断リンク」を入れる

承認者はメール内のリンクをクリックするだけです。


承認しますか?

[ 承認する ]
[ 差し戻す ]

それぞれのリンクに、
行番号+承認結果を含めます。


④ 承認・差し戻しを処理するGAS


function approve(e) {
  const row = e.parameter.row;
  const result = e.parameter.result;

  const sheet = SpreadsheetApp.getActiveSheet();
  sheet.getRange(row, 4).setValue(result);
}

これで、

  • 誰が
  • いつ
  • どの判断をしたか

が自動で残ります。


⑤ 承認後の自動処理

OKの場合

  • 申請者に承認完了メール送信
  • PDF(申込書・申請書)を正式保存

差し戻しの場合

  • コメント付きで申請者へ通知
  • 再申請を促す

ここまで来ると、紙・口頭・確認漏れが消えます


よくある失敗と注意点

承認リンクが第三者に使われる

→ 社内限定・アカウント制限を必ず設定

判断が増えすぎる

→ OK / NG の2択から始める

全部自動化しようとする

→ 最終判断は人が行う前提にする


この記事の位置づけ(シリーズ)

  • ① ChatGPTで文章生成
  • ② 週報・月報自動化
  • ③ メール・LINE送信
  • ④ PDF自動作成
  • ⑤ 承認フロー自動化(この記事)

この⑤で、
「業務として回る仕組み」が完成します。


まとめ|承認は「仕組み化」すると一気に楽になる

  • 判断は人
  • 通知・記録・分岐は自動
  • GASで十分に実現可能

まずは簡単な申請から、
小さく自動化するのがおすすめです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次