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ステップで完了します。
コードの保守もテーマ依存もありません。
手順
- Webhook URLを発行:Slack API でアプリを作成 →「Incoming Webhooks」を有効化 → 通知先チャンネルを選んで Webhook URL(
https://hooks.slack.com/services/...の形式)を取得します。 - 設定欄に貼り付け:プラグインの通知設定で Slack を選び、Webhook URL と通知先チャンネルを入力。
- 通知内容を指定:件名・本文に差し込むフォーム項目を、コードを書かず画面上で選択。
- テスト送信:フォームを送信し、チャンネルへの着信と差し込み内容を確認。
フォーム項目の指定が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サイト/無制限ライセンスなら、複数案件のフォーム保守をまとめて巻き取れる。決済と同時にライセンスキーを即時発行。