Google Apps Script (GAS) お問い合わせフォーム連携設定手順
概要
お問い合わせフォームをGoogle Spreadsheetsと自動メール送信に連携させるための設定手順です。
手順
1. Google Spreadsheetsの準備
- Google Spreadsheetsにアクセス
- 新しいスプレッドシートを作成
- ファイル名を「LeadFive お問い合わせ管理」に変更
2. Google Apps Scriptの設定
- スプレッドシートから「拡張機能」→「Apps Script」を選択
- デフォルトの
myFunction
を削除 gas-code-debug.gs
ファイルの内容をコピー&ペースト- プロジェクト名を「LeadFive Contact Form Handler」に変更
- 「保存」をクリック
3. Web Appとしてデプロイ
- 「デプロイ」→「新しいデプロイ」を選択
- 「種類」で「ウェブアプリ」を選択
- 設定:
- 実行ユーザー: 自分
- アクセスできるユーザー: 全員
- 「デプロイ」をクリック
- Web App URLをコピー(例:
https://script.google.com/macros/s/ABC123.../exec
)
4. 権限の許可
- 初回デプロイ時に権限の確認が表示される
- 「権限を確認」をクリック
- Googleアカウントでログイン
- 「詳細」→「LeadFive Contact Form Handler(安全ではないページ)に移動」
- 「許可」をクリック
5. WebサイトのJavaScriptファイル更新
以下のファイルのgasEndpoint
を実際のWeb App URLに更新:
assets/js/contact-handler-gas.js
this.gasEndpoint = '実際のWeb App URLに置き換え';
assets/js/contact-modal.js
const gasEndpoint = '実際のWeb App URLに置き換え';
6. テスト実行
- Apps Scriptエディタで
testDoPost
関数を選択 - 「実行」をクリック
- 実行ログでエラーがないことを確認
- スプレッドシートにテストデータが追加されることを確認
leadfive.138@gmail.com
にテストメールが届くことを確認
7. 本番テスト
- ウェブサイトのお問い合わせフォームから実際にテスト送信
- スプレッドシートに正しくデータが記録されることを確認
- 自動メール通知が正しく送信されることを確認
現在の設定状況
- ✅ GAS コード: 完成(
gas-code-debug.gs
) - ✅ フロントエンド連携: 完成(GAS エンドポイント設定済み)
- ⏳ Web App URL: 要設定(上記手順3-4で取得)
- ⏳ 権限許可: 要実行(上記手順4)
トラブルシューティング
よくあるエラー
- 「スクリプトが見つかりません」
- Web App URLが正しく設定されているか確認
- デプロイが正常に完了しているか確認
- 「権限がありません」
- 手順4の権限許可を再実行
- 実行ユーザーが「自分」になっているか確認
- 「メールが送信されない」
- Gmailの送信制限に達していないか確認
leadfive.138@gmail.com
が正しく設定されているか確認
デバッグ方法
- Apps Scriptエディタの「表示」→「実行ログ」でログ確認
getDebugInfo
関数を実行してシステム状態確認- ブラウザの開発者ツールでネットワークタブを確認
完了確認
以下が全て動作すれば設定完了:
- お問い合わせフォーム送信が正常に完了
- スプレッドシートに自動でデータが記録
leadfive.138@gmail.com
に自動で通知メールが送信- お問い合わせ者に確認メールが送信
新機能(2024年更新)
✅ 送信者への自動確認メール機能を追加
- お問い合わせ送信後、送信者に美しいHTML形式の確認メールを自動送信
- 送信内容の確認、連絡予定時期、緊急時の連絡先を含む
- 重複送信防止機能により、1件のお問い合わせにつき1通のメールのみ送信
メール送信仕様
管理者向け通知メール
- 送信先:
leadfive.138@gmail.com
- 件名:
【LeadFive】新規お問い合わせ: [お名前]様 ([会社名])
- 内容: 顧客情報、問い合わせ内容、スプレッドシートリンク
送信者向け確認メール
- 送信先: お問い合わせ者のメールアドレス
- 件名:
【LeadFive】お問い合わせを承りました - [お名前]様
- 内容: 受信確認、送信内容の確認、連絡予定、緊急時連絡先