n8n 實戰手冊:Webhook、Google Sheets、OpenAI¶
這份筆記接在《n8n 新手入門完整教學》後面。前一份教你核心觀念,這一份直接帶你做真正能用的 automation。
想一想¶
實戰不是把節點拖上畫布就結束。真正的實戰,是你能把一個模糊需求拆成幾個穩定步驟。比如「我想自動整理表單」這句話還太模糊;你要繼續問:表單從哪裡送進來?欄位有哪些?哪些欄位一定要有?資料要寫到 Google Sheets 哪些欄?如果資料不完整,要回覆錯誤還是先存草稿?
這就是 n8n 的實戰思維。每個 workflow 都可以先拆成:入口、整理、判斷、輸出、除錯。Webhook 是入口,Set 或 Code 是整理,IF 或 Switch 是判斷,Google Sheets、Email、Slack 是輸出。你只要先用這個架構看問題,就不會被節點名稱牽著走。後面每個專案都不是孤立範例,而是在反覆練同一個能力:把一件真實工作拆成可執行流程。
本篇怎麼讀¶
- 學習目標:從觀念走到實作,做出可以展示與改造的 workflow
- 先修需求:至少看過 02 n8n 新手入門完整教學
- 讀完後你應該能:做出 webhook 寫表格、定時抓 API、最小 AI 摘要流程
目錄¶
- 實戰前的思考方式
- 專案一:Webhook 收單資料並寫入 Google Sheets
- 專案二:定時抓 API 並整理成報表
- 專案三:Webhook 串 OpenAI 自動摘要
- OpenAI 在 n8n 裡的常見用法
- Google Sheets 節點的實務重點
- 實戰除錯流程
- 你之後應該怎麼自己設計 workflow
- Appendix. 可直接複製的測試資料
1. 實戰前的思考方式¶
很多人學 n8n 會卡住,不是因為節點不會用,而是做 workflow 時沒有先拆問題。
你在開始前應該先回答這 5 個問題: - 流程怎麼開始 - 資料從哪裡來 - 我要處理哪些欄位 - 最後結果要送去哪裡 - 失敗時怎麼知道
把這 5 件事寫清楚,workflow 就比較不會亂。
你可以用這個模板設計任何流程:
- Trigger 是什麼
- Input 資料長什麼樣子
- 中間需要哪些處理
- Output 要寫去哪裡
- 要不要回應呼叫方或發通知
2. 專案一:Webhook 收單資料並寫入 Google Sheets¶
這是最適合新手的第一個實戰專案。
2.1 目標¶
建立一個 workflow,讓外部系統送資料到 webhook,n8n 收到後整理欄位,再寫入 Google Sheets。
2.2 你會學到什麼¶
- Webhook 收資料
- Set 整理欄位
- Google Sheets 寫入資料
- Respond to Webhook 回應成功訊息
2.3 流程結構¶
WebhookSetGoogle SheetsRespond to Webhook
2.4 範例輸入資料¶
假設外部系統送來:
{
"name": "Tung",
"email": "tung@example.com",
"course": "n8n Beginner",
"amount": 1200,
"paid": true
}
2.5 建立 Webhook¶
設定:
- Method: POST
- Path: course-order
測試時的 curl:
curl -X POST 'https://your-n8n-domain/webhook-test/course-order' \
-H 'Content-Type: application/json' \
-d '{
"name": "Tung",
"email": "tung@example.com",
"course": "n8n Beginner",
"amount": 1200,
"paid": true
}'
2.6 用 Set 整理欄位¶
如果 webhook output 在 body 底下,Set 可以建立:
- order_name = {{$json.body.name}}
- order_email = {{$json.body.email}}
- course_name = {{$json.body.course}}
- order_amount = {{$json.body.amount}}
- payment_status = {{$json.body.paid ? "paid" : "unpaid"}}
- created_at = {{$now}}
這一步的目的,是把原始資料整理成你表格真正要的欄位。
2.7 Google Sheets 寫入¶
假設你的試算表欄位是:
- created_at
- order_name
- order_email
- course_name
- order_amount
- payment_status
在 Google Sheets node 裡,將這些欄位對應過去。
2.8 Respond to Webhook¶
回應:
{
"ok": true,
"message": "Order saved"
}
2.9 這個專案的真正重點¶
不是把資料寫進表格而已,而是學會這個模式:
外部資料 -> 整理欄位 -> 寫入目的地 -> 回傳結果
這是很多商業自動化的基本骨架。
2.10 變體案例¶
你可以把這個專案換成很多場景: - 活動報名表 -> Google Sheets - 客戶詢問表單 -> Notion - 訂單通知 -> Airtable - 付款成功事件 -> CRM
你會發現骨架幾乎不變,變的只是欄位與目的地。
3. 專案二:定時抓 API 並整理成報表¶
這個專案教你做 schedule-based automation。
3.1 目標¶
每天固定時間抓外部 API,整理資料後寫入 Google Sheets 或發送通知。
3.2 流程結構¶
Schedule TriggerHTTP RequestSetGoogle Sheets或Slack
3.3 Schedule Trigger 設定¶
例子: - 每天上午 9:00 執行一次
3.4 HTTP Request¶
你可以先選一個公開 API 練習,例如任何會回 JSON 的測試 API。
假設回傳:
{
"source": "demo-api",
"status": "ok",
"count": 42,
"updatedAt": "2026-04-10T09:00:00Z"
}
3.5 Set 整理欄位¶
report_source={{$json.source}}report_status={{$json.status}}report_count={{$json.count}}report_time={{$json.updatedAt}}run_time={{$now}}
3.6 這類 workflow 的核心觀念¶
這種流程和 webhook 不同,重點不是等資料進來,而是主動出去抓資料。
所以你的設計思維要變成: - 什麼時間跑 - 抓什麼 API - 取哪些欄位 - 最後怎麼呈現
3.7 可以擴充的方向¶
- API 異常時發 Slack 警告
- 只在
count > 0時才寫入表格 - 把每天結果累積成歷史資料
3.8 常見實務場景¶
- 每天抓銷售數據做晨報
- 每小時抓庫存 API,低庫存就通知
- 每天抓網站表現資料,存成報表歷史
4. 專案三:Webhook 串 OpenAI 自動摘要¶
這是一個很實用的 AI workflow 範例。
4.1 目標¶
收到一段文字後,用 OpenAI 生成摘要,再回傳結果或寫進 Notion。
4.2 流程結構¶
WebhookSetHTTP Request或 OpenAI nodeSetRespond to Webhook
4.3 範例輸入¶
{
"title": "Meeting Notes",
"content": "今天討論了三件事:第一,新的 landing page 需要在下週三前完成;第二,資料同步流程目前會漏單;第三,客服希望增加自動回覆。"
}
4.4 先整理 prompt 用資料¶
先用 Set 建立:
- title = {{$json.body.title}}
- content = {{$json.body.content}}
- prompt = 請把以下內容整理成 3 點摘要:{{$json.body.content}}
4.5 呼叫 OpenAI¶
如果你用 HTTP Request 打 OpenAI 類型 API,本質上就是:
- 設定 API endpoint
- 帶認證
- 把 prompt 放進 body
- 取得模型回傳結果
4.6 整理輸出¶
回來後再用 Set 整理:
- summary_title = {{$node["Set"].json.title}}
- summary_result = 模型輸出的摘要內容
- processed_at = {{$now}}
4.7 回應給呼叫方¶
回傳:
{
"ok": true,
"summary": "這裡放模型摘要結果"
}
4.8 這個專案教你的不是 AI,很重要¶
真正重要的是你學會: - 把外部輸入轉成 prompt - 讓模型輸出進入 workflow - 再把模型輸出送到下一個系統
AI 在 n8n 裡不是魔法,它只是 workflow 裡的一個資料處理步驟。
4.9 你可以立刻改做的案例¶
- 客服文字 -> 摘要後發 Slack
- 會議內容 -> 摘要後寫 Notion
- 表單敘述 -> 抽出重點欄位後寫入 CRM
5. OpenAI 在 n8n 裡的常見用法¶
5.1 最常見的 4 種任務¶
- 摘要
- 分類
- 資訊抽取
- 改寫或生成內容
5.2 最適合放進 workflow 的工作¶
不是所有 AI 任務都適合自動化。最適合的是: - 有穩定輸入格式 - 有明確輸出格式 - 可以被下一步使用
例如: - 把客服訊息分類 - 把會議紀錄摘要成重點 - 從文字中抽出姓名、Email、日期 - 把長文縮成適合 Slack 的通知內容
5.3 Prompt 設計原則¶
在 n8n 裡,prompt 要比聊天時更結構化。
建議格式: 1. 說明任務 2. 定義輸出格式 3. 放入資料內容
例如:
請根據以下會議內容產出 3 點摘要,使用繁體中文,每點不超過 30 字:
{{內容}}
5.4 真正實務上要注意的事¶
- 模型輸出可能不穩定
- 如果後面還要給程式讀,最好要求固定格式
- 不要把整個 workflow 都建立在模糊輸出上
6. Google Sheets 節點的實務重點¶
Google Sheets 是最常見的落地工具之一。
6.1 為什麼新手很適合先學 Sheets¶
因為它是最直觀的結果儲存方式。你一看表格就知道 workflow 有沒有成功。
6.2 設計欄位時的原則¶
欄位名稱盡量清楚,不要太隨意。
比起:
- name
- email
- status
更好的命名是:
- order_name
- customer_email
- payment_status
- created_at
6.3 一定要加時間欄位¶
實戰上幾乎都建議加:
- created_at
- processed_at
- workflow_run_id 或類似追蹤欄位
因為之後你除錯、追資料、查漏單都會用到。
6.4 常見問題¶
- 欄位對不到
- 資料型別不一致
- 有些欄位空值導致排版混亂
- 重複寫入同一筆資料
7. 實戰除錯流程¶
當 workflow 壞掉時,不要慌,照順序查。
7.1 查法¶
- Trigger 有沒有收到資料
- Webhook 或 API 回來的 JSON 長什麼樣子
- Set 後的欄位是否正確
- 外部服務節點是否真的收到你要的欄位
- 最終回應或寫入結果是否成功
7.2 很實用的切分法¶
如果流程太長,先縮成: - Trigger - 一個處理節點 - 一個輸出節點
確認這個最小流程通了,再慢慢加回去。
7.3 典型問題¶
- webhook body 路徑取錯
- API 權限錯
- Google Sheets 欄位映射錯
- AI 回傳格式和預期不同
- IF 分支條件寫反
7.4 一個很有用的實戰原則¶
當你做 demo 時,不要一開始就接 4 個外部系統。先把流程收斂成: - 一個 trigger - 一個整理節點 - 一個輸出節點
先證明這個最小骨架有價值,再慢慢加功能。
8. 你之後應該怎麼自己設計 workflow¶
當你自己開始做案子時,先不要急著開 n8n 畫面。先寫流程稿。
建議你先寫這 6 行: - 觸發方式: - 輸入資料: - 整理欄位: - 核心處理: - 輸出位置: - 失敗通知:
例子: - 觸發方式:Webhook - 輸入資料:報名資料 JSON - 整理欄位:姓名、Email、課程、金額 - 核心處理:判斷付款狀態 - 輸出位置:Google Sheets - 失敗通知:Slack
這樣你在畫 workflow 的時候,會清楚很多。
Appendix. 可直接複製的測試資料¶
A.1 報名資料¶
{
"name": "Tung",
"email": "tung@example.com",
"course": "n8n Beginner",
"amount": 1200,
"paid": true
}
A.2 AI 摘要資料¶
{
"title": "Meeting Notes",
"content": "今天討論了網站改版、資料同步錯誤與客服自動化三件事。"
}
A.3 報表 API 資料¶
{
"source": "demo-api",
"status": "ok",
"count": 42,
"updatedAt": "2026-04-10T09:00:00Z"
}
下一步建議¶
如果你要繼續往下學,最值得我幫你補的 3 份筆記是:
- n8n Expression 完全指南
- n8n API 串接觀念與除錯手冊
- n8n + OpenAI 實作範例集
本篇練習¶
- 做出
Webhook -> Set -> Google Sheets -> Respond to Webhook。 - 做出
Schedule Trigger -> HTTP Request -> Set。 - 把一段文字送進 OpenAI 做摘要。
- 每做完一個專案,寫下你的 trigger、input、output 是什麼。
下一篇建議¶
如果你常卡在欄位取值,先讀 04 n8n Expression 完全指南。如果你常卡在 token、header、method,讀 05 n8n API 串接觀念與除錯手冊。