n8n 新手入門完整教學¶
這份筆記不是速查表,而是一份從零開始的學習教材。你可以照章節一路讀,也可以把它當成之後實作時的工作手冊。
想一想¶
第一次學 n8n,不要把它想成一套很複雜的程式工具。你可以先把它想成一條「辦事情的流水線」。以前你可能會手動打開信箱、複製資料、貼到表格、再傳訊息通知別人;n8n 做的就是把這些固定步驟排成一條路,讓資料自己往下走。每一個節點不是孤立的按鈕,而是流水線上的一站。
所以新手最重要的問題不是「我要記住多少節點」,而是「資料現在在哪裡?下一步要去哪裡?」只要你能看懂資料從 trigger 進來,經過整理、判斷、輸出,n8n 就不會那麼抽象。後面你會看到 JSON、expression、Webhook、HTTP Request,這些名詞看起來很多,但本質都在回答同一件事:資料怎麼進來、怎麼被處理、怎麼送出去。
本篇怎麼讀¶
- 學習目標:建立 n8n 的基本心智模型,知道資料怎麼流,知道最小 workflow 怎麼做
- 先修需求:不用會程式,但要願意看 JSON
- 讀完後你應該能:做出第一個 workflow、看懂基本 output、用 expression 取簡單欄位
先不要急著學的東西¶
- 很長的 AI agent workflow
- 很複雜的 Code node
- 大量第三方整合
先把 trigger、資料流、JSON、Webhook、HTTP Request 打穩,速度反而更快。
目錄¶
- 先理解 n8n 在做什麼
- n8n 的核心組成
- 資料流與 JSON 基礎
- Expression 的觀念與寫法
- 第一個 Workflow
- 用 Webhook 接收外部資料
- 用 HTTP Request 串接 API
- 實際上最常用的節點
- 分支、迴圈與資料處理思維
- 認證與外部服務串接
- 除錯方法與常見錯誤
- 3 個必做實戰專案
- 進階學習地圖
- n8n 學習心法
- Appendix. Expression 速查與練習題
1. 先理解 n8n 在做什麼¶
n8n 是一個 workflow automation 工具。你可以把它理解成一個「用節點把事情串起來的資料工廠」。
它最擅長處理這類問題: - 有資料進來,想自動做後續處理 - 想定時去抓資料 - 想把一個系統的資料轉給另一個系統 - 想把原本人工重複做的流程自動化
典型例子: - 表單送出後,自動寫入 Google Sheets,再通知 Slack - 電商訂單成立後,自動建立發票資料與客戶通知 - 每天早上固定抓 API 資料,整理成報表 - 收到 webhook 後,呼叫 OpenAI 分析內容,再存進 Notion
一句話記住:
n8n 的本質,就是讓資料按照你設計的流程,自動流過不同節點並完成工作。
如果你之前學過程式,n8n 可以看成: - Trigger = 程式入口 - Node = 函式或處理步驟 - Connection = 資料流向 - JSON = 參數與輸出 - Expression = 讀取變數的方式
2. n8n 的核心組成¶
2.1 Trigger¶
Trigger 是流程怎麼開始。
最常見的 Trigger:
- Manual Trigger:手動執行,最適合學習與測試
- Webhook:外部系統呼叫 URL 時啟動
- Schedule Trigger:依時間自動執行
- Form Trigger:使用者填表單後啟動
2.2 Node¶
每個 node 都是 workflow 裡的一個步驟。
常見用途: - 整理資料 - 呼叫 API - 判斷條件 - 發送通知 - 寫入第三方服務
2.3 Connection¶
線不是裝飾,它代表資料從哪一個節點流到哪一個節點。
你要一直有這個觀念: - 上一個節點輸出什麼 - 下一個節點收到什麼 - 中間有沒有改結構
2.4 Execution¶
每次 workflow 跑一次,都是一次 execution。
execution 的價值很大,因為你可以: - 看每個節點的 input/output - 確認哪一步出錯 - 檢查 expression 是否取值正確
3. 資料流與 JSON 基礎¶
學 n8n 最重要的能力不是背節點,而是看懂資料。
n8n 裡的資料多半是 JSON,例如:
{
"name": "Tung",
"email": "tung@example.com",
"score": 85
}
這代表:
- name 是字串
- email 是字串
- score 是數字
3.1 巢狀物件¶
{
"user": {
"name": "Tung",
"profile": {
"city": "Taipei"
}
}
}
取值方式:
{{$json.user.name}}
{{$json.user.profile.city}}
3.2 陣列¶
{
"items": [
{"name": "A", "price": 10},
{"name": "B", "price": 20}
]
}
取第一筆:
{{$json.items[0].name}}
{{$json.items[0].price}}
3.3 你在 n8n 裡要一直問自己的 3 件事¶
- 現在這個節點輸出的 JSON 長什麼樣子
- 我真正要的欄位在第幾層
- 它是字串、數字、布林、物件還是陣列
如果這 3 件事沒弄清楚,後面幾乎一定會卡。
3.4 一個最常見的新手案例¶
假設你做了一個表單報名流程,表單送來的是:
{
"body": {
"name": "Tung",
"email": "tung@example.com",
"course": "n8n Beginner"
}
}
如果你沒有先看這個 output,很容易直接寫成:
{{$json.name}}
但實際上正確的是:
{{$json.body.name}}
這個例子在教你一件事:
不是你以為資料在哪裡,而是 output 顯示資料在哪裡。
4. Expression 的觀念與寫法¶
Expression 是 n8n 取值的核心。
4.1 最常見寫法¶
{{$json}}
{{$json.name}}
{{$json.email}}
{{$json.score}}
4.2 從特定節點取值¶
{{$node["Set User"].json.name}}
{{$node["HTTP Request"].json.title}}
4.3 條件判斷¶
{{$json.score >= 60}}
{{$json.score >= 80 ? "VIP" : "Regular"}}
4.4 字串拼接¶
{{"Hello " + $json.name}}
{{"User: " + $json.name + ", Score: " + $json.score}}
4.5 常見錯誤¶
- 資料其實在
body.name,你卻寫成name - node 改名了,expression 還是指向舊名稱
- API 回傳的是陣列,但你用物件路徑取值
- 數值其實是字串,條件判斷結果不如預期
4.6 Expression 的正確學法¶
不要背語法清單。正確做法是: 1. 先看 output JSON 2. 找到目標欄位 3. 用最短路徑取值 4. 執行後再次確認結果
5. 第一個 Workflow¶
這個 workflow 的目標是讓你理解最小閉環:
開始 -> 建立資料 -> 處理資料 -> 判斷 -> 輸出
5.1 流程設計¶
Manual TriggerSetSetIFSet (true)Set (false)
5.2 Step 1: Manual Trigger¶
用途: - 手動按下執行 - 最適合初學者除錯
5.3 Step 2: Set 建立原始資料¶
欄位:
- name = Tung
- role = student
- score = 85
輸出:
{
"name": "Tung",
"role": "student",
"score": 85
}
5.4 Step 3: Set 整理資料¶
欄位:
- message = Hello {{$json.name}}
- isPassed = {{$json.score >= 60}}
- summary = {{$json.name}} is a {{$json.role}}
5.5 Step 4: IF 條件判斷¶
條件:
- 左值:{{$json.score}}
- Operator:is greater than or equal to
- 右值:80
5.6 Step 5: 給 true/false 分支不同輸出¶
true 分支:
- result = VIP student
false 分支:
- result = Regular student
5.7 這個流程在教你什麼¶
- workflow 是怎麼開始的
- JSON 怎麼被建立與傳遞
- expression 怎麼取前一步資料
- IF 怎麼決定分支
這一步真的很關鍵。如果這個流程你能完全自己重做,表示你已經進入 n8n 的學習軌道。
5.8 延伸練習¶
把這個 workflow 改成你的版本:
- 把 name 改成你自己的名字
- 把 score 改成不同數字,觀察 IF 分支怎麼變
- 再加一個欄位 department
- 組出新的 summary
你做完這個練習,會比只看說明更快理解資料流。
6. 用 Webhook 接收外部資料¶
Webhook 是 n8n 最重要的入口之一。
6.1 什麼是 Webhook¶
你可以把 Webhook 理解成「讓別的系統呼叫你的 n8n URL」。
它很像你在做一個簡單 API endpoint。
6.2 常見用途¶
- 接收表單資料
- 接收第三方事件通知
- 接收自家系統 POST 過來的資料
- 接收聊天機器人或 SaaS 平台 callback
6.3 基本設定¶
建立 Webhook node:
- HTTP Method:POST
- Path:student-check
測試 URL 會像:
https://your-n8n-domain/webhook-test/student-check
6.4 測試送資料¶
curl -X POST 'https://your-n8n-domain/webhook-test/student-check' \
-H 'Content-Type: application/json' \
-d '{
"name": "Tung",
"score": 85,
"email": "tung@example.com"
}'
6.5 Webhook 收到的資料常見長相¶
{
"body": {
"name": "Tung",
"score": 85,
"email": "tung@example.com"
},
"headers": {},
"query": {}
}
因此你常會用到:
{{$json.body.name}}
{{$json.body.score}}
{{$json.body.email}}
6.6 整理收到的資料¶
接一個 Set:
- name = {{$json.body.name}}
- score = {{$json.body.score}}
- status = {{$json.body.score >= 80 ? "VIP" : "Regular"}}
6.7 Respond to Webhook¶
如果你要讓呼叫方收到回應,就接 Respond to Webhook。
回傳:
{
"ok": true,
"message": "Student processed successfully"
}
6.8 新手常犯的 Webhook 錯誤¶
- URL 打錯
- 用
GET呼叫,節點卻設定POST - 忘記送
Content-Type: application/json - workflow 沒在正確測試狀態
- 以為資料在
$json.name,實際上在$json.body.name
6.9 真實應用例子¶
Webhook 很常拿來做這些事: - 接收網站表單報名 - 接收付款成功通知 - 接收 LINE / Slack / Discord 類服務的 callback - 接收自家系統送來的事件資料
你只要想到「有一個外部系統要把資料推給我」,通常就是 webhook 的場景。
7. 用 HTTP Request 串接 API¶
HTTP Request 是 n8n 最值得熟練的節點之一。會用它,你幾乎能接任何系統。
7.1 你要先懂 API 在做什麼¶
API 就是另一個系統提供的資料接口。你送出請求,它回你結果。
7.2 常見設定¶
Method:GET、POST、PUT、PATCH、DELETEURL:API 位址Authentication:是否需要登入憑證Headers:額外資訊,例如 tokenBody:POST/PUT 類型請求的內容
7.3 最簡單範例¶
流程:
- Manual Trigger
- HTTP Request
- Set
假設 API 回傳:
{
"id": 1,
"title": "Hello World",
"status": "published"
}
用 Set 整理:
- articleId = {{$json.id}}
- title = {{$json.title}}
- isPublished = {{$json.status === "published"}}
7.4 串接 API 的真實思路¶
你不是在「用 n8n node」,你是在做這件事: 1. 了解 API 文件 2. 知道要送什麼 method 3. 知道要不要 token 4. 看回來 JSON 長什麼樣子 5. 把回傳結果整理成你下一步要用的格式
7.5 只要卡 API,先檢查這 5 件事¶
- URL 對不對
- Method 對不對
- Header 有沒有少
Authorization - Body 格式對不對
- API 回傳內容是不是錯誤訊息
7.6 一個很典型的 API 心智模型¶
你可以把 API 串接想成這樣:
- 先確認你要問誰要資料
- 確認對方要你怎麼問
- 確認你有沒有帶證件
- 看對方回來的資料長什麼樣子
- 把回來的東西整理成你下一步能用的格式
這 5 步想清楚,你就不會只是在 UI 裡亂點。
8. 實際上最常用的節點¶
8.1 Set¶
用途: - 建立欄位 - 改欄位名稱 - 把雜亂資料整理乾淨
地位:
Set 是新手最該熟的資料整形節點。
8.2 IF¶
用途: - 做條件分支 - 根據不同條件走不同流程
8.3 HTTP Request¶
用途: - 串任何 API - 幾乎所有外部服務都能靠它接進來
8.4 Webhook¶
用途: - 當作你的入口 - 接收外部系統事件
8.5 Code¶
用途: - 當資料處理超過內建節點能力時,自訂 JavaScript
範例:
return items.map(item => {
return {
json: {
...item.json,
passed: item.json.score >= 60,
level: item.json.score >= 80 ? 'VIP' : 'Normal',
},
};
});
8.6 Google Sheets / Notion / Slack 類節點¶
用途: - 將 workflow 接到真正的工作場景 - 做資料落地、通知、協作
當你學到這一層,n8n 才真正開始有生產力。
9. 分支、迴圈與資料處理思維¶
9.1 分支思維¶
Workflow 常不是一路直線跑完,而是: - 條件符合,走 A - 條件不符,走 B
這就是 IF 的用途。
9.2 你真正要學的是「先整理,再分支」¶
很多新手會直接拿很亂的原始資料去做判斷,結果 expression 很難寫。
比較好的做法:
1. 先用 Set 整理出你要的欄位
2. 再用 IF 判斷
9.3 多筆資料的觀念¶
當 API 回傳多筆 item 時,你要知道每一筆資料可能都會被同樣處理。
這時你需要注意: - 每筆資料的結構是否一致 - 你是要逐筆處理,還是整批彙總 - 哪個節點會放大資料量
9.4 Code node 的角色¶
當資料清洗、欄位轉換、陣列操作太複雜時,再用 Code node。
但原則上:
先把 Set / IF / HTTP Request 用熟,再上 Code。
10. 認證與外部服務串接¶
你很快就會遇到需要登入憑證的 API。
10.1 最常見的認證形式¶
- API Key
- Bearer Token
- OAuth
- Basic Auth
10.2 常見情況¶
例如某 API 要求:
Authorization: Bearer YOUR_TOKEN
那你在 HTTP Request 就要加 header。
10.3 新手常犯錯誤¶
- token 複製錯
- 把 token 放錯欄位
- 用了測試環境 token 打正式環境
- API 文件要求 JSON body,你卻送成 form-data
10.4 實務建議¶
- 先用最小測試請求驗證認證是否通
- 通了之後再加資料欄位與商業邏輯
- 不要一開始就把 workflow 搞太長
11. 除錯方法與常見錯誤¶
除錯能力決定你學 n8n 的速度。
11.1 第一原則:永遠先看 Output¶
不要猜資料長什麼樣子,直接看。
11.2 第二原則:一次只改一個地方¶
如果一次改 5 個 node,壞掉時你很難定位原因。
11.3 第三原則:先手動測,再接正式來源¶
先用 Manual Trigger 或測試 Webhook,確定流程正確後再接正式資料。
11.4 最常見錯誤清單¶
- expression 路徑錯誤
- node 改名導致引用失效
- method 錯誤
- body 格式錯誤
- content-type 錯誤
- 條件判斷把字串當數字
- API 回傳的是錯誤 JSON,但你沒注意
11.5 最實用的除錯習慣¶
- 每多一步就看一次 output
- 遇到複雜資料先加
Set整理 - 遇到問題先把流程縮短到最小可重現範圍
11.6 一個實際除錯情境¶
情境: 你 webhook 明明收到了資料,但 Google Sheets 寫入後欄位是空的。
排查方式:
1. 先看 Webhook output,是不是資料在 body 底下
2. 再看 Set 節點,是不是有正確建立 order_name、order_email
3. 最後看 Google Sheets mapping,是不是對到你整理後的欄位
這種問題很少是「整個 workflow 壞掉」,通常只是某一段路徑寫錯。
12. 3 個必做實戰專案¶
專案 1. Webhook -> Google Sheets¶
目標: 把外部送來的資料寫進試算表。
你會學到: - 接 webhook - 整理欄位 - 寫入外部服務
專案 2. Schedule Trigger -> HTTP Request -> 報表¶
目標: 每天固定抓 API,整理成表格或通知。
你會學到: - 定時工作 - API 資料清理 - 自動報表
專案 3. Webhook -> OpenAI -> Notion 或 Slack¶
目標: 收到文字後,交給 AI 分析,再寫入知識庫或發通知。
你會學到: - 串接 AI API - 把 AI 輸出納入 workflow - 做出更接近真實應用的自動化流程
這 3 個專案做完,n8n 的基礎就相對穩了。
13. 進階學習地圖¶
當你基礎夠穩,再往這些方向走: - Error handling - Retry 機制 - Queue 與高頻工作流程 - 資料庫整合 - AI Agent workflow - 多步驟商業流程自動化 - 權限、憑證與環境切分
進階的重點不是 node 更多,而是: - workflow 能不能維護 - 出錯時能不能快速定位 - 資料量變大後是否仍然穩定
14. n8n 學習心法¶
14.1 不要把 n8n 當成只會拖拉的工具¶
它本質上是一個資料流程設計器。
14.2 學習速度最快的方法不是看很多影片¶
而是反覆做這個循環: 1. 看輸入資料 2. 理解 JSON 結構 3. 用 node 處理資料 4. 看輸出 5. 修正流程
14.3 最容易卡住的人,通常不是不會按 UI¶
而是沒有資料結構觀念。
你只要把 JSON、API、資料流搞懂,n8n 會學得很快。
14.4 先做小而完整的流程¶
不要一開始就做 20 個節點的大 workflow。先做最小閉環: - 1 個 trigger - 1 個資料輸入 - 1 個處理步驟 - 1 個輸出
這樣成長最快。
Appendix. Expression 速查與練習題¶
A.1 Expression 速查¶
目前節點:
{{$json}}
{{$json.name}}
{{$json.score}}
特定節點:
{{$node["Webhook"].json.body.name}}
{{$node["HTTP Request"].json.id}}
三元運算:
{{$json.score >= 80 ? "VIP" : "Regular"}}
字串組合:
{{"Hello " + $json.name}}
布林判斷:
{{$json.email ? true : false}}
A.2 自我測驗¶
- 如果 webhook 收到的資料在
body.email,expression 要怎麼寫? - 如果分數大於等於 60 才通過,expression 要怎麼寫?
- 如果 API 回傳
items[0].title,你要怎麼取第一筆標題? - 為什麼 workflow 出錯時應該先看 output?
- 為什麼建議先用
Set整理欄位再做IF?
A.3 建議你接下來真的去做的事¶
- 自己手建一次第一個 workflow
- 用 curl 或 Postman 打一次 webhook
- 用 HTTP Request 串一個公開 API
- 把結果整理進 Google Sheets
- 再回來看這份筆記第二遍
之後你可以直接叫 AI 幫你做的內容¶
幫我做一個 n8n Webhook 範例幫我做 n8n 接 Google Sheets 教學幫我做 n8n 串 OpenAI API 的教材幫我解釋這段 expression幫我設計一個符合我工作流程的 n8n automation
本篇練習¶
- 做一個
Manual Trigger -> Set -> IFworkflow。 - 把資料改成你自己的欄位,不要完全照抄。
- 再做一個最小的
Webhook -> Setworkflow。 - 每次執行都打開 output,看資料結構。
下一篇建議¶
下一步讀 03 n8n 實戰手冊:Webhook、Google Sheets、OpenAI,把這一篇的觀念變成真正能用的流程。