これは 制作サンプル(事例紹介) です

← MOエンタープライズのサイトへ戻る
MOエンタープライズ / GAS事例 制作実績一覧へ
CASE STUDY / GAS業務自動化

問い合わせフォームの受付を、
「記録」と「通知」まで自動化する

Webサイトのお問い合わせフォームから送信された内容を、Google Apps Script(GAS)で スプレッドシートに自動記録し、同時に担当者へメール通知する仕組みの事例です。 レンタルサーバー不要・Google側で完結し、月額コストはかかりません。

想定業種:個人事業主・中小企業 使用技術:Google Apps Script / スプレッドシート / Gmail サーバー:不要

よくある課題と、自動化後の姿

BEFORE / 手作業

  • 問い合わせメールを見落とす/返信が遅れる
  • 内容を手作業でExcelに転記している
  • 担当者が不在だと気づかれない
  • 対応状況が個人のメールボックスに埋もれる

AFTER / GASで自動化

  • 送信と同時にスプレッドシートへ1行追記
  • 担当者へ即メール通知(複数人に一斉も可)
  • 受付日時・IP等も自動で記録
  • 一覧で対応状況を全員が把握できる

処理の流れ

フォーム送信

訪問者がサイトのフォームを送信。JavaScriptが入力値をJSONにまとめ、GASのURLへ POST します。

GASが受け取る(doPost

公開URLで待ち受けるGASの doPost(e) がリクエストを受信。必須項目のチェックと簡易スパム対策を行います。

スプレッドシートに追記

appendRow() で受付日時・名前・メール・本文などを1行追加。そのまま対応管理表として使えます。

担当者へメール通知

MailApp.sendEmail() で通知メールを送信。件名に会社名や種別を入れ、すぐ気づける形にします。

動くフォームで試す

下のフォームを送信すると、右側の「スプレッドシート」に行が増え、「通知メール」のプレビューが更新されます。 ブラウザ内で動作を再現しているだけで、実際の送信・記録は行われません。

サイト側フォーム

スプレッドシート:お問い合わせ一覧
受付日時 お名前 メール 内容
まだデータがありません。フォームを送信してください。
担当者への通知メール(プレビュー)
To: you@example.com
件名: (未送信)
フォームを送信すると、ここに通知メールの内容が表示されます。

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);
}

導入効果(想定)

0円月額のサーバー費用(Google側で完結)
即時受付から記録・通知までのタイムラグ
転記ゼロExcelへの手入力作業をなくせる

この仕組みの仕様

入力
サイトのフォーム(名前・メール・内容 ほか任意項目)
保存先
Googleスプレッドシート(1送信 = 1行、対応ステータス列つき)
通知
指定アドレスへメール送信。宛先は複数指定・CC可
拡張例
Slack通知、自動返信メール、添付ファイル対応、gmailラベル自動付与 など
制限
GASの1日あたり送信上限あり(無料枠は約100通/日)。大量送信用途には別途設計が必要

同じような自動化を相談する