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

Pro Feature

Contact Form 7 の送信をSlackに通知する方法

Contact Form 7(CF7)のフォーム送信をSlackへリアルタイム通知する方法を解説。コード不要で設定画面だけで完結させる方法と、Incoming Webhookを使う手動実装の両方を、つまずきやすいポイント付きで紹介。

メール通知は見落とします。
複数人で問い合わせを捌くなら、Contact Form 7(CF7)の送信をSlackへリアルタイム通知するのが確実です。
着信に全員が気づき、対応漏れがゼロになります。
この記事では、コード不要で設定画面だけで完結させる方法と、自分でコードを書く手動実装の両方を解説します。

なぜメール通知だけでは取りこぼすのか

CF7の通知は管理者メール1通が基本。
だが受信箱は埋もれる、迷惑メール判定で消える、担当者が休みで誰も見ていない——本番運用ではこれで重要なリードを落とします。
Slackなら全員のタイムラインに即着信し、スレッドでそのまま対応を割り振れます。

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

functions.php を一切触らず、WordPress管理画面の設定だけでSlack通知を実装できます。
Frontierline Forms の通知連携機能を使えば、次の4ステップで完了します。
コードの保守もテーマ依存もありません。

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

手順

  1. Webhook URLを発行Slack API でアプリを作成 →「Incoming Webhooks」を有効化 → 通知先チャンネルを選んで Webhook URL(https://hooks.slack.com/services/... の形式)を取得します。
  2. 設定欄に貼り付け:プラグインの通知設定で Slack を選び、Webhook URL と通知先チャンネルを入力。
  3. 通知内容を指定:件名・本文に差し込むフォーム項目を、コードを書かず画面上で選択。
  4. テスト送信:フォームを送信し、チャンネルへの着信と差し込み内容を確認。

フォーム項目の指定がGUIなので、フォームを修正しても通知設定がズレません。
問い合わせ種別ごとに通知先チャンネルを振り分ける条件分岐も、設定画面から組めます。
複数フォーム・複数サイトでも管理が破綻しません。

方法2:Incoming Webhookで手動実装する(上級者向け)

自分でコードを書く場合は、Slackの Incoming Webhook と CF7 の wpcf7_mail_sent フックで実装できます。

Webhook URLを用意する

方法1の手順1と同じく、Incoming Webhook URL を発行しておきます(Slack API → アプリ作成 → Incoming Webhooks有効化 → チャンネル選択)。

functions.php にフックを書く

add_action('wpcf7_mail_sent', function ($form) {
  $submission = WPCF7_Submission::get_instance();
  $data = $submission ? $submission->get_posted_data() : [];

  $text = "新規お問い合わせ\n"
    . "お名前: " . ($data['your-name'] ?? '') . "\n"
    . "メール: " . ($data['your-email'] ?? '') . "\n"
    . "内容: " . ($data['your-message'] ?? '');

  wp_remote_post('https://hooks.slack.com/services/XXXX/YYYY/ZZZZ', [
    'headers' => ['Content-Type' => 'application/json'],
    'body'    => wp_json_encode(['text' => $text]),
  ]);
});

フォーム項目名(your-name など)は実際のフォーム定義に合わせて差し替えます。

手動実装でつまずく点

  • フォームごとにコードが増える:問い合わせ・採用・資料請求でフォームが分かれると、$form->id() で分岐するコードが膨らみます。
  • 項目名の管理が属人化:フォームを修正するたびに functions.php の項目名も直す必要があり、ズレると通知が空欄になります。
  • 保守がテーマに紐づく:テーマ変更や引き継ぎでコードが失われるリスク。複数サイトに横展開するほど破綻します。

1〜2サイトなら手動でも回るが、案件が増えると毎回これを書いて保守するのは非効率です。
だからこそ、設定だけで完結する方法1が現実的な選択になります。

メール vs Slack、どちらを使うべきか

メール通知Slack通知
気づきやすさ埋もれる・迷惑メール判定全員に即着信
対応の割り振り手動転送が必要スレッドでそのまま
複数窓口の振り分けフィルタ設定が煩雑チャンネルで明快

メールを完全に捨てる必要はありません。
メール+Slackの併用が現実的で、Slackを一次受けにすれば対応スピードが上がります。

まとめ

CF7単体にSlack連携はないため、通知対応プラグインで設定するか、Incoming Webhookで自前実装するかのどちらかになります。
複数フォーム・複数案件を保守するなら設定画面で完結する方法が圧倒的に速く、属人化も防げます。
まず試すなら方法1がおすすめです。

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

Frontierline Forms

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

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

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