n8n Webhook 完全攻略:設定、測試、除錯一篇搞定
完整教你 n8n Webhook 節點怎麼用,包含 Test URL 和 Production URL 的差異、HTTPS 設定、常見串接場景、除錯 SOP,看完就能接外部資料進 workflow。
Webhook 是讓外部服務「主動通知」你的 n8n workflow 的方式。白話版:別人打你的網址,你的 workflow 就自動跑起來。
不管是表單送出、Stripe 收到付款、還是 LINE 收到訊息——只要對方支援 Webhook,你都能接進 n8n 處理。
這篇從建立到除錯,一次搞定。
Webhook 白話解釋
一般的 API 是你去問別人:「欸有新資料嗎?」(這叫 polling)。
Webhook 剛好反過來:你給別人一個網址,有新資料的時候,對方主動打你的網址告訴你。
好處很明顯:
- 不用一直去問(省 API 額度)
- 即時反應(不用等排程)
- 設定一次就好
建立 Webhook 節點
Step 1:加入 Webhook 節點
在 workflow 裡面,點 + 加入節點 → 搜尋「Webhook」→ 選 Webhook 節點。
它會出現在 workflow 的最前面,當作觸發器(Trigger)。
Step 2:基本設定
| 設定項 | 說明 | 建議 |
|---|---|---|
| HTTP Method | 要接收哪種 HTTP 方法 | 通常選 POST(大多數 Webhook 都用 POST) |
| Path | 網址路徑 | 自己取名,例如 my-webhook,最後的 URL 會是 https://你的n8n/webhook/my-webhook |
| Authentication | 驗證方式 | 先用 None 測試,上線再加 |
| Response Mode | 回應模式 | Immediately 立即回應,或 When Last Node Finishes 等全跑完再回 |
Step 3:拿到 Webhook URL
設定好之後,節點上方會顯示兩個 URL:Test URL 和 Production URL。
這兩個差異超大,下面詳細說。
Test URL vs Production URL(重點!)
這是新手最容易搞混的地方,搞錯了你會一直覺得「為什麼 Webhook 收不到?」
| Test URL | Production URL | |
|---|---|---|
| 什麼時候有效 | 按「Listen for Test Event」的時候 | Workflow 啟動(綠色開關打開)的時候 |
| URL 格式 | /webhook-test/your-path | /webhook/your-path |
| 收到資料會怎樣 | 在 n8n 畫面上顯示資料 | 背景執行,不顯示在畫面 |
| 用途 | 開發測試用 | 正式上線用 |
| 關掉 n8n 編輯器 | URL 立即失效 | 只要 Workflow 是啟動狀態就一直有效 |
踩過的坑一次整理:最常見的錯誤就是把 Test URL 貼到正式服務上,結果你一關 n8n 編輯器就收不到了。上線一定要用 Production URL。
切換 Production URL 的正確步驟
- 用 Test URL 測試到滿意
- 把 Workflow 右上角的開關打開(變成綠色)
- 複製 Production URL(注意路徑是
/webhook/不是/webhook-test/) - 把 Production URL 貼到外部服務的 Webhook 設定裡
HTTPS 需求
大部分外部服務(Stripe、LINE、Shopify 等)都要求 Webhook URL 必須是 HTTPS。
如果你是自架 n8n,你需要先搞定 SSL 憑證。可以參考 n8n HTTPS 設定教學,用 Nginx + Let’s Encrypt 就搞定了。
如果你用 n8n Cloud,HTTPS 已經幫你處理好了,不用擔心。
常見串接場景
場景 1:表單送出 → 自動處理
流程:Google Form / Typeform / 自製表單 → Webhook → n8n 處理
設定方式:
- 在 n8n 建立 Webhook 節點
- 表單設定「送出後打 Webhook URL」
- n8n 收到資料後,可以寫入 Google Sheet、寄信、通知 Slack 等
適合:報名表、聯絡表單、問卷調查。
場景 2:Stripe 付款通知
流程:客戶付款 → Stripe 打 Webhook → n8n 處理訂單
設定方式:
- Stripe Dashboard → Developers → Webhooks → 加入端點
- 貼上 n8n 的 Production URL
- 選擇要監聽的事件(例如
checkout.session.completed) - n8n 收到後自動開通服務、寄確認信
實測過的,放心用。Stripe 的 Webhook 回傳資料比較巢狀,記得用 Expression 正確取值。
場景 3:LINE Messaging API
流程:使用者在 LINE 傳訊息 → LINE 打 Webhook → n8n 處理 → 回覆
設定方式:
- LINE Developers Console → 設定 Webhook URL(用 n8n Production URL)
- 打開「Use webhook」
- n8n 收到訊息後,用 HTTP Request 節點呼叫 LINE Reply API 回覆
適合:LINE Bot 自動回覆、客服機器人。
場景 4:GitHub / GitLab CI/CD 通知
流程:程式碼推送 → GitHub 打 Webhook → n8n 通知團隊
適合:部署通知、PR Review 提醒。
除錯 SOP
Webhook 收不到資料?照這個順序檢查:
Step 1:確認 URL 是對的
- 開發測試中 → 用 Test URL,按「Listen for Test Event」
- 已上線 → 用 Production URL,確認 Workflow 開關是綠色
Step 2:確認 HTTP Method 一致
你的 Webhook 節點設定的是 POST,但對方用 GET 來打?那當然收不到。去對方的文件確認它用什麼 Method。
Step 3:確認網路可達
自架 n8n 的話,確認你的伺服器有對外開放,防火牆沒擋到。
快速測試:用 Reqbin 或 curl 打你的 Webhook URL,看 n8n 有沒有收到。
curl -X POST https://你的n8n/webhook-test/my-webhook \
-H "Content-Type: application/json" \
-d '{"test": "hello"}'
Step 4:檢查回傳格式
有些服務用 application/x-www-form-urlencoded 而不是 JSON。在 Webhook 節點的 Options 裡可以設定「Raw Body」來接收原始資料。
Step 5:看 n8n 執行紀錄
到 n8n 的 Executions 頁面,看有沒有執行紀錄。如果有紀錄但失敗,點進去看錯誤訊息。
先跑起來再說。先用 Test URL + curl 確認能通,再接正式服務。
安全性設定
Webhook 等於開了一個對外的入口,一定要做好安全防護。
方法 1:Header Authentication
在 Webhook 節點設定 Authentication → Header Auth,設定一組 Header name 和 Value。對方打 Webhook 的時候要帶上這個 Header 才會被接受。
方法 2:IP 白名單
如果你知道對方的 IP,可以在 Nginx 層做 IP 白名單限制。
方法 3:Webhook Secret / Signature 驗證
像 Stripe、GitHub 這種服務會在 Header 帶一個 Signature,你可以在 n8n 裡面用 Code 節點驗證:
const crypto = require('crypto');
const signature = $input.first().headers['stripe-signature'];
// 用你的 endpoint secret 驗證
方法 4:限制 HTTP Method
只開放需要的 Method(通常是 POST),不要開放 GET,避免被瀏覽器隨便觸發。
進階設定
Response Mode 怎麼選
| 模式 | 說明 | 適用場景 |
|---|---|---|
| Immediately | 收到就馬上回 200 | 對方有 timeout 限制時(例如 LINE 要求 1 秒內回應) |
| When Last Node Finishes | 等 workflow 跑完再回 | 需要回傳處理結果給對方時 |
| Using ‘Respond to Webhook’ Node | 自己控制回什麼 | 需要自訂回應內容時 |
多個 Webhook 並存
一個 Workflow 只能有一個 Webhook Trigger,但你可以開多個 Workflow,各自有不同的 Webhook URL。或者用一個 Webhook 接所有請求,再用 IF 節點根據內容分流。
延伸閱讀
- n8n Expression 語法速查表 — Webhook 收到資料後,用 Expression 取值
- n8n HTTPS 設定教學 — 自架 n8n 設定 SSL
- n8n 常見錯誤 Top 10 — Webhook 相關的錯誤排除
- n8n Expression 與進階技巧大全 — 所有進階技巧總整理
外部參考:
想要現成的 Webhook workflow 模板? 每週限量包裡面有 Webhook 串接常用場景的模板,拿回去改一改就能用。
FAQ
Webhook URL 可以自訂完整網址嗎?
不行,前半段是你的 n8n 伺服器網址,你只能自訂 Path 的部分。如果你想要漂亮的網址,可以用 Nginx 設定 reverse proxy 轉發。
Webhook 有 timeout 嗎?
有。如果你用 Response Mode 是「When Last Node Finishes」,但 workflow 跑太久,對方可能會 timeout。建議複雜的處理改用 Immediately 模式,先回 200,背景慢慢跑。
一個 Webhook 可以同時接多個來源嗎?
可以。Webhook URL 不限制誰來打,任何人只要有這個 URL 就能打。所以安全性設定很重要——一定要加 Authentication 或 Signature 驗證。