無法從測試號碼發送 WhatsApp 事件

WhatsApp Trigger 不接收傳入訊息,儘管 Meta 成功發送了 webhook

描述問題/錯誤/問題

大家好,
我遇到了 n8n 中 WhatsApp Trigger 節點的問題。我花了相當多的時間來除錯,看起來 Meta 成功發送了 webhook,但 WhatsApp Trigger 始終無法建立執行。

環境
n8n 版本:2.28.7
安裝方式:本機 (Node.js)
啟動方式:n8n
作業系統:macOS
通道:ngrok
WhatsApp Cloud API:Meta 測試號碼
Webhook:HTTPS (ngrok)

當我從個人 WhatsApp 向 Meta 測試號碼傳送訊息時,WhatsApp Trigger 不會觸發。

沒有建立任何執行。


正常運作的部分

1. Webhook 驗證

Meta 成功驗證了回呼 URL。


2. Meta「測試」按鈕

在:

Meta 開發人員 → Webhooks → WhatsApp Business Account → 測試

POST 請求成功到達我的 webhook。

我可以在 ngrok 中看到 POST 請求。


3. 傳入的 WhatsApp 訊息

當我從已驗證的個人 WhatsApp 號碼向 Meta 測試號碼傳送「嗨」時:

  • 訊息已成功傳遞(雙灰色勾號)
  • Meta 顯示傳入的 webhook 承載
  • ngrok 接收到 POST 請求

接收到的承載:

{
  "object": "whatsapp_business_account",
  "entry": [
    {
      "changes": [
        {
          "field": "messages",
          "value": {
            "metadata": {
              "phone_number_id": "1262521306937058"
            },
            "contacts": [
              {
                "profile": {
                  "name": "Venkat"
                },
                "wa_id": "919553532575"
              }
            ],
            "messages": [
              {
                "from": "919553532575",
                "type": "text",
                "text": {
                  "body": "Hi"
                }
              }
            ]
          }
        }
      ]
    }
  ]
}

這證實了 Meta 已正確生成 webhook。

WhatsApp Trigger 行為

執行步驟

如果我點擊「執行步驟」,然後從 WhatsApp Business Account → Message subscribe→Test 傳送訊息

:white_check_mark: Trigger 成功觸發。


啟用的工作流程

如果我啟用工作流程:

:cross_mark: 從測試號碼傳送相同的 WhatsApp 訊息,將「無法建立」任何執行。


我已檢查的事項

  • 從 n8n 1.97.1 更新至 2.28.7
  • 移除並重新建立 WhatsApp Trigger
  • 建立全新工作流程
  • 移除並重新建立 Meta webhook 訂閱
  • 成功驗證回呼 URL
  • 僅訂閱「messages」欄位
  • 產生新的 Meta 存取令牌
  • 驗證 Phone Number ID 相符
  • 驗證收件者號碼已在 Meta 中新增
  • ngrok 成功接收 webhook 請求
  • 測試了測試 URL 和生產 URL
  • 多次重新啟動 n8n

奇怪的行為

當工作流程啟用時,WhatsApp Trigger UI 經常仍會反白顯示「測試 URL」,即使選擇了「生產 URL」之後也是如此。

另外:

  • 執行節點會監聽 /webhook-test/...
  • 啟用工作流程應該使用 /webhook/...

但無論在 Meta 中配置了哪個 URL,傳入的 WhatsApp 訊息都不會在啟用的工作流程中建立執行。


問題

有人經歷過這種情況嗎?

是否存在:

  • n8n 2.28.7 中 WhatsApp Trigger 的已知問題?
  • 處理傳入 Cloud API webhook 所需的任何其他配置?
  • 我應該啟用的任何除錯日誌,以確定為什麼 webhook 被忽略?

任何幫助我們都非常感激。

謝謝!

請共享您的工作流程

WhatsApp Trigger
      ↓
AI Agent
      ↓
WhatsApp Send Message

共享最後一個節點傳回的輸出

關於您的 n8n 設定的資訊

  • n8n 版本:2.28.7
  • 資料庫 (預設:SQLite):SQLite (預設)
  • n8n EXECUTIONS_PROCESS 設定 (預設:own, main):預設 (own)
  • 透過以下方式執行 n8n (Docker、npm、n8n cloud、桌面應用程式):npm (全域安裝並透過 Node.js 在本機執行)
  • 作業系統:macOS Sequoia (Apple Silicon M1 Air)

@jio_mobile

請依序嘗試這些步驟:

  • 「硬重置」:取消發佈(停用)你的工作流程,等待約 30 秒,然後再次發佈(啟用)它。這個強制變更通常會觸發 Meta 側的 webhook 重新註冊。
  • 驗證 WEBHOOK_URL:由於你在本地執行 ngrok,請確保你的 n8n 環境變數包括:WEBHOOK_URL=https://your-ngrok-subdomain.ngrok-free.app/ 如果未設定此項,n8n 可能會在 UI 中使用 localhost 生成「生產 URL」,這會在 Meta 嘗試連接到你的 ngrok 隧道時造成不匹配。

現在可以了嗎?

最好的解決方案是建立一個獨立的簡單工作流程,保持你的 WhatsApp 連線「保持活躍」。

如何建立:

  1. 排程觸發器:將其設定為每 6 或 12 小時執行一次(反覆測試以獲得最佳結果)
  2. n8n API 金鑰:在 n8n 中前往設定 → API,並生成一個 API 金鑰。
  3. HTTP 請求節點(停用)
    • 方法POST
    • URLhttps:// your-n8n-instance/api/v1/workflows/YOUR_WHATSAPP_WORKFLOW_ID/deactivate
    • 驗證:標頭驗證(X-N8N-API-KEY
  4. 等待節點:等待 5–10 秒。
  5. HTTP 請求節點(啟用)
    • 方法POST
    • URLhttps://your-n8n-instance/api/v1/workflows/YOUR_WHATSAPP_WORKFLOW_ID/activate
    • 驗證:標頭驗證(X-N8N-API-KEY

透過定期切換啟用狀態,你可以強制 Meta 重新驗證並重新建立 webhook 訂閱,防止其過期。