Google Apps Scriptで実現!Googleフォーム×kintone連携の自動化事例を紹介

Google Apps Scriptを使えば、Googleフォームで取得した回答をkintoneに自動で起票することができます。
業務効率化ツールは、導入するだけで満足せず、使い方を工夫して業務効率化をさらに加速させることが重要です。
本記事では、既存の仕組みを変えずにGoogleフォームとkintoneをスムーズに連携し、無駄な手作業を削減した具体的な方法と実装のポイントをご紹介します。
はじめに
こんにちは。アイソルートのkuboki.nです。
普段はインフラ系の運用保守業務やヘルプデスク業務をしています。
今回は、私が実施した運用改善の一例を紹介します。
この記事は アイソルート Advent Calendar 12日目の記事です。
運用上の課題
まずは、私が改善に取り組んだ運用上の課題について説明します。
改善対象の業務:
※情シス部門所属の運用者は、情シス部門としての機能だけではなく、システム変更等のエンジニア的な役割も担っている。
課題の内容:
さらに、運用者ごとにkintoneのチケット起票時に表記ゆれ等が発生し、管理者による集計作業の手間が増えていた。
運用改善の内容
前述の課題を解決するため、職員がGoogleフォームで申請を送信してから、運用者がkintoneでチケットを起票するまでの流れを完全に自動化しました。
処理フローは以下の通りです。

①について:
※今回の運用改善はユーザ(=職員)に影響を与えることなく実現できます。
②について:
main.gs
function main(e) {
getFormResponse関数呼び出し
~回答内容で条件分岐~
起票が必要ならば
sendToKintone関数呼び出し
起票が必要ないならば
起票せず終了
sendMail関数呼び出し
}
formToKintone.gs
function getFormResponse(e) {
form回答取得の処理
}
function sendToKintone(recordData){
kintone起票の処理
}
sendMail.gs
function sendMail(e){
メール送信処理
}
トリガー設定は下記の通りです。職員によるフォーム送信がトリガーとなってGASの処理が動きます。
- 実行する関数を選択:main
- 実行するデプロイを選択:Head
- イベントのソースを選択:フォームから
- イベントの種類を選択:フォーム送信時
- エラー通知設定:今すぐ通知を受け取る
③について:
※UrlFetchApp.fetch():GASから外部サービスにHTTP通信を行うための関数。
リクエストには、kintoneのAPIトークンと必要なヘッダー情報を含め、認証を通過させます。
リクエストを受け取ったkintoneでは、自動でチケットが起票されます。
そのため、フォーム送信の通知に気づき、運用者がkintoneを確認するタイミングにはすでにチケットが起票されている状態になります。
運用を考慮した実装のポイント3つ:
-
レスポンスの確認とログ出力によって、運用しやすい仕様にしました。
- kintoneからの応答(成功/失敗)をログに記録。
- 失敗時にはアラートが送信される。
→アラートを受信したらログを確認して対処することができる。
-
既存のGoogleフォームに変更を加えない改善にしました。
- 既存のGoogleフォームを利用することで、ユーザ(=職員)への影響をゼロに。
→ユーザへの影響ゼロだから、情シス部門から改めて周知や説明が不要。
- 既存のGoogleフォームを利用することで、ユーザ(=職員)への影響をゼロに。
-
誰でも運用できるよう充実したドキュメントを用意しました。
- 仕様書:GASの各種設定、各フォームごとのGASのコード、フォームの設問とkintoneの項目の対応等の内容をまとめたもの。
- 運用手順書:想定されるエラーと対処法、申請フォームが新設されたときのGAS導入手順をまとめたもの。
効果とメリット
自動化による、運用上の効果とメリットは下記の通りです。
-
無駄な作業時間の削減
Googleフォームで取得した回答を手動でkintoneに転記して起票するという、人がやる必要のない単純作業を自動化しました。
これにより、1か月に約15時間かかっていた作業を削減することに成功しました。
特に、kintoneに起票する前の申請はGoogleフォームに紐づくスプレッドシートに記録されていますが、各申請のスプレッドシートを確認しに行くのは手間であり、無駄な作業でした。
自動化後は、kintone上で「未対応申請」でフィルターをかければすぐに確認できるようになり、作業が大幅に楽になりました。 -
リソースの有効活用
自動化によって空いたリソースを他の業務に充てることが可能になりました。
実際には、管理台帳や手順書の整備、業務効率化のためのマクロ作成など、運用現場に散らばる「やらなくても業務は回るけれど、やったほうが良い」という後回しにしがちなタスクを実施することができました。 -
作業の正確性向上
自動化前は以下のような課題がありましたが、すべて解消されました。- 申請の起票漏れ
- 運用者ごとの表記ゆれ
- フォーム回答からkintoneへのコピペミス
- 過去のレコードを流用して起票する際に、コピーするのではなく元本を編集してしまう
- 月末に受け付ける申請を次月に起票していたため、集計の際に正確な統計が取れない
-
運用者のストレス軽減
申請が多い日は、1日に数十件の申請を捌く必要があり、まとめて起票しようとしてもコピー元のフォーム回答を多数開いて作業するため、非常に面倒でした。
自動化後は、kintoneを更新するだけで済むようになり、ストレスが大幅に軽減しました。
(起票のために残業することもありました。)
まとめ
今回は運用改善の一例を紹介しましたが、ここで運用改善の重要性について触れておきたいと思います。
システム運用の目的はシステムの安定稼働の確保ですが、それは現状維持とはまた異なるものだと考えています。
自動化で定型作業を減らし、運用リソースを最小化できれば、その分をUX改善や運用コスト削減等のシステム自体の改善に投資できます。
運用担当は、現場でユーザの声を拾える立場だからこそ、改善の起点にもなれる存在です。
そのような立場を利用した「攻めの運用」を大事にしています。
最後に
明日は、ノーコードツールに関する記事です。お楽しみに!








