← → 翻页 · ESC 索引
弄一下工作室 · Lecturer Decks
01 / 36
n8n Workshop · Vol.01

AI 資料工廠

大規模文件處理實戰
Vol.01· 資料工廠 · 大規模處理 · 突破 1000 ops 限制· Duration · 9.5 小時授課 · 4 Modules
弄一下工作室 — n8n Self-host Workstation
2026 · Forest Ink
Opening · 為什麼是 n8n
02 / 36
A Workstation, Not A Subscription
當 Make 1,000 ops 在月底用完,
當客戶 PDF 不能丟到第三方雲端,
你需要的不是更貴的方案
而是一座跑在自家電腦的資料工廠
n8n Community Edition · Self-host
弄一下工作室
Opening Quote
Learning Outcomes · 三大成果
03 / 36
結業後你能做到

三件 Make 做不到的事

Outcome 01
ops
本機自架 n8n,月度執行次數無平台上限,實際邊際成本 = 電費 + 維運
Outcome 02
本機讀寫
Watch Folder 直接掃本機資料夾,PDF / 文件批次處理,雲端 SaaS 做不到
Outcome 03
雲地協作
Cloudflare Tunnel + Make 雙引擎,雲端訊號觸發本機批次任務
9.5 小時 · 4 Modules · 1 座資料工廠
Outcomes
Module 01 · 2.5h
04 / 36
Act I · Module 1

環境建置

Docker Desktop · n8n 本機版 · Cloudflare Tunnel · JSON Expression — 把工廠搭起來。
CH1-1 安裝·CH1-2 對外·CH1-3 語法
Module 1 · 環境建置與雲地橋接
Act I Opens
M1 · 為何切換到 n8n
05 / 36 講義 · M0 雲端 vs 自架
Make → n8n · 進階橋接

三道牆,逼你升級工具

— 01
Ops 上限牆
免費 1,000 ops/月用完即停。升級方案邊際成本陡升。
— 02
本機檔案牆
SaaS 摸不到桌面 PDF / Downloads 資料夾,整類自動化失能。
— 03
資料主權牆
客戶機密、NDA 文件不能丟雲端服務商處理。
切換代價:以較高的技術責任換取更低的邊際執行成本與本機能力。電費 / 維運 / 備份 / 升級都要算進帳。
Space / → 逐步點亮三道牆
Why n8n
M1 · Make ↔ n8n 對等度
06 / 36
Cloud Flow · vs · Local Workstation

對等度 65–95%,剩下的差距是學習曲線

Make · 雲端 SaaS
分發式路由
  • · 模組各自獨立、雲端跑
  • · Bundle 概念、Aggregator 收斂
  • · 1,000 ops 上限、按執行付費
  • · 視覺化好懂、入門快
n8n · 自架本機
分支式工作流
  • · 節點輸入輸出陣列、本機跑
  • · Items 概念、Split Out / Merge
  • · 無平台 ops 限制、付電費
  • · JSON 心智模型重、彈性更高
4 大心智落差·資料形狀·分發 vs 分支·JSON Schema·錯誤處理
不是搬家、是重學一種更工程化的思考
Migration Map
M1-1 · Docker Desktop 安裝
07 / 36 講義 · M1-1 install
CH1-1 · install · 25 分鐘

三條路徑,選一條走

Path A
Mac · Apple Silicon
下載 ARM64 版 Docker Desktop · `docker --version` 驗證 · 預設記憶體調 4GB
Path B
Mac · Intel
下載 amd64 版 · 注意 platform mismatch 警告 · 啟用 VirtioFS 加速
Path C
Windows · WSL2
先裝 WSL2 + Ubuntu · 再裝 Docker Desktop · 啟用 WSL Integration
驗收三指令 $ docker --version
$ docker compose version
$ docker run hello-world
★ 講師:請開講義對照截圖逐步示範
Hands-on
M1-1 · 啟動 n8n 首次設定
08 / 36 講義 · M1-1 launch
CH1-1 · launch · 15 分鐘

五步啟動,localhost:5678

— 01
解壓 starter-kit
收下試跑包:compose YAML + 一鍵腳本 + .env
— 02
雙擊 start.command
Mac 雙擊執行;Windows 用 start.bat。背景拉 n8n image
— 03
開 localhost:5678
瀏覽器自動開啟 n8n 介面,第一次進入
— 04
建管理者帳號
Email + 密碼,本機加密存於 n8n_data volume
— 05
跑 hello-world
Webhook 節點 → Set 節點 → 觸發測試,看到 200 OK 即成功
★ Space / → 逐步點亮 · 講義含截圖
Pipeline · 5 Steps
M1-2 · Cloudflare Tunnel
09 / 36 講義 · M1-2 tunnel
CH1-2 · 45 分鐘 · 雲地橋接

本機 Webhook 對外打洞

為什麼要 Tunnel
家用 IP 通常在 NAT 後面,雲端服務(Make / Google)打不到 localhost:5678。

Cloudflare Tunnel 從本機建一條反向通道到 Cloudflare 邊緣,給你一個固定 HTTPS URL,全免費。
三件事完成設定
  1. cloudflared 安裝 + login(綁網域)
  2. 建 Tunnel + 指 hostname → localhost:5678
  3. 設成系統服務,開機自動跑
產出 URL 範例 https://n8n.your-domain.com/webhook/abc-123 這個 URL 可以給 Make Webhook 模組、Google Apps Script、任何 SaaS 回打
★ 多 hostname 管理 + 自動重啟見講義
Tunnel
M1-3 · Expression 語法
10 / 36 講義 · M1-3 expression
CH1-3 · 45 分鐘 · JSON + Expression

六個句型,包辦九成引用

— A
當前 item 欄位
{{ $json.name }}
— B
指名節點欄位
{{ $('Webhook').item.json.body }}
— C
第 N 個 item
{{ $items()[0].json.id }}
— D
巢狀安全
{{ $json.user?.email ?? '—' }}
— E
日期 / 時間
{{ $now.format('yyyy-MM-dd') }}
— F
JS 表達式
{{ $json.amount * 1.05 }}
★ 完整速查表 + 練習題見講義
Expression Cheatsheet
M1 · Closing · 誠實揭露
11 / 36
Brand Honesty · 不說神話

三句不該對學員講的話

「無執行次數限制」
→ 改成「以較高技術責任換取更低邊際成本」。電費、維運、備份、升級都是隱性成本
Honesty 01
「機密留本機」
→ 用 Gemini API 抓 Gmail 仍離開本機。要明說「支援本機處理 + 可選本機 AI」
Honesty 02
「Make 一鍵搬家」
→ 對等度 65–95%,要學資料形狀、分發 vs 分支、JSON Schema、錯誤處理
Honesty 03
Codex L3 兩輪審核·CALL_ID 63c0b5f7 / 348da75a
M1 收束 · 進入 M2 邏輯心智訓練
End of Act I
Module 02 · 1.5h
12 / 36
Act II · Module 2

點名抓取

資料引用 · Optional Chaining · If / Switch — 把 JSON 樹的每片葉子抓回來。
CH2-1 引用·CH2-2 安全·CH2-3 分支
Module 2 · 點名抓取與複雜邏輯
Act II Opens
M1-3 / M2-1 · JSON 結構
13 / 36 講義 · M1-3 json
n8n Items 心智模型

節點之間,傳的是陣列

標準形狀
[
  { "json": { "id": 1, "name": "Alice" } },
  { "json": { "id": 2, "name": "Bob"   } }
]
三件要記住
  1. 每個節點輸出永遠是陣列,即使只有一筆
  2. 每個 item 的真實資料在 .json 鍵下
  3. 下游節點預設對「每個 item」各跑一次
★ 完整 Items / Binary 規格見講義
JSON · Items
M2-1 · 數據引用三招
14 / 36 講義 · M2-1
CH2-1 · 30 分鐘

相對 · 絕對 · 動態

招式 01
相對引用
$json 抓上一個節點當前 item,最常用、最簡潔
招式 02
絕對引用
$('NodeName').item.json 跨多步引用任意上游節點
招式 03
動態索引
$items()[$itemIndex] 同節點多 item 互相對照
三招熟,整個 n8n 工作流可任意串接
Reference Patterns
M2-2 · Optional Chaining
15 / 36 講義 · M2-2 optional
CH2-2 · 30 分鐘 · 防 undefined 錯誤

一個問號 ?.,少寫十行 if

不安全寫法
{{ $json.user.profile.email }}

// user 不存在 → undefined.profile
// 整條工作流炸掉
安全寫法
{{ $json.user?.profile?.email ?? '無 email' }}

// 任一層缺失 → 回傳 '無 email'
// 工作流照跑
口訣:?. 用在「可能不存在」的層;?? 用在「給預設值」。兩個搭配,避開 90% 的巢狀爆炸。
★ 講義含 7 種常見巢狀情境對照
Safe Access
M2-3 · 邏輯分支
16 / 36 講義 · M2-3
CH2-3 · 30 分鐘

If 雙分支,Switch 多分支

If 節點
兩條路:true / false。適合「VIP 走 A,其他走 B」這種二元決策
2-Way
Switch 節點
N 條路:依欄位值或 Expression 結果走不同路徑。適合多語系、地區、產品線分流
N-Way
並行收斂
分流後用 Merge / Wait 節點再匯合,做 fan-out / fan-in 模式
Fan-out / Fan-in
Continue On Fail
每個節點可勾選「失敗繼續」,把例外導到專屬錯誤分支處理(不讓整流停擺)
Resilient
分支設計決定整個自動化的可靠性
Branching
M2 · 常見錯誤
17 / 36
Three Most Common Errors

三個 undefined,毀掉一整夜

錯誤 01
Cannot read
'x' of undefined
中層欄位不存在 → 用 ?. 改寫
錯誤 02
No items
to process
上游零筆輸出 → If 先擋空陣列
錯誤 03
Type mismatch
in Compare
字串 vs 數字 → 顯式 Number() / String() 轉型
記得三條,少加班三小時
Pitfalls
M2 · Closing · 課堂練習
18 / 36
Hands-on Before M3

三題練完,進工廠

練習 A · 引用
用 Webhook 收一筆 Google Form 送來的 JSON,把姓名 + 信箱寫進 Google Sheet
10 min
練習 B · 安全
收 Gmail webhook,用 ?. 抓出第一個附件的檔名,沒有附件時回傳「— 無附件」
15 min
練習 C · 分支
用 Switch 依「金額」分三路:>10000 寄 Email、1000-10000 寫 Sheet、其他丟 log
20 min
做完三題 → 你已經具備重做八成 Make scenario 的最小肌力。M3 開始用這套肌力處理本機檔案。
M2 收束 · 進入 M3 重型文件工廠
End of Act II
Module 03 · 2h
19 / 36
Act III · Module 3

重型文件工廠

Watch Folder · PDF 批次改名 · 排程彙整 — Make 永遠做不到的本機檔案世界。
CH3-1 監控·CH3-2 改名·CH3-3 排程
Module 3 · 重型文件工廠
Act III Opens
M3-1 · Watch Folder
20 / 36 講義 · M3-1 watch
CH3-1 · 40 分鐘 · 工廠的入料口

資料夾 = 觸發器

三種觸發模式
  1. 新增檔案 · 看到新 PDF 落地立刻跑
  2. 檔案修改 · 既有檔被覆寫時觸發
  3. 輪詢 · 每 N 秒掃一次,相容雲端同步資料夾
配對策略(避免重跑)
  • · 處理完搬到 /processed 子目錄
  • · 用 SQLite 記錄已處理 hash
  • · 加 Filter 節點檢查副檔名 / 大小
Docker volume 掛載:./shared:/files/shared — 把本機任意資料夾接到 n8n 容器內,做為 Watch Folder 監聽點。
把資料夾變工廠的傳送帶
Watch Folder
M3-2 · PDF 批次改名
21 / 36 講義 · M3-2 rename
CH3-2 · 40 分鐘 · 工廠示範

五站產線,PDF 進,整理好出

— 01
Watch Folder
監聽 /shared/inbox 新 PDF 落地
— 02
Read PDF
抽前 2 頁文字,丟下游當 prompt 素材
— 03
LLM 抽取
Gemini / GPT 回傳「日期 + 對方 + 主旨」JSON
— 04
組檔名
Set 節點拼字串:YYYY-MM-DD_對方_主旨.pdf
— 05
Move + Log
搬到 /processed + 寫一筆到 Google Sheet 索引
Space / → 逐站點亮 · 100 份 PDF 跑 5 分鐘
Pipeline · 5 Stations
M3-3 · Schedule + Cron
22 / 36 講義 · M3-3 schedule
CH3-3 · 40 分鐘 · 排程速查

Cron 速查表

每天 09:00
0 9 * * * · 上班前彙整昨日訂單、寄日報給自己
Daily
每週一 08:00
0 8 * * 1 · 週報自動整理上週數據、產 Google Doc
Weekly
每月 1 號 06:00
0 6 1 * * · 月報結算、發票整理、客戶通知
Monthly
每 15 分鐘
*/15 * * * * · 監測 API 健康、爬競品價格
Polling
時區設定
.env 設 TZ=Asia/Taipei · 不要在 Cron 表達式裡硬算時差
TZ
★ Cron 表達式產生器 + 完整範例見講義
Cron Cheatsheet
M3 · 產能對比
23 / 36
Local File · Throughput

本機跑,多一個量級

手動
3分/份
人工開 PDF · 看內容 · 改檔名 · 拖到資料夾。100 份要 5 小時
Make 雲端
N/A
本機檔案 SaaS 摸不到。先上傳 Drive → 處理 → 下載,光來回就吃完 ops 額度
n8n 本機
3秒/份
直接讀本機檔。100 份 5 分鐘,邊際成本只有 LLM API + 電費
速度差 60 倍 · 這就是「資料工廠」的實際意義
Throughput
M3 · Resilience
24 / 36
Production Patterns

把工廠開到能夜跑無人看顧

Continue On Fail
每節點勾選 → 失敗 item 跳過、其餘照跑、錯誤導到專屬分支
Per Node
Retry On Fail
設 3 次重試 + 每次間隔 30 秒 → 應付 API rate limit / 暫時性網路錯
Retry Policy
Error Workflow
指定一個專屬工作流接所有錯誤 → Telegram 推講師、附 execution ID 連結
Centralized
執行歷史
n8n UI 內可重跑任一筆失敗的執行,不用整流再跑一次
Replay
三層保險 · 工廠才能離手
Resilience
M3 · Closing · 產能解鎖
25 / 36
End of Act III

不再受限於 SaaS 的世界觀

Watch Folder + LLM + Schedule,
就足以把過去十年累積的 PDF / Word / Excel 整理一遍。
下一站·M4 雲地協作·把 Make 的長處接回來
M3 收束 · 進入 M4 綜合實戰
Closing
Module 04 · 3.7h
26 / 36
Act IV · Module 4

一站式行動辦公室

表單遙控 · 雙引擎協作 · AI 企劃產出 · AI 秘書遷移黃金 demo。
CH4-1 遙控·CH4-2 雙引擎·CH4-3 企劃·CH4-4 黃金 demo
Module 4 · 綜合實戰
Act IV Opens
M4-1 · Google Forms 遙控
27 / 36 講義 · M4-1
CH4-1 · 40 分鐘 · 雲地協作首演

填一張表,觸發本機跑批

— 01
Google Form
客戶 / 同事填表,傳統低門檻入口
— 02
Make Webhook
Apps Script 觸發 Make scenario,做雲端前處理
— 03
Cloudflare Tunnel
Make HTTP 模組打到 Tunnel HTTPS URL
— 04
n8n 本機跑批
收 Webhook → 跑重型批次(PDF / 影像 / 大量 LLM)
— 05
結果回傳
處理完寫 Sheet + Telegram 通知 + Email 寄結果
雲端做訊號、本機做苦工 · 各司其職
Cloud-Local Pipeline
M4-2 · 雙引擎協作
28 / 36 講義 · M4-2
CH4-2 · 40 分鐘 · 分工原則

什麼留 Make,什麼搬 n8n

留在 Make
  • · 純雲端 SaaS 串接(Slack / Notion / Asana)
  • · 量低、頻次穩、值得 ops 預算的關鍵流
  • · 給其他同事用的 GUI 友善 scenario
  • · OAuth 設定一次就跑很久的整合
搬到 n8n
  • · 高頻 / 大量 / 燒 ops 的批次任務
  • · 需要本機檔案讀寫的整流
  • · 含敏感 / NDA 客戶資料的處理
  • · 需要 local LLM(不能用雲端 API)的步驟
界面:用 Webhook + HTTP Request 兩端互打。Make 端設 timeout 60s + 重試;n8n 端 Webhook Response 立刻回 200,後續處理用 Background 模式。
雙引擎不是取代、是分工
Hybrid Architecture
M4-3 · AI 企劃產出
29 / 36 講義 · M4-3
CH4-3 · 40 分鐘 · LLM × Docs 模板

一個指令,一份完整企劃

輸入
Telegram 一句話:「下週活動企劃,主題:AI 工作坊,預算 5 萬」
Trigger
LLM 拆解
系統 prompt 拆出 7 個段落:背景 / 目標 / 受眾 / 議程 / 預算 / 風險 / 評估指標
Decompose
Docs 模板填入
Google Docs 預設模板含 7 個 placeholder,n8n 用 Docs API 把 LLM 結果填進去
Template Fill
輸出
產出 Docs 連結回 Telegram + 同步寄一份 Email + 寫進 Sheet 知識庫
Deliverable
Prompt 工程 + n8n + Docs API = 30 秒一份初稿
AI Drafting
M4-4 · AI 秘書 · 黃金 demo
30 / 36 講義 · M4-4 黃金 demo
CH4-4 · 100 分鐘 · 課程壓軸

把 Make AI 秘書,整流搬進 n8n

節點
11
Gmail Trigger → Aggregate → Gemini → Split Out → 4 路 IF → 4 個輸出
並排路由
4
Telegram / Email 回信 / Google Docs 紀錄 / HTTP webhook 通知
交付
JSON可帶走
m4-4-ai-secretary-migration.json + 機密 NDA 處理變體設計
壓軸學的不是「把 Make 抄到 n8n」,是四個心智落差:資料形狀(bundle vs items)/ 分發 vs 分支 / JSON Schema 約束 / 錯誤處理對等。
★ 100 分鐘逐節點對照 · 講義含完整截圖
Golden Demo
M4-4 · Make ↔ n8n 對照
31 / 36 講義 · 對照表
11-Node Equivalence Table

逐節點對等度查驗

觸發
Gmail · Watch Emails
Gmail Trigger · Polling
90%
收斂
Aggregator · Bundle
Aggregate Node · Items
75%
LLM
OpenAI Module
Gemini / OpenAI Node + JSON Schema
95%
分發
Router · 多路分發
Split Out + IF×4 並排
65%
錯誤
Error Handler 模組
Continue On Fail + Error Workflow
85%
★ 完整 11 列對照 + JSON download 見講義
Equivalence Table
M4-4 · 威脅模型
32 / 36 講義 · 威脅模型
Per-Step Threat Model

逐步問:資料離開本機沒?

Gmail Trigger
資料早就在 Google · 本來就離開本機
不能改 · 接受風險
Cloud
Aggregate
純本機 · 不離開
無風險
Local
Gemini API
郵件全文上傳 Google · 高風險
改 local LLM (Ollama / llama.cpp)
Switchable
Telegram 推
摘要傳 Telegram 伺服器
敏感案改 local notification
Switchable
Docs 紀錄
寫到 Google Docs · 雲端
NDA 案改寫本機 SQLite
Switchable
★ 每一步都做這個練習 · 才算真的「自架」
Threat Model
Closing · Map → 下一階段
33 / 36
What's Next · 接回主課程體系

進來

dm70h · M2D 自動化模組
把 n8n 工作站接進 70 小時數位行銷系統,做 lead scoring 與 KOL 監測
Cross-Course
gen-ai-140h · AI 工程化
n8n + 本機 LLM + RAG,搭出 140 小時生成式 AI 課程的後段工程基礎建設
Cross-Course
本課延伸 · post-llm 系列
本機 LLM 整合 9 集(overview / flow / steps / redlines / triage / format adapt 等)
Same Course
n8n 工作站 = 你跨課程的共用基礎設施
Map
Closing · 工具卡 · 一頁帶走
34 / 36
Toolkit · One Page Reference

課程工具棧速查

n8n CE
latest Docker image · 自架本機 · 無平台 ops 上限
Workflow Engine
Docker Desktop
Mac (Intel / Apple Silicon) / Windows (WSL2) · GUI 友善
Container
PostgreSQL
隨 compose 一起跑 · 工作流 / credentials 持久化
Database
Cloudflare Tunnel
Free tier · 本機 Webhook 對外公開 · 含自動重啟
Tunnel
Make
保留雲端訊號層 · 透過 Webhook 與 n8n 互打
Cloud Bridge
starter-kit
compose YAML + 一鍵腳本 + .env + README · M1 共用
Verification Asset
列印一頁帶到桌邊 · 三天內你會反覆查
Toolkit
Closing · 進階建議 · 紅線
35 / 36
Beyond This Course · Red Lines

三條進階路徑,三條紅線

進階路徑
  1. Local LLM · 接 Ollama / llama.cpp,敏感資料完全不離開本機
  2. RAG 知識庫 · n8n + Qdrant / Chroma,做企業內知識檢索
  3. 多人協作 · n8n upgrade 到 Enterprise 或自架 multi-tenant
紅線(不可踩)
  1. 備份 · 不備 n8n_data volume → 一次硬碟壞掉,工作流全沒
  2. credentials · 不要用 .env 存 API key,用 n8n credentials store
  3. 對外 · Tunnel 公開的 Webhook 必加 token 驗證,否則任何人能觸發
自架的責任 = 邊際成本的代價
Red Lines
End · n8n Vol.01
36 / 36
To Be Continued

資料工廠 · 已上線

接下來的工作,
是讓這座工廠每天替你產出真正有價值的資料。
弄一下工作室· n8n Vol.01· 9.5 小時 · 4 Modules
Contact· sky8697@gmail.com
弄一下工作室 — Forest Ink
End