WhatsApp Cloud API 訊息未送達 n8n webhook(傳送正常,觸發器無法觸發)

嗨,我正在嘗試使用 Meta WhatsApp Cloud API + n8n 構建 WhatsApp 機器人。
我遇到了一個奇怪的問題:
正常工作的部分:
• 我可以使用 WhatsApp Send Message 節點從 n8n 發送訊息 :check_mark:
• Meta webhook「發送測試」從開發者儀表板到達 n8n :check_mark:
• Webhook 訂閱顯示已啟用訊息 :check_mark:
• 回調 URL 正確,使用生產環境 webhook URL :check_mark:
無法正常工作的部分:
• 當我向測試號碼發送真實 WhatsApp 訊息時
• n8n webhook 觸發器不會激活
• n8n 執行中沒有任何內容出現 :cross_mark:
設置詳情:
• 使用 WhatsApp Cloud API
• Webhook 訂閱對象:messages
• n8n webhook 已激活
• Meta 顯示 webhook 已成功連接
• 從 Meta 發送測試成功,但真實訊息未到達 n8n
我已經檢查過的項目:
• 回調 URL 正確(生產環境 URL,HTTPS)
• 訂閱包括訊息
• n8n 中的工作流程已激活
• Webhook 上無身份驗證
• Meta 儀表板中沒有明顯錯誤
令人困惑的部分:
Meta 的測試 webhook 立即到達 n8n,但真實 WhatsApp 訊息從未觸發 n8n。
所以感覺像是 Meta 沒有將真實訊息事件發送到我的 webhook,儘管一切看起來配置正確。
問題:
是什麼原因導致 Meta 測試 webhook 事件到達 n8n,但真實 WhatsApp 訊息從不觸發 webhook?
通常是以下原因嗎:
• webhook 路由問題?
• 缺少訂閱詳情?
• n8n 託管/反向代理問題?
• 或 WhatsApp Cloud API 設置中的其他問題?
感謝任何幫助。

描述問題/錯誤/問題

錯誤訊息是什麼(如果有)?

請分享您的工作流程

(在畫布上選擇節點,使用鍵盤快捷鍵 CMD+C/CTRL+C 和 CMD+V/CTRL+V 來複製和貼上工作流程。)

分享最後一個節點返回的輸出

關於您的 n8n 設置的資訊

  • n8n 版本:
  • 資料庫(預設:SQLite):
  • n8n EXECUTIONS_PROCESS 設置(預設:own、main):
  • 執行 n8n 的方式(Docker、npm、n8n cloud、桌面應用程式):
  • 作業系統:

歡迎來到 n8n 社群 @Ahmad_Naji
我想確認真實使用者訊息是否被發送到連接到該 WABA 和應用程式的同一個 WhatsApp Business 電話號碼,以及該應用程式是否訂閱了該 WhatsApp Business 帳戶的訊息欄位,而不僅僅是通過通用儀表板測試。如果這些都符合且 n8n 中沒有出現任何執行記錄,證據指向 Meta 沒有發出真實訊息事件,而不是 n8n 未能接收它。

是的,所有連接都正確,數字也是對的,所以問題是 meta 沒有發出真實訊息?那解決方案是什麼?

@Ahmad_Naji
我建議你驗證你的 Meta 應用程式是否已訂閱該特定 WhatsApp Business Account(擁有測試號碼)的 messages 欄位。儀表板測試僅驗證連線,不驗證實際訊息路由。接著,透過向 WABA ID 端點發送 DELETE 再發送 POST 來執行訂閱重設,並將訂閱欄位設定為 messages。最後確認電話號碼狀態透過 API 為 CONNECTED,因為處於 PENDING 狀態的號碼將接收訊息但不會發出 webhook 事件。如果這些步驟在 n8n 中仍未產生任何執行,表示 Meta 並未發出實際訊息事件。

我已經確認過 meta 沒有發送訊息。解決方案是什麼。你提到的一切我都已經做過了

早安 @Ahmad_Naji
此時我建議不要繼續對 n8n webhook 進行故障排除,因為 n8n 已經為訊息事件提供了專門的 WhatsApp Trigger 文件,所以最佳做法是使用該觸發器和 OAuth2 認證重新建構輸入端,然後只使用常規的 WhatsApp Business Cloud 節點進行輸出發送。

是的,我可以確認這三個都設定正確了,但還是沒有任何反應

有兩件事要檢查,這些曾經讓我們卡住:(1) 你的電話號碼狀態必須在 Meta 商務管理平台中設為「已連線」(檢查你的 WABA 設定中的實際電話號碼,不只是「webhook 已連線」) — 如果顯示「待處理」或「失敗」,即使測試成功,Meta 也不會向你的 webhook 傳送真實訊息。(2) 你的 webhook 訂閱需要專門包含 messages 欄位 — 我們有 webhooks_subscribed: truemessages 不在訂閱陣列中。前往你的 WABA 設定,找到 Webhook 設定,並驗證「messages」欄位已勾選,以及你的電話號碼狀態為「已連線」。如果狀態為「待處理」,你可能需要重新驗證你的電話號碼或聯絡 Meta 支援。