n8n webhook n8n webhook 教學 webhook 設定 n8n trigger 自動化

n8n Webhook 完全攻略:設定、測試、除錯一篇搞定

完整教你 n8n Webhook 節點怎麼用,包含 Test URL 和 Production URL 的差異、HTTPS 設定、常見串接場景、除錯 SOP,看完就能接外部資料進 workflow。

N8NMarket 2026年3月29日 14 分鐘閱讀

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 URLProduction URL

這兩個差異超大,下面詳細說。

Test URL vs Production URL(重點!)

這是新手最容易搞混的地方,搞錯了你會一直覺得「為什麼 Webhook 收不到?」

Test URLProduction 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 的正確步驟

  1. 用 Test URL 測試到滿意
  2. 把 Workflow 右上角的開關打開(變成綠色)
  3. 複製 Production URL(注意路徑是 /webhook/ 不是 /webhook-test/
  4. 把 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 處理

設定方式:

  1. 在 n8n 建立 Webhook 節點
  2. 表單設定「送出後打 Webhook URL」
  3. n8n 收到資料後,可以寫入 Google Sheet、寄信、通知 Slack 等

適合:報名表、聯絡表單、問卷調查。

場景 2:Stripe 付款通知

流程:客戶付款 → Stripe 打 Webhook → n8n 處理訂單

設定方式:

  1. Stripe Dashboard → Developers → Webhooks → 加入端點
  2. 貼上 n8n 的 Production URL
  3. 選擇要監聽的事件(例如 checkout.session.completed
  4. n8n 收到後自動開通服務、寄確認信

實測過的,放心用。Stripe 的 Webhook 回傳資料比較巢狀,記得用 Expression 正確取值。

場景 3:LINE Messaging API

流程:使用者在 LINE 傳訊息 → LINE 打 Webhook → n8n 處理 → 回覆

設定方式:

  1. LINE Developers Console → 設定 Webhook URL(用 n8n Production URL)
  2. 打開「Use webhook」
  3. 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 的話,確認你的伺服器有對外開放,防火牆沒擋到。

快速測試:用 Reqbincurl 打你的 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 節點根據內容分流。

延伸閱讀

外部參考:


想要現成的 Webhook workflow 模板? 每週限量包裡面有 Webhook 串接常用場景的模板,拿回去改一改就能用。

本週限量包 >> n8nstart.cc/weekly


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 驗證。