跳轉到

n8n 實戰手冊:Webhook、Google Sheets、OpenAI

這份筆記接在《n8n 新手入門完整教學》後面。前一份教你核心觀念,這一份直接帶你做真正能用的 automation。

n8n 實戰手冊章節開場插畫

想一想

實戰不是把節點拖上畫布就結束。真正的實戰,是你能把一個模糊需求拆成幾個穩定步驟。比如「我想自動整理表單」這句話還太模糊;你要繼續問:表單從哪裡送進來?欄位有哪些?哪些欄位一定要有?資料要寫到 Google Sheets 哪些欄?如果資料不完整,要回覆錯誤還是先存草稿?

這就是 n8n 的實戰思維。每個 workflow 都可以先拆成:入口、整理、判斷、輸出、除錯。Webhook 是入口,Set 或 Code 是整理,IF 或 Switch 是判斷,Google Sheets、Email、Slack 是輸出。你只要先用這個架構看問題,就不會被節點名稱牽著走。後面每個專案都不是孤立範例,而是在反覆練同一個能力:把一件真實工作拆成可執行流程。

本篇怎麼讀

  • 學習目標:從觀念走到實作,做出可以展示與改造的 workflow
  • 先修需求:至少看過 02 n8n 新手入門完整教學
  • 讀完後你應該能:做出 webhook 寫表格、定時抓 API、最小 AI 摘要流程

目錄

  1. 實戰前的思考方式
  2. 專案一:Webhook 收單資料並寫入 Google Sheets
  3. 專案二:定時抓 API 並整理成報表
  4. 專案三:Webhook 串 OpenAI 自動摘要
  5. OpenAI 在 n8n 裡的常見用法
  6. Google Sheets 節點的實務重點
  7. 實戰除錯流程
  8. 你之後應該怎麼自己設計 workflow
  9. Appendix. 可直接複製的測試資料

1. 實戰前的思考方式

很多人學 n8n 會卡住,不是因為節點不會用,而是做 workflow 時沒有先拆問題。

你在開始前應該先回答這 5 個問題: - 流程怎麼開始 - 資料從哪裡來 - 我要處理哪些欄位 - 最後結果要送去哪裡 - 失敗時怎麼知道

把這 5 件事寫清楚,workflow 就比較不會亂。

你可以用這個模板設計任何流程:

  1. Trigger 是什麼
  2. Input 資料長什麼樣子
  3. 中間需要哪些處理
  4. Output 要寫去哪裡
  5. 要不要回應呼叫方或發通知

2. 專案一:Webhook 收單資料並寫入 Google Sheets

這是最適合新手的第一個實戰專案。

2.1 目標

建立一個 workflow,讓外部系統送資料到 webhook,n8n 收到後整理欄位,再寫入 Google Sheets。

2.2 你會學到什麼

  • Webhook 收資料
  • Set 整理欄位
  • Google Sheets 寫入資料
  • Respond to Webhook 回應成功訊息

2.3 流程結構

  • Webhook
  • Set
  • Google Sheets
  • Respond 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 Trigger
  • HTTP Request
  • Set
  • Google SheetsSlack

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 流程結構

  • Webhook
  • Set
  • HTTP Request 或 OpenAI node
  • Set
  • Respond 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 查法

  1. Trigger 有沒有收到資料
  2. Webhook 或 API 回來的 JSON 長什麼樣子
  3. Set 後的欄位是否正確
  4. 外部服務節點是否真的收到你要的欄位
  5. 最終回應或寫入結果是否成功

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 實作範例集

本篇練習

  1. 做出 Webhook -> Set -> Google Sheets -> Respond to Webhook
  2. 做出 Schedule Trigger -> HTTP Request -> Set
  3. 把一段文字送進 OpenAI 做摘要。
  4. 每做完一個專案,寫下你的 trigger、input、output 是什麼。

下一篇建議

如果你常卡在欄位取值,先讀 04 n8n Expression 完全指南。如果你常卡在 token、header、method,讀 05 n8n API 串接觀念與除錯手冊