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だけで、コードの保守もテーマ依存もありません。
手順
- APIトークンとルームIDを用意:Chatwork右上のアカウント名 →「サービス連携」→「API Token」でトークンを発行。通知先グループチャットのURL(
https://www.chatwork.com/#!rid123456789)末尾の数字がルームID。 - トークンとルームIDを入力:プラグインの通知設定でChatworkを選び、APIトークンと通知先ルームIDを入力。
- 通知内容を指定:メッセージ本文に差し込むフォーム項目を、コードを書かず画面上で選択。Chatwork記法も使えます。
- テスト送信:フォームを送信し、ルームへの着信と差し込み内容を確認。
トークンは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サイト/無制限ライセンスなら、複数案件のフォーム保守をまとめて巻き取れる。決済と同時にライセンスキーを即時発行。