メインコンテンツへスキップ

Pro Feature

Contact Form 7 の送信をGoogleスプレッドシートに自動保存する方法

Contact Form 7(CF7)のフォーム送信をGoogleスプレッドシートへ自動で行追加・保存する方法を解説。コード不要で設定画面だけで完結させる方法と、Google Apps Scriptを使う手動実装を、つまずきやすい点付きで紹介。

問い合わせ内容を集計・共有したいなら、Contact Form 7(CF7)の送信をGoogleスプレッドシートへ自動保存するのが手軽です。
送信のたびに行が追加され、そのまま集計やグラフ化、チーム共有ができます。
この記事ではコード不要で設定画面だけで完結させる方法と、自分でコードを書く手動実装の両方を解説します。

なぜスプレッドシート保存が便利か

メール通知だけだと、後から「今月の問い合わせ件数」「種別ごとの内訳」を出すのが面倒です。
スプレッドシートに溜めておけば、フィルタ・ピボット・グラフで即座に分析できます。
営業や経営層との共有もリンク1本で済みます。

方法1:設定画面だけで完結させる(コード不要・おすすめ)

functions.php もGoogle Apps Scriptも書かず、WordPress管理画面の設定だけでスプレッドシート保存を実装できます。
Frontierline Forms の連携機能を使えば、次の4ステップで完了します。
デプロイや権限設定でつまずく心配がありません。

この手順は Frontierline Forms の Pro機能(Slack / Chatwork / Googleスプレッドシート通知) です。

手順

  1. 保存先シートを用意:1行目に見出し(日時・お名前・メール・内容など)を作ったスプレッドシートを準備します。
  2. 連携を設定:プラグインの連携設定でGoogleスプレッドシートを選び、案内に沿って保存先シートを接続します。
  3. 項目を対応づけ:フォーム項目とシートの列を、コードを書かず画面上で対応づけます。
  4. テスト送信:フォームを送信し、行追加と各列の値を確認します。

フォームを修正しても列の対応が崩れにくく、複数フォーム・複数サイトでも管理が破綻しません。

方法2:Google Apps Scriptで手動実装する(上級者向け)

自分でコードを書く場合は、Google Apps Script(GAS)のWebアプリをCF7の送信先にすることで実装できます。

保存先シートとGASを用意する

スプレッドシートを作成し、1行目に見出し(日時・お名前・メール・内容)を並べます。
拡張機能 → Apps Script を開き、次のようなWebアプリを書きます。

function doPost(e) {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
  const p = e.parameter;
  sheet.appendRow([new Date(), p['your-name'], p['your-email'], p['your-message']]);
  return ContentService.createTextOutput('ok');
}

「デプロイ → 新しいデプロイ → 種類: ウェブアプリ」を選び、アクセスを「全員」にしてデプロイ。
発行された https://script.google.com/macros/s/.../exec がエンドポイントです。

WordPress側から送信する

CF7の wpcf7_mail_sent フックで、このURLへ送信データをPOSTします。

add_action('wpcf7_mail_sent', function ($form) {
  $submission = WPCF7_Submission::get_instance();
  $data = $submission ? $submission->get_posted_data() : [];
  wp_remote_post('https://script.google.com/macros/s/XXXX/exec', [
    'body' => [
      'your-name'    => $data['your-name'] ?? '',
      'your-email'   => $data['your-email'] ?? '',
      'your-message' => $data['your-message'] ?? '',
    ],
  ]);
});

手動実装でつまずく点

  • デプロイ設定が分かりにくい:アクセス権限を「全員」にし忘れると403で保存されません。再デプロイのたびにURLが変わる設定もあります。
  • 項目名のズレで空欄になる:フォーム項目名とGAS側のキーが一致しないと、列が空のまま行だけ増えます。
  • 保守がテーマとGASに二重化:WordPress側のコードとGAS側スクリプトの両方を保守する必要があり、属人化しやすいです。

単純な保存なら手動でも作れるが、デプロイ・権限・項目対応でつまずきやすく保守も二重化します。
だからこそ、設定だけで完結する方法1が現実的です。

スプレッドシート保存とDB保存の使い分け

スプレッドシートプラグインのDB保存
集計・グラフ化得意別途出力が必要
チーム共有リンクで簡単管理画面ログインが必要
件数・権限管理弱い管理画面で一元管理
CSV一括出力手動ボタンで全件出力

両者は排他ではありません。
スプレッドシートで共有・分析しつつ、サイト内ではDBに全件保存しておくと、取りこぼしと分析の両方をカバーできます。
送信ログのDB保存・CSV出力については製品ページの機能一覧を参照してください。

まとめ

CF7単体にスプレッドシート連携はないため、連携対応プラグインで設定するか、GASで自前実装するかのどちらかになります。
複数案件を回すなら設定画面で完結する方法が速く、デプロイのつまずきもありません。
まず試すなら方法1がおすすめです。

スプレッドシート連携に加え、Slack・Chatwork通知、送信ログのDB保存、CSV全件出力まで設定だけで実装したいなら、Frontierline Forms の導入を検討してください。

Frontierline Forms

この設定、管理画面のチェックだけで完了。

通知・送信ログ・CSV出力・マルチステップを、コードを書かず設定画面だけで実装。制作会社向けの5サイト/無制限ライセンスなら、複数案件のフォーム保守をまとめて巻き取れる。決済と同時にライセンスキーを即時発行。

価格・購入を見る → 機能の詳細