Googleドキュメントで申請書を作成し、承認者に手動でメールを送っている方は多いのではないでしょうか。しかし、承認プロセスが属人化し、通知漏れや返信の遅れが発生することがあります。本記事では、Google Apps Scriptを活用して承認ワークフローを自動化し、承認依頼をSlackに通知する方法を解説します。これにより、承認プロセスを効率化でき、チーム内のコミュニケーションも円滑になります。
【要点】Google Apps Scriptで承認ワークフローを作成しSlack通知を実装する
- Slack Incoming Webhookの設定: Slack APIページでWebhook URLを生成し、スクリプト内で使用します。
- Googleドキュメントのスクリプトエディタ: ドキュメントのメニューからスクリプトエディタを開き、承認処理のコードを記述します。
- トリガーの設定: スクリプトを定時実行またはフォーム送信時に実行するようトリガーを設定します。
- 承認結果の記録: 承認ステータスをGoogleスプレッドシートに自動保存し、後から確認できます。
ADVERTISEMENT
目次
承認ワークフロー自動化の基本知識
Apps ScriptはGoogleのサービスを拡張するJavaScriptベースのスクリプト環境です。Googleドキュメントにスクリプトを追加することで、ドキュメントの内容を読み取り、外部サービスにデータを送信できます。承認ワークフローを構築するには、SlackのIncoming Webhook機能が必要です。事前にSlack APIページからWebhook URLを取得しておいてください。また、GoogleドキュメントのスクリプトエディタにアクセスできるGoogleアカウントが必要です。
承認ワークフローを構築する手順
申請用Googleドキュメントの準備
まず、承認申請に使用するGoogleドキュメントを作成します。ドキュメント内に申請者の名前、申請内容、承認者などのフィールドを設けます。フィールドは表形式にするとスクリプトで取得しやすくなります。ドキュメントの末尾に「送信」ボタンを追加するため、描画オブジェクトでボタンを挿入しても構いませんが、今回はメニューから実行する方法を採用します。
スクリプトエディタでコードを記述
Googleドキュメントのメニューから「拡張機能」→「Apps Script」を選択し、スクリプトエディタを開きます。以下の手順で関数を作成します。
- 承認依頼を送信する関数を作成
sendApprovalRequestという関数を作成します。この関数内で、DocumentAppのgetActiveDocumentメソッドでアクティブなドキュメントを取得します。次に、getBodyメソッドで本文を取得し、さらにgetTextメソッドでテキスト文字列を変数に代入します。その後、Slackに送信するメッセージを構築し、JSON形式に変換します。最後に、UrlFetchAppのfetchメソッドでWebhook URLに対してPOSTリクエストを送信します。 - メニューにスクリプトを追加
onOpen関数を定義し、ドキュメントが開かれたときにカスタムメニューを追加します。onOpen関数では、DocumentAppのgetUiメソッドでUIを取得し、createMenuメソッドでメニューを作成します。そしてaddItemメソッドで「承認依頼を送信」という項目を追加し、先ほど作成したsendApprovalRequest関数を呼び出すよう設定します。
Slack通知のテスト
ドキュメントを保存し、再度開くとメニューに「承認依頼を送信」という項目が表示されます。適当な内容をドキュメントに入力し、メニューから実行します。Slackの該当チャンネルにメッセージが届けば成功です。エラーが出る場合は、Webhook URLが正しいか、スクリプトの権限設定を確認します。
承認結果をスプレッドシートに記録する
承認依頼の履歴を残すために、Googleスプレッドシートに記録する機能を追加します。スクリプト内でSpreadsheetAppのopenByIdメソッドでスプレッドシートを開き、getActiveSheetでシートを取得します。appendRowメソッドで日付、申請者、内容、ステータスなどのデータを追加します。
Slackメッセージに承認ボタンを追加する
SlackのInteractive Componentsを利用すると、メッセージにボタンを追加できます。承認ボタンが押されたときの処理をApps Scriptで受け取るには、Webアプリとして公開する必要があります。doPost関数を定義し、SlackからのPOSTリクエストを処理します。こうすることで、承認者がSlack上で承認操作を行えます。
よくあるエラーとその対処法
Webhook URLが正しく設定されていない
Slackにメッセージが届かない場合、まずWebhook URLが間違っていないか確認します。Slack APIページで再度コピーし、スクリプト内の変数に貼り付けます。URLにスペースがないかも確認します。
スクリプトの実行に必要な権限が不足している
初回実行時に権限の承認ダイアログが表示されます。必要な権限を確認し、許可してください。拒否した場合は、後からスクリプトエディタの「実行」メニューから再度承認を求められます。
トリガーが正しく設定されていない
定期的に承認依頼をチェックしたい場合、トリガーを設定します。スクリプトエディタの時計マークアイコンからトリガーを追加し、時間主導型またはイベント主導型を選択します。時間間隔は分単位から月単位まで選べます。
ADVERTISEMENT
手動承認と自動承認の違い
| 項目 | 手動承認 | Apps Script自動承認 |
|---|---|---|
| 通知方法 | メール手動送信 | Slack自動通知 |
| 記録管理 | メール保存や手動記入 | スプレッドシート自動保存 |
| 処理速度 | 承認者の対応次第 | 即時通知、返信待ち可能 |
| コスト | 人件費 | 初期設定のみ |
まとめ
本記事では、GoogleドキュメントのApps Scriptを使い、承認ワークフローを自動化する方法を解説しました。Slack通知を組み合わせることで、承認依頼の漏れを防止し、迅速な承認プロセスを実現できます。次は、承認結果を自動でGoogleドキュメントに反映させる機能や、承認者が直接Slackから承認操作を行えるボタン機能の追加に挑戦してみてください。これらのカスタマイズにより、さらに効率的なワークフローを構築できます。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
SPONSORED
Googleドキュメントの人気記事ランキング
- 【Googleドキュメント】音声入力が認識されない時の対処!マイク権限の確認
- 【Googleドキュメント】上付き・下付き文字の入力方法!ショートカットと手動切替
- 【Googleドキュメント】ルビ(ふりがな)を振る方法!代替ツールとアドオンの活用
- 【Googleドキュメント】縦書き表示を実現する方法!代替ツールと回避策
- 【Googleドキュメント】表内の文字を縦中央揃えにする方法!セル内配置
- 【Googleドキュメント】文字間隔(字間)を調整する方法!カーニングの代替手段
- 【Googleドキュメント】インデントを正確に調整する方法!ルーラーとタブストップの使い方
- 【Googleドキュメント】PDFからDocsへ変換する方法!OCR取り込みと精度
- 【Googleドキュメント】Docs→Wordへエクスポート!docx出力での書式維持
- 【Googleドキュメント】図表番号の自動採番!Figure 1, Table 2 の連番
