Googleフォームで問い合わせや申込を受け付けたあと、回答を開き、台帳を整え、担当者へ連絡する作業を毎回繰り返していませんか。
Google Apps Script(GAS)を使うと、フォーム送信をきっかけに、受付内容の整理と担当者通知までを自動化できます。
この記事では、外部サービスへ自動送信しすぎず、受付 → 台帳 → 担当者通知 → 人が確認という安全な基本形を作ります。
情報の基準日:2026年8月11日
Google Apps Script、Google Forms、Google Sheetsの仕様・権限・割り当て上限は変更される場合があります。実装前にGoogle Apps Script公式ドキュメントを確認してください。
先に結論:自動化するのは「整理と通知」まで
最初の自動化では、次の範囲が扱いやすいです。
- Googleフォームで受付
- 回答をスプレッドシートへ保存
- GASで受付内容を読み取る
- 種別に応じて担当者を決める
- 管理列を自動入力する
- 担当者へメール通知する
- 担当者が内容を確認して返信する
顧客への正式返信、返金、契約、削除などは最初から自動化しません。
導入前の業務フロー
たとえば問い合わせ受付では、次の作業が発生します。
- フォーム回答を開く
- 問い合わせ種別を読む
- 担当者を決める
- 台帳へステータスを書く
- 担当者へメールやチャットで連絡する
- 返信漏れがないか後で確認する
このうち、内容を見て機械的に決められる部分だけをGASへ寄せます。
Googleフォーム→担当者通知の簡単な使い方【2026年8月時点】
1. Googleフォームを作る
最初は最低限の項目にします。
- 氏名または会社名
- 返信先
- 問い合わせ種別
- 問い合わせ内容
担当振り分けに使う項目は、自由記述より選択式にすると扱いやすくなります。
2. 回答先をGoogleスプレッドシートへ接続する
Googleフォームの回答保存先としてスプレッドシートを作成します。
回答シートには、フォームの回答列に加えて管理用の列を右側へ用意します。
例:
担当者対応状況受付確認日時メモ
3. Apps Scriptを開く
回答先スプレッドシートからApps Scriptプロジェクトを作成します。
最初に、フォーム送信時に実行する関数を用意します。
function handleFormSubmit(e) {
const values = e.namedValues;
const category = values["問い合わせ種別"]?.[0] ?? "";
const assignee = category === "請求" ? "経理担当" : "受付担当";
const row = e.range.getRow();
const sheet = e.range.getSheet();
sheet.getRange(row, 6).setValue(assignee);
sheet.getRange(row, 7).setValue("未対応");
sheet.getRange(row, 8).setValue(new Date());
}
列番号や質問名は自分のフォームに合わせて変更します。
4. インストール型のフォーム送信トリガーを設定する
Apps Scriptの「トリガー」から、handleFormSubmit をフォーム送信時に実行するインストール型トリガーとして登録します。
Google公式では、フォーム送信トリガーにGoogle Forms側と回答先Google Sheets側の2種類があると案内されています。
回答先シートの行番号を使う場合は、スプレッドシート側のフォーム送信イベントが扱いやすいです。
5. 担当者通知を追加する
管理列への書き込みが確認できたら、担当者通知を追加します。
function notifyAssignee(email, category, summary) {
MailApp.sendEmail(
email,
`新しい問い合わせ: ${category}`,
`新しい受付があります。\n\n${summary}\n\n台帳を確認してください。`
);
}
通知本文には必要最小限の情報だけを入れ、個人情報や機密情報をメールへ大量にコピーしない設計も検討します。
6. テスト回答を送信する
本番開始前に、問い合わせ種別ごとにテストします。
- 正しい担当者になるか
- 管理列が正しい行へ入るか
- 通知が1回だけ届くか
- 空欄や想定外の値でエラーにならないか
- 同じ処理が重複実行されても大きな事故にならないか
7. 失敗時の確認方法を決める
インストール型トリガーの実行エラーは、回答者の画面には表示されません。
Apps Scriptの実行履歴と、トリガー作成者へ届く失敗通知を確認できる担当者を決めておきます。
インストール型トリガーで重要な権限の考え方
Google公式によると、インストール型トリガーはトリガーを作成したアカウントの権限で実行されます。
そのため、個人のGoogleアカウントで作成した自動化をチーム運用へ持ち込むと、退職・異動・アカウント停止時に問題になることがあります。
業務利用では、次を先に決めます。
- 誰のアカウントでトリガーを作るか
- そのアカウントが停止した場合の引き継ぎ
- スプレッドシートの編集権限
- メール送信元として問題ないか
- 誰が実行履歴を確認するか
MailAppとGmailAppは必要な権限が違う
通知だけなら、Gmail全体へアクセスできるGmailAppではなく、送信専用のMailAppで足りる場合があります。
Google公式ではMailAppはメール送信を目的としたサービスで、Gmail受信箱へアクセスしないと説明されています。
必要以上に広い権限を使わない設計を優先します。
自動化しないほうがよい部分
顧客への正式回答
問い合わせ種別だけで返信内容を確定すると、例外条件や重要な事情を見落とす可能性があります。
最初は担当者通知までにして、人が内容を読んで返信します。
データ削除
フォーム回答や台帳行の自動削除は、誤判定時に復旧しにくいため、別の確認工程を設けます。
契約・請求・返金
金額や契約状態を変更する処理は、受付自動化とは分けて設計します。
うまくいかないときの確認ポイント
トリガーが動かない
Apps Scriptから関数を手動実行しただけでは、フォーム送信イベントと同じイベントオブジェクトは渡されません。
実際にテストフォームから回答を送って確認します。
通知が重複する
同じ関数のトリガーを複数登録していないか確認します。
メールが送れない
Apps Scriptの承認状態、MailAppの送信権限、日次割り当て上限を確認します。
向いている人
- 問い合わせをGoogleフォームで受け付けている
- 回答後の転記・担当振り分けが定型化している
- 小規模チームで受付漏れを減らしたい
- Google Workspaceを業務の中心に使っている
まだ不要な人
月に数件しか受付がなく、担当者も1人で、転記作業にほとんど時間がかからない場合は、まず手作業のままでも問題ありません。
GASは便利ですが、保守するコードと権限が増えます。繰り返し作業が明確になってから導入してください。
関連記事
GASをサービスとして提供する考え方は、Googleスプレッドシート・GAS代行の仕事内容と始め方でも整理しています。
ノーコード連携を含めて検討したい場合は、Makeで業務自動化する方法も参考にしてください。
まとめ
GoogleフォームとGASを組み合わせると、受付後の定型作業をかなり細かく制御できます。
最初は、受付 → 台帳整理 → 担当者通知までに絞るのがおすすめです。
外部送信・契約変更・削除など不可逆な処理は人の確認を残し、まずは「見落としと転記を減らす」自動化から始めてください。
次に読む記事
今のテーマから次の行動へ進むときは、以下の記事も参考にしてください。
- GAS代行の仕事への広げ方を見る — フォーム自動化を、個人で提供する業務改善サービスへ発展させたい人向けです。
- Makeを使ったノーコード自動化と比較する — コードを書くGASとノーコード連携のどちらが合うか比較したい人向けです。