Chapter 01: n8n 核心觀念 (n8n Core Concepts)
在動手拉節點前,我們先來聊聊 n8n 的靈魂。這章會讓你建立正確的自動化直覺,搞懂資料是怎麼流動的,以及如何使用內建變數隨時抓取動態資訊。
學習目標 (Goal)
- 搞懂 n8n 的底層語言:JSON。
- 深入理解 Items 的運作邏輯與自動迭代。
- 掌握常用的 內建變數 (Expressions),讓流程不再卡關。
- 學會翻閱 Execution History 與基礎 Debug 技巧。
核心觀念 (Concepts)
1. JSON:n8n 溝通的方言
在 n8n 裡,所有資訊流動都是透過 JSON (JavaScript Object Notation)。 想像 JSON 是一個有標籤的置物櫃:
- Key (鍵):櫃子外的標籤(比如:
name)。 - Value (值):櫃子裡放的東西(比如:
"DA2")。

2. 深入理解「Item」(項目)
這是 n8n 最核心且最獨特的設計。搞懂它,自動化就成功了一半。
2.1 什麼是 Item?
在 n8n 的世界裡,每一筆獨立的資料(例如:一封 Email、一個客戶、一筆訂單)都被稱為一個 Item。n8n 處理資料時,不是處理一整塊大文件,而是處理一個「Item 陣列」。
2.2 不用寫迴圈的自動迭代機制
這是 n8n 的獨門絕學:自動化處理。
假設節點 A 傳出了 10 個 Item 給節點 B,節點 B 就會自覺地「跑 10 次」,把每個人都處理一遍。你不需要像寫程式那樣寫 for 迴圈,這就是為什麼 n8n 能讓非開發者也輕鬆上手的原因。
3. n8n 內建變數:表達式 (Expressions) 的靈魂
當你需要抓取上一關的資料或取得系統資訊時,就會用到 Expressions (表達式)。以下是 7 個最常用且新手必學的內建變數:
3.1 $input & $json:資料抓取的基礎
$input:代表進入當前節點的所有物件。
$input.all():抓出所有資料(陣列)。$input.first()/.last():抓第一筆或最後一筆。- 小技巧:如果資料被過濾後變成空陣列
[],可以用.length來檢查數量。
$json:這是
$input.item.json的縮寫,也是最常用的!當你從左側拖拉欄位進來時,通常就是它。- 好用功能:
.keys()(抓標題)、.isEmpty()(檢查是否有值)、.hasField("ID")(檢查是否有特定欄位)。
- 好用功能:
3.2 $workflow & $execution:流程的身份證
$workflow:取得流程的 ID 或名稱。
$execution:取得「這一次執行」的資訊。
- 常用場景:區分 Test (測試) 或 Production (正式) 模式。例如:你可以設定只有在正式模式時才發送 Line 通知,避免測試時吵到人。
3.3 $today:日期處理神器
不用寫複雜的 JS 代碼,直接用 {{ $today.format("yyyy-MM-dd") }} 就能產出今天的日期。
- (台灣) 隱藏版功能:想產出「民國年」?
- 用
{{ $today.minus(1911, "years").format('y.MM.dd') }}就能輕鬆達成。
- 用
3.4 $runIndex & $prevNode:進階追蹤
$runIndex:當你在跑 Loop (迴圈) 時,它會告訴你現在是第幾次執行 (從 0 開始)。
$prevNode:當一個節點有多個來源 (如 Switch 或 If) 時,確認資料是從哪一個輸出口跑過來的。
4. Execution History (執行紀錄)
跑完流程後,左邊會出現一排 Executions。這裡記錄了每個節點當時收到了什麼、又吐出了什麼。

IMPORTANT
記得養成好習慣:點一下節點上方的數字,直接進去看 Item 裡面藏了什麼。這能解決 90% 以上「為什麼抓不到資料」的問題。
節點配置 (Node Setup)
我們用最基礎的兩個節點來實測看看。
Manual Trigger (手動觸發)
測試最常用的起點,按一下按鈕流程就開始。
Edit Fields (Set) (編輯欄位)
我們手動塞一筆資料進去:
- 拉一個
Edit Fields (Set)節點。 - 在 Assignments 加上
String類型。 - Name 寫
username,Value 寫n8n_learner。

實戰挑戰 (Challenge)
實測一下:點右下角的 Execute Workflow 跑跑看。
變數測試:在
Edit Fields中新增一個欄位today_date,並填入{{ $today.format("yyyy-MM-dd") }}。模式檢查:新增一個欄位
is_test,填入{{ $execution.mode }},看看手動測試時會顯示什麼。Debug 練習:點擊節點上方的數字,觀察
$json結構的變化。
TIP
記住一個口訣:n8n 是「一個 Item 接一個 Item」處理。如果執行次數不對,通常是來源 Item 數量算錯了!

