n8n Webhook 完全指南:看完就會!用一個實例教你如何輕鬆接收外部資料

n8n webhook

你是不是想過,如果 LINE Pay 付款完成、GitHub 有人提交程式碼、或是 Stripe 收到一筆新訂單時,能「自動」觸發你在 n8n 設定好的後續流程(例如記帳、發送通知),那該有多好?你不需要每隔五分鐘就去檢查一次,而是讓這些事件「主動」來通知你。

這種「主動通知」的魔法,就是 Webhook

當我剛開始學 n8n 時,Webhook 這個詞也讓我困惑了好一陣子,它聽起來很技術、很抽象。但相信我,一旦你搞懂它的運作原理,它將會是你自動化武器庫中最強大、最常用的一把鑰匙。這篇完全指南將用最白話的比喻和一個超簡單的實作範例,帶你從零到一掌握 n8n Webhook,讓你真正打通 n8n 與外部世界的即時溝通管道。

什麼是 Webhook?跟 API 有什麼不一樣?

在技術世界裡,讓兩個不同的服務交換資料,最常見的方式是 API (應用程式介面)。但傳統的 API 呼叫,就像是你每隔一段時間就要親自去郵局問:「嘿!請問我有新信件嗎?」這種行為我們稱為「輪詢 (Polling)」。如果沒信,你就白跑一趟;如果有信,你可能也沒辦法在第一時間收到。這不僅沒效率,也很浪費資源。

而 Webhook 則徹底改變了遊戲規則。

Webhook 就像是郵差在你家門口裝了一個專屬的智慧門鈴。 你不用再自己跑郵局,只要有新信件一到,郵差就會立刻按下這個門鈴,你的 n8n 就會馬上知道:「有新資料進來了!該開始工作了!」

  • API (輪詢): 你的 n8n 主動去問外部服務:「有新資料嗎?」
  • Webhook (推送): 外部服務發生事件後,主動把資料「推送」到你的 n8n。

這個根本性的差異,讓 Webhook 成為實現「即時 (Real-time)」自動化的關鍵。

為什麼 n8n Webhook 這麼重要?

在 n8n 的世界裡,Webhook 節點不僅僅是一個普通的觸發器,它更是整個平台彈性的基石。學會使用它,你將解鎖以下幾個超能力:

  • 真正的即時性: 不再需要設定 Cron 節點每五分鐘、每小時跑一次。事件發生的當下,你的工作流程就立刻被觸發,毫秒不差。
  • 極致的資源效率: 對於自架設的使用者來說,用 Webhook 取代輪詢,可以大幅減少不必要的網路請求和伺服器負載,讓你的主機資源用在刀口上。
  • 超強的相容性: 現今絕大多數的網路服務(我們稱為 SaaS),只要它們支援事件通知,幾乎都提供 Webhook 功能。從開發者工具 (GitHub, GitLab)、支付金流 (Stripe, PayPal),到物聯網裝置 (IFTTT),甚至是 LINE Notify 的訊息推播,全都可以透過 Webhook 與 n8n 完美整合。

Step-by-Step 教學:建立你的第一個 n8n Webhook 流程

紙上談兵結束,我們來動手實作!接下來的教學,將帶你建立一個最基礎的 Webhook 流程,並用一個超簡單的方式測試它,讓你親眼見證資料被「推送」進來的神奇時刻。

步驟 1:建立一個 Webhook 節點

首先,在你的 n8n 工作流程畫布中,點擊 + 按鈕,在搜尋框中輸入 Webhook,然後點擊選取它。一個全新的 Webhook 節點就會出現在你的畫布上,這就是你接收外部資料的入口。

步驟 2:取得你的專屬 Webhook URL

點開你剛剛建立的 Webhook 節點,你會在右邊的設定面板中看到「Webhook URLs」這個區塊。這裡有兩個非常重要的 URL:

  • Test URL: 用於開發與測試階段的臨時網址。你必須點擊節點面板右下角的「Listen For Test Event」,n8n 才會開始監聽這個網址。
  • Production URL: 當你的整個工作流程都開發完成,並正式啟用 (Activate) 後,應該使用這個網址。它會 24 小時持續在背景監聽。

新手注意: 現在,請複製你的「Test URL」,我們將用它來進行測試。這個 URL 是獨一無二的,並且包含了安全憑證,千萬不要隨意洩漏給他人。

n8n webhook

步驟 3:手動觸發 Webhook 並傳送資料

要怎麼「觸發」這個網址呢?你需要一個能發送網路請求的工具。這裡我們使用最簡單、最通用的 curl 指令行工具。(Windows 和 macOS 內建都有,可以直接在終端機或命令提示字元中使用)

打開你的終端機,貼上以下指令,並將 YOUR_TEST_WEBHOOK_URL 替換成你剛剛複製的 Test URL:

Bash

curl -X POST -H "Content-Type: application/json" -d '{"name":"Welly", "message":"哈囉,我的第一個Webhook成功了!"}' YOUR_TEST_WEBHOOK_URL

指令解釋:

  • curl: 執行指令。
  • -X POST: 指定使用 POST 方法發送請求(這是 Webhook 最常用的方法)。
  • -H "Content-Type: application/json": 告訴接收方,我們發送的資料格式是 JSON。
  • -d '...': -d 後面接的就是我們要傳送的資料內容。這裡我們傳送了一個包含 namemessage 兩個欄位的 JSON 物件。

按下 Enter 執行後,你會看到終端機顯示 {"message":"Workflow received webhook data"}。同時,回到 n8n 的介面,你會驚喜地發現,Webhook 節點已經成功接收到你剛剛發送的資料了!

步驟 4:串接後續節點,處理接收到的資料

接收到資料只是第一步,真正的威力在於如何「使用」這些資料。

  1. 在 Webhook 節點後面再接一個 Set 節點。
  2. 點開 Set 節點,新增一個欄位,例如命名為 receivedMessage
  3. 在 Value 欄位中,我們要用 n8n 的表達式 (Expression) 來抓取 Webhook 傳進來的資料。點擊旁邊的「f(x)」按鈕,輸入:{{ $json.body.message }}
  4. 執行 Set 節點,你會看到它成功地將 “哈囉,我的第一個Webhook成功了!” 這段訊息提取出來了!

{{ $json.body.message }} 這個表達式的意思是:

  • $json: 代表從上一個節點傳來的 JSON 資料。
  • body: 代表請求的主體內容。
  • message: 代表我們在 JSON 物件中自訂的 message 欄位。

恭喜你!你已經完成了從接收到處理 Webhook 資料的整個流程。現在,你可以把 Set 節點換成任何你想要的節點,例如 TelegramGoogle SheetsNotion,把接收到的訊息發送到群組或寫入資料庫,實現真正的自動化。

n8n Webhook 進階技巧與注意事項

當你熟悉基礎操作後,可以了解以下幾點,讓你的 Webhook 應用更安全、更強大:

  • 安全設定: 在 Webhook 節點的設定中,可以選擇「Authentication (驗證)」。例如設定為 Header Auth,並要求外部服務在發送請求時,必須在 Header 中夾帶一組你預設的密碼,n8n 才會處理該請求,這能有效防止你的 Webhook 被惡意攻擊。
  • GET vs. POST: Webhook 預設使用 POST 方法來接收包含資料主體的請求。但你也可以將其設定為 GET,用來接收URL 參數中的資料,適合用在一些簡單的觸發情境。
  • 處理檔案: Webhook 不僅能收文字資料,也能接收檔案!你可以設定節點的 Binary Data 屬性,來處理外部服務上傳的圖片、PDF 等檔案。
  • 啟用流程: 再次提醒,當你的工作流程開發完成後,記得點擊右上角的 Active 開關將其啟用,並將外部服務中設定的 URL 從 Test URL 更換為 Production URL
  • Authentication (驗證): 你的 Webhook URL 是公開的,任何人知道地址都能來按門鈴。為了安全,你可以設定「驗證」。n8n 支援多種驗證方式,最簡單的是 Header Auth。你可以在 n8n 這邊設定一個密碼(比如 X-N8N-API-KEY),然後要求你的「朋友」在按門鈴時,必須在 HTTP Header 裡出示這個密碼,n8n 確認無誤後才會開門。這能有效防止垃圾訊息或惡意攻擊。

Webhook 沒反應?常見除錯(Debug)懶人包

滿心期待地送出測試,n8n 卻一點反應都沒有?別慌,這是每個人的必經之路。遇到問題時,從以下幾點檢查:

  1. URL 貼錯了嗎? 是不是把 Production URL 貼到還沒啟用的工作流了?或是複製時少一個字?
  2. 監聽模式開了嗎? 有沒有先在 n8n 點下「Listen for Test Event」?
  3. HTTP 方法對嗎? 外部服務是用 POST 送出,但你的 Webhook 節點不小心設成只收 GET?
  4. 資料格式問題? 對方送的是 Form-Data,但你預期的是 JSON?檢查一下 Webhook 節點的 Response Mode 設定。
  5. 自架設的防火牆擋住了? 如果你是 Self-Hosted,檢查一下你的伺服器防火牆或雲端平台的安全群組,有沒有開放對應的 Port 讓外部流量進來。
n8n webhook

結語

Webhook 是打通 n8n 與真實世界事件的橋樑,是從「排程自動化」邁向「即時自動化」的關鍵一步。它看似複雜,但正如本篇教學所示,其核心概念與操作都非常直觀。

今天你學會的不僅僅是一個節點的操作,而是一種全新的思維方式。未來當你使用任何網路服務時,不妨去它的設定裡找找看,有沒有「Webhook」這個選項。一旦發現,就代表你又有了一個可以串接到 n8n、打造即時自動化流程的新機會。現在就動手試試看吧,你會愛上這種資料自動流進來的感覺!

延伸閱讀:自動化 A-Z 全攻略:踏入 n8n、Zapier 前必懂的 19 個網路與 API 核心名詞

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

返回頂端