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

Pro Feature

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

Contact Form 7(CF7)のフォーム送信をChatworkのグループチャットへ自動通知する方法を解説。コード不要で設定画面だけで完結させる方法と、Chatwork APIトークンを使う手動実装を、つまずきやすい点付きで紹介。

問い合わせ対応をChatworkで回しているなら、Contact Form 7(CF7)の送信をChatworkのグループチャットへ自動通知するのが確実です。
メールを見落としても、チームの全員が着信に気づけます。
この記事ではコード不要で設定画面だけで完結させる方法と、自分でコードを書く手動実装の両方を解説します。

なぜChatwork通知が必要か

国内の制作・受託の現場ではChatworkでのやり取りが多いです。
問い合わせがメールだけだと、担当者の受信箱に埋もれて対応が遅れます。
Chatworkに流せば、案件ルームでそのまま「誰が対応するか」を割り振れて、返信スピードが上がります。

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

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

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

手順

  1. APIトークンとルームIDを用意:Chatwork右上のアカウント名 →「サービス連携」→「API Token」でトークンを発行。通知先グループチャットのURL(https://www.chatwork.com/#!rid123456789)末尾の数字がルームID。
  2. トークンとルームIDを入力:プラグインの通知設定でChatworkを選び、APIトークンと通知先ルームIDを入力。
  3. 通知内容を指定:メッセージ本文に差し込むフォーム項目を、コードを書かず画面上で選択。Chatwork記法も使えます。
  4. テスト送信:フォームを送信し、ルームへの着信と差し込み内容を確認。

トークンはDBに安全に保持され、フォームを修正しても通知設定がズレません。
問い合わせ種別ごとにルームを振り分ける条件分岐も設定画面から組めます。
複数フォーム・複数サイトでも管理が破綻しません。

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

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

APIトークンとルームIDを用意する

方法1の手順1と同じく、Chatworkの「サービス連携」→「API Token」でトークンを、通知先ルームのURL末尾の数字からルームIDを取得しておきます。

functions.php にフックを書く

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

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

  $room_id = '123456789';
  wp_remote_post("https://api.chatwork.com/v2/rooms/{$room_id}/messages", [
    'headers' => ['X-ChatWorkToken' => 'YOUR_API_TOKEN'],
    'body'    => ['body' => $body],
  ]);
});

[info][title] などのChatwork記法を使うと、通知が囲み枠で見やすくなります。

手動実装でつまずく点

  • APIトークンがコードに直書きになるfunctions.php にトークンを書くと、テーマファイル経由で漏れるリスクがあります。
  • フォーム・ルームが増えると分岐が膨らむ:問い合わせ種別ごとにルームを分けると、$form->id() や入力値での分岐コードが肥大化します。
  • 保守がテーマに紐づく:テーマ変更や引き継ぎでコードが失われます。複数サイトに横展開するほど破綻します。

1サイトなら手動でも回るが、トークンの安全な保持や複数案件への横展開を考えると、設定だけで完結する方法1が現実的です。

Slack通知と何が違うか

ChatworkとSlackはどちらもWebhook/API経由で通知できます。
国内案件・社外メンバーとの共有が多いならChatwork、開発・社内チームならSlackが馴染みやすいです。
Frontierline Forms はどちらにも対応するので、案件ごとに使い分けできます。
Slack版の手順は Contact Form 7 の送信をSlackに通知する方法 を参照。

まとめ

CF7単体にChatwork連携はないため、通知対応プラグインで設定するか、APIで自前実装するかのどちらかになります。
複数案件をChatworkで回すなら設定画面で完結する方法が速く、トークン管理も安全です。
まず試すなら方法1がおすすめです。

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

Frontierline Forms

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

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

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