Webhook 本質上就是 「由事件主動觸發的 HTTP 請求」。
它是一種 被動等待、主動推送 的機制。
GET
一次)。➡️ 所以可以理解成:Webhook 就是「事件通知用的 URL」。
https://yourdomain.com/webhook/...
)。HTTP POST
把資料送到這個 URL。想像一下:
Webhook 就像是這個「服務生主動通知」的機制。
表單提交
POST
一筆資料到你的 Webhook。支付系統通知
程式碼事件
物聯網(IoT)
n8n start
。http://localhost:5678
並登入 editor。Workflows → New
,命名 Day16_Webhook_Demo
,按 Save。畫布點 +
→ 搜尋 Webhook
→ 新增。
Webhook node 裡的重點設定:
HTTP Method:通常選 POST
(也可 GET/PUT)。
Path:自訂(例如 form-submit
或留預設的 UUID)。
Test URL
。Authentication:預設 None(測試用)。生產請改為 API Key / HMAC 驗證等。
Respond(或 Response Mode):
Respond Immediately
(收到就回 200,之後 workflow 繼續執行)Wait for Execution
或 Respond when finished
(會等 workflow 完成再把結果回傳)點 Save → 然後按 Listen for test event(或類似按鈕)讓 node 進入「正在監聽」狀態。
Listen for test event
只有在 editor 開啟(你看到編輯畫面)時才會接到測試事件;生產要 Activate 並使用 production webhook path。Function
(改名 Handle Request
)。name
加上 ✅):// 範例:把收到的資料處理並回傳一個簡單物件
return items.map(item => {
const body = item.json; // webhook 的 body / 欄位都在 item.json
// 簡單驗證
if(!body.name){
return { json: { ok:false, error: 'missing name', raw: body } };
}
return { json: { ok:true, message: `${body.name} ✅ 已收到`, raw: body } };
});
在 Webhook node 頁面複製 Test URL,假設是:
http://localhost:5678/webhook-test/form-submit
在 Terminal 執行(POST 範例):
curl -X POST "http://localhost:5678/webhook-test/form-submit" \
-H "Content-Type: application/json" \
-d '{"name":"Alice","email":"alice@example.com"}'
Respond Immediately
,curl 會收到 200(或預設回應);若是 Wait for Execution
,則會收到 Function 回傳的 JSON。Executions
。console.log
(僅在 terminal 有輸出)或把資料寫到 Google Sheets / Email。