CASE STUDY / GAS業務自動化
問い合わせフォームの受付を、
問い合わせフォームの受付を、
「記録」と「通知」まで自動化する
Webサイトのお問い合わせフォームから送信された内容を、Google Apps Script(GAS)で スプレッドシートに自動記録し、同時に担当者へメール通知する仕組みの事例です。 レンタルサーバー不要・Google側で完結し、月額コストはかかりません。
Problem & Solution
よくある課題と、自動化後の姿
BEFORE / 手作業
- 問い合わせメールを見落とす/返信が遅れる
- 内容を手作業でExcelに転記している
- 担当者が不在だと気づかれない
- 対応状況が個人のメールボックスに埋もれる
AFTER / GASで自動化
- 送信と同時にスプレッドシートへ1行追記
- 担当者へ即メール通知(複数人に一斉も可)
- 受付日時・IP等も自動で記録
- 一覧で対応状況を全員が把握できる
How it works
処理の流れ
フォーム送信
訪問者がサイトのフォームを送信。JavaScriptが入力値をJSONにまとめ、GASのURLへ POST します。
GASが受け取る(doPost)
公開URLで待ち受けるGASの doPost(e) がリクエストを受信。必須項目のチェックと簡易スパム対策を行います。
スプレッドシートに追記
appendRow() で受付日時・名前・メール・本文などを1行追加。そのまま対応管理表として使えます。
担当者へメール通知
MailApp.sendEmail() で通知メールを送信。件名に会社名や種別を入れ、すぐ気づける形にします。
Live demo
動くフォームで試す
下のフォームを送信すると、右側の「スプレッドシート」に行が増え、「通知メール」のプレビューが更新されます。 ブラウザ内で動作を再現しているだけで、実際の送信・記録は行われません。
サイト側フォーム
スプレッドシート:お問い合わせ一覧
| 受付日時 | お名前 | メール | 内容 | |
|---|---|---|---|---|
| まだデータがありません。フォームを送信してください。 | ||||
担当者への通知メール(プレビュー)
To: you@example.com
件名: (未送信)
フォームを送信すると、ここに通知メールの内容が表示されます。
Code
GAS側スクリプト(サンプル)
スプレッドシートに紐づくスクリプトエディタに貼り付け、「ウェブアプリ」としてデプロイします。
フロント側はこのデプロイURLへ fetch() でPOSTするだけです。
/**
* お問い合わせフォーム受信 → シート追記 → メール通知
* デプロイ: 「新しいデプロイ」→ 種類「ウェブアプリ」
* 次のユーザーとして実行: 自分
* アクセスできるユーザー: 全員
*/
const SHEET_NAME = 'お問い合わせ一覧';
const NOTIFY_TO = 'you@example.com';
function doPost(e) {
try {
const data = JSON.parse(e.postData.contents);
// --- 必須チェック ---
if (!data.name || !data.email || !data.message) {
return json({ ok: false, error: 'required' });
}
// --- 簡易スパム対策(ハニーポット)---
if (data.website) return json({ ok: true });
const sheet = SpreadsheetApp.getActive().getSheetByName(SHEET_NAME);
const now = new Date();
sheet.appendRow([
Utilities.formatDate(now, 'Asia/Tokyo', 'yyyy/MM/dd HH:mm'),
data.name,
data.email,
data.message,
'未対応'
]);
MailApp.sendEmail({
to: NOTIFY_TO,
subject: '【サイト】お問い合わせ: ' + data.name + ' 様',
body:
'お問い合わせを受信しました。\n\n' +
'■お名前: ' + data.name + '\n' +
'■メール: ' + data.email + '\n' +
'■内容:\n' + data.message + '\n\n' +
'— スプレッドシートに記録済み —'
});
return json({ ok: true });
} catch (err) {
return json({ ok: false, error: String(err) });
}
}
function json(obj) {
return ContentService
.createTextOutput(JSON.stringify(obj))
.setMimeType(ContentService.MimeType.JSON);
}
Result
導入効果(想定)
0円月額のサーバー費用(Google側で完結)
即時受付から記録・通知までのタイムラグ
転記ゼロExcelへの手入力作業をなくせる
この仕組みの仕様
- 入力
- サイトのフォーム(名前・メール・内容 ほか任意項目)
- 保存先
- Googleスプレッドシート(1送信 = 1行、対応ステータス列つき)
- 通知
- 指定アドレスへメール送信。宛先は複数指定・CC可
- 拡張例
- Slack通知、自動返信メール、添付ファイル対応、gmailラベル自動付与 など
- 制限
- GASの1日あたり送信上限あり(無料枠は約100通/日)。大量送信用途には別途設計が必要