ログイン無料トライアルを開始
Meta Tech Provider

Flowise のチャットフローで WhatsApp メッセージに自動応答する

番号の Webhook 送信先を、小さな受信用サーバーに設定します。n8n のワークフローでも、自社コードのルートでも構いません。受信側は各メッセージを送信者の番号をセッション ID として Flowise の Prediction API に渡し、返ってきた回答を、その番号のトークンと phone_number_id を使って Cloud API から返信します。

POST /api/v1/prediction/:id

Flowise でフローにメッセージを送り、その応答を返すエンドポイントです。

Headers

Flowise の Streamable HTTP 経由の Custom MCP は、URL と、Bearer トークンなどのヘッダーを受け取ります。

24 hours

このウィンドウが終了すると、お客様に送信できるのは事前承認済みのメッセージテンプレートだけになります。

なぜ Flowise の前に中継役が必要なのですか?

Meta の Webhook と Flowise の API では、やり取りの形式が異なるためです。Meta は送信先の確認に GET を送り、hub.challenge を生のボディとして返すことを求めます。その後、各メッセージを入れ子構造の JSON の POST で配信します。一方、Flowise の Prediction API は、/api/v1/prediction/ にフロー ID を続けた URL への POST と、question フィールドを期待します。どちらも相手に合わせてくれないため、受信側が変換を担います。

受信側には、n8n の Webhook ノード、Python や Node で書いたルート、任意のサーバーレス関数が使えます。受信側は確認用の GET に応答し、Webhook URL に含めた長いランダムなシークレットを検証し、Meta にはすぐに 200 を返してから、実際の処理を行います。ここで有効な認証は URL に含めたシークレットです。Meta は Tech Provider のアプリシークレットで配信に署名しますが、このシークレットは共有されないため、X-Hub-Signature-256 ヘッダーをこちら側で検証することはできません。

受信側は Prediction API をどう呼び出せばよいですか?

お客様のテキストを question に、お客様の WhatsApp 番号をセッションとして渡します。Flowise はリクエストごとに overrideConfig を受け付けます。その中の sessionId によって、メモリノードが全員を 1 つのスレッドに混ぜず、1 人につき 1 つの会話を保持できます。Webhook のペイロードに含まれる送信者の番号は、そのための安定した自然なキーです。

チャットフローが API キーで保護されている場合、受信側はそれを Bearer トークンとして送ります。受信側がストリームを組み立てる作りでない限り、streaming は false にしてください。WhatsApp はトークンごとではなく、完成した 1 通のメッセージとして届けるためです。

回答は、同じ番号から Cloud API のテキストメッセージとして送信します。お客様のメッセージで開いた 24 時間のウィンドウ内であれば、無料で送信できます。リマインダーなど、フローが後から送りたいメッセージは、承認済みのメッセージテンプレートにする必要があります。

Prediction request the receiver sends for one WhatsApp message
POST https://your-flowise-host/api/v1/prediction/<flow-id>
Authorization: Bearer <flowise-api-key>
Content-Type: application/json

{
  "question": "do you have anything friday?",
  "streaming": false,
  "overrideConfig": { "sessionId": "14155550188" }
}

Flowise のエージェントから EasyCoexistence の MCP サーバーを使えますか?

現時点ではできません。Flowise の Custom MCP は、URL とヘッダーの組を使って Streamable HTTP サーバーに接続します。通常は Flowise の変数に保存した固定の Bearer トークンを使います。EasyCoexistence の MCP サーバーは OAuth で認証し、ブラウザでのサインインと自社で発行するトークンを使うため、ヘッダーに入れられる固定キーがありません。

実用的な分担は、フローが判断し、受信側が送信する形です。フローは、返信するテキストを返します。お客様からの連絡が 1 日以上途絶えている場合は、メッセージテンプレート名を返します。受信側は、その番号のトークンで Cloud API を呼び出します。こうすればトークンが Flowise の中に置かれることはなく、24 時間ルールも、忘れる可能性のあるモデル任せにせず、連絡先が最後に書き込んだ時刻をコードで確認して守れます。

受信メッセージは、送信をどの方法で行う場合でも、引き続き Webhook 経由でのみ届きます。

よくある間違い

  • sessionId を省略すること。全てのお客様が 1 つのメモリを共有し、ある人の情報が別の人への返信に現れるおそれがあります。
  • Flowise の処理を待ってから Meta に応答すること。200 の返信が遅れると再送され、同じメッセージが二重に処理されます。
  • 1 日後にフローからフリーテキストを送らせること。ウィンドウ外では、Meta がエラー 131047 で拒否します。
EasyCoexistence で実現する

easycoexistence.com で番号を接続し、Webhook の送信先を受信側に向け、ダッシュボードからトークンと phone_number_id を確認します。料金は番号 1 件あたり月額 US$ 9 から、番号を追加するほど US$ 1 まで下がり、最初の 3 日間は無料トライアルです。

よくある質問

Flowise に WhatsApp ノードはありますか?

ドキュメントには記載がありません。Prediction API 経由で接続するため、Meta とフローの間に受信側を置きます。

n8n を受信側にできますか?

はい。Webhook ノードで受信し、HTTP Request ノードで Flowise を呼び出し、別の HTTP Request ノードで Cloud API から回答を送信します。

担当者がスマートフォンから返信したとき、ボットを止めるにはどうすればよいですか?

echo イベントを監視してください。WhatsApp Business アプリから送った返信は受信側に届くため、その連絡先についてフローを一時停止できます。

会話は EasyCoexistence に保存されますか?

いいえ。Meta はお客様の受信側に直接配信します。Flowise には、メモリノードの設定で保持するよう指定した内容だけが残ります。

続きを読む

始める準備はできましたか?

WhatsApp Coexistence の設定は数分で完了し、数か月もかかりません。スマートフォン上のアプリも引き続き使えます。

無料トライアルを始める

確認日

Flowise を WhatsApp で使う|公式 Cloud API