iT邦幫忙

2025 iThome 鐵人賽

DAY 16
0
DevOps

30 天自動化高手養成:玩轉 n8n 工作流系列 第 16

Day 16:使用 Webhook 作為觸發器

  • 分享至 

  • xImage
  •  

在前 15 天的教學中,我們大多透過內建的 Trigger Node(像是 Cron、Google Sheet、RSS 等)去啟動工作流。但在實務上,Webhook 是最靈活、最強大的觸發方式之一,可以讓外部系統「主動通知」n8n 來執行後續流程。

今天我們就來看看如何在 n8n 中使用 Webhook Node,並透過一個簡單的例子理解它的應用場景。


什麼是 Webhook?

Webhook 的概念其實很簡單:

  • API:我們主動去拉資料(pull)。
  • Webhook:外部事件發生時,它主動「推」資料給我們(push)。

舉例:

  • Stripe 收到付款後,會發送 Webhook 通知到指定的 URL。
  • GitHub Commit 時,可以觸發 Webhook 去通知 CI/CD Pipeline。
  • Line Bot 收到訊息時,會丟一個 Webhook 到我們的伺服器。

在 n8n 中,Webhook Node 會自動幫我們產生一個網址,只要外部服務呼叫這個 URL,就能觸發工作流。


Step 1:建立 Webhook Workflow

  1. 打開 n8n,新增一個 Webhook Node
  2. 在設定中選擇 HTTP Method(常見為 POST)。
  3. 複製 Test URL,這就是一個暫時的測試連結。

⚠️ 注意:

  • Test URL 只有在 Workflow 開啟編輯模式下才會有效。
  • 正式啟用後,需使用 Production URL,這才是持久可用的網址。

https://ithelp.ithome.com.tw/upload/images/20250930/20168203YWxuaC9T9W.png


Step 2:測試 Webhook

  1. 開啟一個工具(例如 Postman 或 curl),向 Webhook 發送請求:
curl -X POST https://<你的-n8n-網址>/webhook-test/xxxx \
  -H "Content-Type: application/json" \
  -d '{"user":"Shu","message":"Hello Webhook!"}'
  1. 回到 n8n,Webhook Node 會顯示收到的 JSON。
  2. 我們可以透過後續的 Function NodeSet Node 去處理這些資料。

https://ithelp.ithome.com.tw/upload/images/20250930/20168203T7OI2QmYOo.png
https://ithelp.ithome.com.tw/upload/images/20250930/20168203fGkl3abFyt.png


Step 3:實例應用 — Google Form 自動通知

假設我們有一個 Google Form,想要在有人填寫後自動傳送 Discord 通知。流程如下:

  1. Google Form → 設定「表單回覆時」呼叫 Apps Script。
  2. Apps Script 透過 UrlFetchApp.fetch,將表單內容以 POST 方式傳送到 n8n Webhook URL。
  3. n8n 收到資料後,透過 Discord Node 發送訊息。

範例 Apps Script:

function onFormSubmit(e) {
  var url = "https://<你的-n8n-網址>/webhook/xxxx";
  var payload = {
    name: e.namedValues["姓名"][0],
    email: e.namedValues["Email"][0],
    feedback: e.namedValues["回饋內容"][0]
  };
  
  var options = {
    method: "post",
    contentType: "application/json",
    payload: JSON.stringify(payload)
  };
  
  UrlFetchApp.fetch(url, options);
}

這樣,每當有人提交表單,就會立即觸發 n8n,實現「即時自動化」。


Step 4:Webhook 的進階應用技巧

  • 驗證來源:透過 secret 或簽章驗證(如 Stripe HMAC)確保 Webhook 不被濫用。
  • 回應控制:Webhook Node 可以設定回應內容,例如回覆 200 OK 或自訂 JSON。
  • 多路徑處理:結合 Switch / IF Node,可以根據不同事件類型(例如 event=payment_succeeded)做不同處理。
  • 排程重試:如果外部系統支援重送,n8n 需要正確回覆,否則可能會造成無限重試。

今天的重點整理

  1. Webhook = 外部主動通知,與 API 請求剛好相反。
  2. n8n Webhook Node 提供 Test URL 與 Production URL,測試與正式使用要分清楚。
  3. 實例:Google Form + Webhook + Discord,即可做出「即時回饋通知」。
  4. Webhook 常用於 Stripe、GitHub、Line Bot、各種 SaaS 的整合。

👉 明天的 Day 17,我們會延伸學習 HTTP Request 串接第三方 API,讓你能不只被動接收 Webhook,也能主動向外部服務互動,打造更完整的自動化流程。


上一篇
Day 15:Gemini AI × 自動化客戶回饋分析與即時警報
下一篇
Day 17:HTTP Request 串接第三方 API
系列文
30 天自動化高手養成:玩轉 n8n 工作流21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言