做 n8n Webhook 測試時,先確認請求送往 Test URL 還是 Production URL。前者需要啟動測試監聽;後者則與工作流程的發布版本有關。若收到 HTTP 200 卻找不到執行紀錄,也不能只憑回應碼判定流程已執行。以下依這三個關鍵點逐步排查。
n8n Webhook 教學:先用 Test URL 測試
- 在工作流程中加入 Webhook 節點,取得節點提供的 Test URL。
- 選取 Listen for test event,再向 Test URL 發送測試請求。
- 在監聽期間確認測試結果;如果沒有收到預期結果,先檢查是否仍在監聽時間內,再重新選取 Listen for test event 測試。
依n8n 的 Webhook 測試文件,選取 Listen for test event 後,測試監聽維持 120 秒。因此,不要把 Test URL 當成持續監聽的正式入口。
Test URL 與 Production URL 有什麼差別?

| 檢查項目 | Test URL | Production URL |
|---|---|---|
| 使用前要確認什麼 | 已選取 Listen for test event,並在 120 秒監聽期間發送請求 | 已透過發布工作流程註冊正式 Webhook |
| 排查時看哪裡 | 先檢查測試監聽是否仍在進行 | 到該工作流程的 Executions 分頁查看執行資料 |
| 使用哪個工作流程版本 | 用於測試請求 | 正式執行使用已發布版本,而非編輯中的最新變更 |
如果修改工作流程內容後,Production URL 仍呈現舊內容,先核對目前已發布的版本,不要把編輯中的變更視為正式執行版本。正式請求的執行資料,則應到工作流程的 Executions 分頁查看。詳見工作流程儲存與發布文件及Webhook 節點文件。
回應內容不如預期?先確認 Respond 設定
Webhook 節點的 Respond 選項包括 Immediately、When Last Node Finishes、Using ‘Respond to Webhook’ Node,以及 Streaming response。選擇時,先釐清你要檢查的是立即回應、最後節點完成後的回應,還是由 Respond to Webhook 節點處理的回應;不要把這幾種設定混為一談。
若要使用 Respond to Webhook 節點,Webhook 的 Respond 必須設為 Using ‘Respond to Webhook’ node。排查時不要只確認畫布上有這個節點,也要核對 Webhook 的 Respond 設定。參考Respond to Webhook 節點文件。
收到 HTTP 200,為什麼 Executions 沒有紀錄?
HTTP 200 不能單獨證明工作流程已執行。依Webhook 節點文件,如果 Webhook 的 Only Run If 條件不符,請求仍會收到 HTTP 200,但不會建立執行紀錄。遇到「有 200、沒紀錄」,應先核對該條件,而不是只依回應碼判斷。
反向代理後方的 Webhook 網址不對,怎麼查?
若 n8n 位於反向代理後方,請先核對對外 Webhook 網址的設定。n8n 反向代理設定文件指出,應使用 N8N_WEBHOOK_URL 指定對外 Webhook 網址。先確認這項設定,再回頭檢查請求究竟送往 Test URL 或 Production URL。
排錯順序:從網址、版本到回應
- 先分辨網址:測試請求檢查 Test URL 與 120 秒監聽;正式請求確認工作流程的發布狀態。
- 再核對版本與紀錄:正式執行使用已發布版本,資料到 Executions 查看。
- 最後檢查回應設定:確認 Respond 選項;若收到 200 卻沒有執行紀錄,檢查 Only Run If。
- 若使用反向代理:核對 N8N_WEBHOOK_URL 指定的對外網址。
這個順序能先釐清請求走的是測試入口還是正式入口,再區分「沒有進入預期版本」與「收到回應但沒有執行紀錄」兩種不同問題。
