iT邦幫忙

2025 iThome 鐵人賽

DAY 26
0
AI & Data

進擊的 n8n系列 第 26

Day 26:n8n 自動化實戰 - Webhook 入門,輕鬆串接網頁表單與 Google Sheet

  • 分享至 

  • xImage
  •  

我們已經成功將 n8n 部署在 Google Cloud Run 上,擁有一個穩定且可擴展的自動化平台。今天,我們要來玩 n8n 最強大的功能之一:Webhook。Webhook 就像是應用程式之間的專屬電話線,當某個事件發生時(例如有人填寫了表單),它會立即撥打電話通知 n8n,觸發後續的自動化流程。

我們將實作一個非常經典且實用的情境:「當使用者提交網頁表單後,自動將資料寫入指定的 Google Sheet。」

什麼是 Webhook?

簡單來說,Webhook 是一個由事件驅動的 HTTP 回呼 (Callback)。

  1. 你提供一個獨特的 URL 給某個服務 (例如:表單系統、金流服務、GitHub)。
  2. 當該服務發生特定事件時 (例如:新表單提交、付款成功、程式碼被推送)。
  3. 該服務會自動向你提供的 URL 發送一個 HTTP POST 請求,並夾帶相關的資料 (通常是 JSON 格式)。
  4. n8n 的 Webhook 節點 就是用來接收這個請求,並啟動工作流程的觸發器。

這比傳統的 API 輪詢 (Polling) 方式更有效率,因為 n8n 不需一直去問:「有新資料了嗎?」,而是被動地等待通知。

實作流程

我們的目標是建立一個 n8n 工作流,它會:

  1. 產生一個 Webhook URL
  2. 接收來自 HTML 表單的 POST 請求
  3. 解析表單資料 (姓名、Email)
  4. 將資料新增到 Google Sheet 的新一列

步驟 1:建立 n8n 工作流與 Webhook 觸發器

  1. 登入你的 n8n 介面,建立一個新的工作流 (Workflow)。如下圖 :
    pic 1
  2. 點擊 + 新增節點,選擇 Webhook 作為觸發器 (Trigger)。
    pic 2
  3. 在 Webhook 節點的設定中,你會看到:
    • HTTP Method: 選擇 POST
    • Webhook URLs: 這裡有 TestProduction 兩種 URL。開發時我們先用 Test URL
      pic 3
  4. 複製 Test URL
  5. 點擊左邊畫面的 Listen For Test Event,n8n 就會開始等待接收測試資料。
    pic 4

步驟 2:建立一個簡單的 HTML 表單

我們需要一個前端頁面來發送資料。你可以建立一個簡單的 index.html 檔案,內容如下。記得將 YOUR_WEBHOOK_URL 替換成上一步複製的 n8n Test URL。

\<\!DOCTYPE html\>  
\<html lang="en"\>  
\<head\>  
    \<meta charset="UTF-8"\>  
    \<title\>n8n Webhook 表單測試\</title\>  
\</head\>  
\<body\>  
    \<h1\>聯絡我們\</h1\>  
    \<form action="YOUR\_WEBHOOK\_URL" method="POST"\>  
        \<label for="name"\>姓名:\</label\>\<br\>  
        \<input type="text" id="name" name="name" required\>\<br\>\<br\>

        \<label for="email"\>Email:\</label\>\<br\>  
        \<input type="email" id="email" name="email" required\>\<br\>\<br\>

        \<button type="submit"\>提交\</button\>  
    \</form\>  
\</body\>  
\</html\>

步驟 3:發送測試資料並驗證

  1. 用瀏覽器打開剛剛建立的 index.html 檔案。
  2. 填寫姓名和 Email,然後點擊「提交」。
  3. 回到 n8n 介面,你會發現 Webhook 節點已經成功接收到資料了!它會以 JSON 格式顯示你剛剛提交的內容。
{  
  "body": {  
    "name": "陳小明",  
    "email": "test@example.com"  
  }  
}

步驟 4:設定 Google Sheets 節點

現在我們要把收到的資料寫入 Google Sheet。

  1. 點擊 Webhook 節點旁邊的 +,搜尋並新增 Google Sheets 節點。
  2. 認證 (Credential):如果是第一次使用,你需要授權 n8n 存取你的 Google 帳號。點擊 Create New 並依照指示完成 OAuth 認證流程。
  3. Resource: 選擇 Row
  4. Operation: 選擇 Append (新增一列)。
  5. Sheet ID: 填入你的 Google Sheet ID。
    • 如何找到 Sheet ID?打開你的 Google Sheet,網址會像這樣:https://docs.google.com/spreadsheets/d/THIS_IS_YOUR_SHEET_ID/edit,複製中間那段亂碼。
  6. Range: 填寫工作表名稱,例如 工作表1
  7. Columns: 這裡我們要用 表達式 (Expression) 來動態地從 Webhook 抓取資料。
    • 點擊 Add Column
    • Key: 輸入 Google Sheet 上的欄位標題,例如 姓名
    • Value: 點擊旁邊的 </> 圖示,從 Nodes > Webhook > Output Data > JSON > body 中,拖曳 name 欄位過來。它的值會是 {{ $json.body.name }}
    • 再新增一欄 Email,值設為 {{ $json.body.email }}

步驟 5:啟動並測試完整流程

  1. 點擊 Google Sheets 節點的 Execute Node,n8n 會用上一步收到的測試資料來執行寫入操作。檢查你的 Google Sheet,應該會看到一筆新資料!
  2. 確認一切正常後,回到 Webhook 節點,將 URL 從 Test 切換到 Production,並複製 Production URL
  3. 更新 index.html 檔案中的 action 網址為新的 Production URL
  4. 最後,點擊畫面右上角的 Active 開關,正式啟動你的工作流。

現在,任何人只要透過你的網頁表單提交資料,都會即時地、自動地被記錄到 Google Sheet 中!

結語

今天我們學會了如何使用 Webhook 這個強大的觸發器,實現了從前端到後端再到資料庫的完整自動化流程。這個模式可以應用在非常多的地方,例如:

  • CRM 系統的潛在客戶表單。
  • 活動報名系統。
  • 簡單的意見回饋收集。

明天,我們將探索另一種常見的觸發器:排程觸發 (Schedule Trigger),讓 n8n 在固定的時間自動為我們執行任務!


上一篇
Day 25:來總結一下吧!n8n on Google Cloud 各服務總整理
下一篇
Day 27:n8n 自動化實戰 - 用排程觸發器,每日早上九點自動寄送 Email 報表
系列文
進擊的 n8n29
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言