目次
Contents
Googleフォームの回答内容によって送信先を自動で振り分ける方法
「お問い合わせ内容に応じて担当部署に自動でメールを送りたい」──そんなときに便利なのが、GoogleフォームとGAS(Google Apps Script)の連携です。 この記事では、回答内容に応じて自動で送信先を切り替える方法を、初心者でもわかるように解説します。
この記事でできること
- フォーム送信時にGASが自動実行
- 回答内容(例:部署や担当者)に応じて宛先を変更
- 件名・本文を自動生成してメール送信
- 誤送信を防ぐ仕組みを追加
① フォームを準備しよう
まずはGoogleフォームを作成します。
- 質問例:「お問い合わせ内容の種類を選んでください」
- 選択肢:「商品について」「契約について」「その他」など
- 次に「スクリプトエディタ」を開きます(メニュー → 拡張機能 → Apps Script)
② 回答内容ごとに送信先を設定する
次のスクリプトを貼り付けてください。 (フォームがスプレッドシートに連携されている状態を想定しています)
function onFormSubmit(e) {
const items = e.response.getItemResponses();
const data = {};
items.forEach(ir => data[ir.getItem().getTitle()] = ir.getResponse());
// 回答内容に応じて送信先を設定
const category = data["お問い合わせ内容の種類"];
let to = "";
switch (category) {
case "商品について":
to = "product@example.com";
break;
case "契約について":
to = "sales@example.com";
break;
default:
to = "info@example.com";
break;
}
// メール送信
const subject = "【自動通知】" + category + " に関する新しいお問い合わせ";
const body = [
"新しいお問い合わせがありました。",
"",
"▼お問い合わせ内容",
"種類:" + category,
"お名前:" + (data["お名前"] || "(未入力)"),
"メールアドレス:" + (data["メールアドレス"] || "(未入力)"),
"",
"――",
"このメールはGoogleフォームとGASによる自動通知です。"
].join("\n");
GmailApp.sendEmail(to, subject, body);
}
実行結果イメージ
フォームで「商品について」が選ばれると、GASが自動的に product@example.com に通知メールを送信します。
同様に「契約について」なら営業部宛、「その他」なら代表アドレスに届くようになります。
③ トリガーを設定して自動化
- GASエディタ左側の「時計マーク」をクリック
- 「トリガーを追加」→ 関数
onFormSubmitを選択 - イベントのソース:「フォームから」
- イベントの種類:「フォーム送信時」
- 保存(初回は権限を承認)
これでフォーム送信と同時に自動メールが飛ぶようになります。
④ よくあるカスタマイズ
- 複数宛先に送る:
to = ["a@example.com","b@example.com"].join(","); - CCやBCCを追加:
GmailApp.sendEmail(to, subject, body, {cc:"cc@example.com"}); - HTMLメールにしたい:
オプションにhtmlBody: "<p>〜</p>"を追加。 - 条件を増やす:
switch文を編集して「サポート」「返品」などを追加。
⑤ エラー対策と確認ポイント
- 動かない:「onFormSubmit」関数にインストール型トリガーを設定したか確認(自動トリガーでは動作しません)。
- 送信先が空:フォーム質問タイトルを正確に一致させてください(「お問い合わせ内容の種類」など)。
- テスト方法:フォームを実際に送信して確認。GASのログ(表示→ログ)にも出力されます。
- セキュリティ:メールアドレスをハードコードせず、スクリプトプロパティで管理するのがおすすめ。
⑥ プロパティ管理で安全に(応用)
メールアドレスをコードに直接書かずに、プロジェクトのプロパティに保存すると安全性が上がります。
function getEmail_(key) {
return PropertiesService.getScriptProperties().getProperty(key);
}
// 例:プロパティに登録しておけば
// PRODUCT_MAIL=product@example.com
// SALES_MAIL=sales@example.com
// 呼び出し時
const to = getEmail_("PRODUCT_MAIL");
プロパティ管理を活用すれば、担当者が変更になってもコードを書き換える必要がなくなります。
まとめ
Googleフォーム+GASを使えば、回答内容に応じて自動でメールを振り分ける仕組みが簡単に作れます。 複数部署への連絡・問い合わせフォーム・社内申請など、手動仕分けの手間をなくせる便利な仕組みです。
