【n8n 手把手完整教學】從零到進階打造AI Workflow/AI Agent:LLM應用工作流自動化一次上手!

Author:

想把瑣碎又重複的工作外包給「會自動回覆、會整理資料、會定時觸發任務」的AI Workflow嗎?用 n8n ‌你不需要招募助理、也不用寫一堆程式:只要把表單、google Sheets、Gmail 與LLM串成流程,就能在幾分鐘內上線一個全天候待命的自動化夥伴。更關鍵的是,從零到進階你會一口氣學懂 Trigger/Action、Input/Output、schema/JSON與動態 Expression,之後模板照抄也能改到完全貼合你的業務。

文章目錄

n8n工作流核心架構 從Trigger到Action把流程拆成可重用積木

把工作流想成「餐廳出菜流程」:有一個Trigger Node負責在特定事件發生時叫醒整套流程(例如表單送出、新信件到來、排程到點),其後串接的就都是Action Node,負責把資料往下處理、儲存、轉換,最後做出可見的結果(例如寫入‍ Google Sheet、寄出/生成​ Gmail 草稿)。你會發現⁣ n8n 的核心精神不是「按按鈕」而已,而是事件驅動 + 資料流轉:每個節點都在輸入資料(Input)與輸出資料(Output)之間做一段工作,讓整條鏈能被模板複製、被改造、被重用。

在這種「Trigger → Action」架構裡,你最需要先掌握的不是語法,而是資料長什麼樣、怎麼被節點交換。n8n 每個節點都會提供 schema/JSON 來讓你看懂輸入輸出結構:Schema像是資料欄位總覽(拖拉就能組 Expression),JSON則是完整的資料長相(用大括弧/中括弧、key/value、逗號來描述)。同時你也會反覆遇到一個關鍵概念:n8n 節點輸出的資料通常以‌ item ‌為單位(可以理解成一筆資料的集合),所以當你要寫動態內容(Expression)時,就得知道要抓的是哪個節點、哪個 item、哪個欄位。

為了讓工作流可控、可測、可長期維護,最常用的設計方式是:先把「固定流程」拆短,最後再用 ⁤Expression 把「變動內容」接上去。像從表單收集姓名與信箱、再存到 Google Sheet、再用 Set 節點補上分類⁢ tag、最後把 Gmail​ 收件者與信件內容動態套進去–這些步驟本質上就是把流程拆成可重用積木。當你需要固定字句(例如「老劉舉個栗學習資源」永遠同一句),就用固定文字;當你需要每次都換成不同收件者或不同標題,就用Expression去引用前一個節點的欄位。Expression 常見寫法核心在於:避免被節點增刪影響,改用相對安全的 $節點名.item.JSON.欄位名 方式引用資料,讓你的工作流改版時不容易整串壞掉。

最後,真正能讓你快速「上線用、而不是只先跑得動」的,就是理解模板(Template)把節點積木打包好了。n8n‌ 官方模板多到你可以直接複製、Ctrl+C/貼上後啟用,再補上你的 Credential(例如 Gmail/Google/openai 認證)就能變成自己的自動助理。範例模板通常也遵循相同骨架:Trigger拉到事件(例如每分鐘檢查新信件)、用 LLM判斷是否需要回覆(true/false),再用另一個‌ LLM 生成回覆內容,並將結果(而不是直接寄出)。這種「先草稿、後人工把關」能大幅提升可靠度:你可以維持可控性,同時把大量重複瑣事交給 workflow 處理。

資料流入與流出 schema與JSON快速讀懂方法 讓節點輸入輸出可控可測

在 n8n 裡,「節點輸入輸出可控可測」的關鍵,不是把流程跑通而已,而是你要能預測每一個節點會收到什麼資料會輸出什麼資料。因此你必須養成兩件事:每次加入節點時先看前後的 Schema / JSON,以及用 Pin data 抓住固定測試樣本,讓你每次測試都得到可比結果。

快速讀懂‌ n8n ​的資料流,建議用「三頁籤」心法:Schema:像資料地圖,告訴你有哪些欄位、欄位類型是什麼;Table:用表格概覽(多數情境不必要);JSON:看見資料在 API 層級的完整樣貌,也最適合用來除錯。拿剛剛的表單→Set→Google Sheets→Gmail 來說,你可以直接在‌ Set 節點確認輸出是否真的新增了你要的欄位(例如 tag),再在 Gmail 節點看 expression 取值是否抓到正確的欄位。

JSON 要怎麼「快速」讀懂?不用寫程式也可以抓到邏輯:大括弧 {}代表一個「物件」(描述一件事/一個人);中括弧 []代表「物件列/清單」(一串資料);每個欄位是 key ​/ value,用 雙引號包 key 與字串 value,中間用 冒號 :,欄位之間用 逗號 ,。遇到常見錯誤就兩種:漏逗號多逗號(最後一筆通常不能加)。另外你會在 n8n ‌的資料旁看到 item:它表示「一輪執行裡,那筆最小資料單位」,所以你寫 expression 時,抓資料基本都會繞回到 ‌ item 及其欄位。

要把「可控」做成真正可測,你就得善用 n8n 的測試技巧:pin ⁢data 能把第一次測到的表單提交內容「釘住」,後續測試流程就不用每次重填表單,特別適合資料量大或流程長的情況;而在 Expression 寫法上,建議優先採用「穩健取值」方式(用 $ ‌+ 節點名 + .item + .json + 欄位名),避免你後續插入/刪除節點導致取值路徑失效。照這個邏輯,你部署像「表單送出後加 tag → 送到 Gmail 以變動的收件人 mail 動態寄送」這種工作流時,輸入輸出就能逐步驗證,而不是全靠運氣。

你要做的事 看哪裡 目的
確認新增/改名欄位是否成功 Set ‌節點的 Schema / JSON 確保輸出資料結構符合預期
確認 Gmail ‍取值抓到正確收件者 Gmail ⁣節點 expression 與 JSON 預覽 避免寄到錯欄位(例如抓到錯的 mail)
讓測試可重現 Pin data 固定輸入樣本,結果可比對

Expression動態表達式與Fixed設定策略 實現主旨內容收件人全自動化

在 n8n 裡要做到「主旨內容收件人全自動化」,核心不是把文字寫死,而是把「固定」與「動態」分工清楚:用 Fixed ‌寫你永遠不變的內容,用 Expression 動態抓取你每次都會變的資料。就像傳遞「學習資源」這類通知:主旨固定為「老劉舉個栗頻道要寄送課程資料」時,直接選 Fixed ⁢最省事;收件人 Email、稱呼(例如 hi 後面的名字)這種每筆資料都不同,就必須用 Expression 從前面節點的輸出中取值。

實作時,建議你先把流程想成「資料管線」:前面用表單/Google Sheets 收到一筆資料後,n8n​ 會在後續節點把這筆資料用 JSON item ⁣挾帶下去。你在 Gmail⁣ 節點的 ToMessage/Subject 欄位看到的 Fixed 與 Expression,本質上就是在問你:「這個欄位要不要跟著目前這筆 item 變?」因此最常見的寫法會長得像這樣:{{⁤ $json.mail欄位 }}。重點是:你要確認這個欄位名稱(例如 mail、name)對應到前一個節點(或你設定來源)的 schema。

當你要把主旨做成「固定+可替換」的組合,可以這樣策略化:

  • 主旨全固定:用⁢ Fixed 寫死整句(例如「老劉舉個栗學習資源」相關固定主旨)。
  • 主旨需要帶入寄件者稱呼/分類:主旨使用 Expression,把變數(例如 name、tag)套進同一句固定文字中。
  • 收件人完全動態:To 欄位一律 Expression 取 {{ $json.mail }}(或你的實際欄位名),確保每次表單新增一列就會寄給正確的人。

為了避免 workflow 後續「加節點就壞掉」的風險,寫 Expression 時通常要選擇更穩健的取值方式。建議優先使用 {{ $json.欄位 }} ‍ 這種相依當前資料的寫法,並用 n8n 的 ⁢ schema/json 預覽確認欄位確實存在。你在拖拉⁤ schema 到 ⁣Expression 後,看到大括弧包住的那串,就是 n8n 幫你自動補好的 ‌JSON 路徑;這時就能把「動態」寫對,讓主旨、收件人、稱呼一次到位。

最後,把「信件內容客制化」也套用同一套固定/動態思路:例如 message 使用 Expression 動態帶入 name,固定保留「免費資源+下載連結」這段結構化文案;等到你再上線模板、複製貼上到不同 workflow,只要資料來源欄位命名一致(或你對應 mapping),就能維持全自動投遞。這也是為什麼能從「今天做一次」升級到「每天全天候待命」:固定的文字永遠用 Fixed,變動的收件人/稱呼永遠用 ⁣Expression。

Credential與外部API串接實戰 GCP Google ⁣Sheets與Gmail認證一次搞定

n8n 裡串接外部服務時,最容易卡關的不是流程拖節點,而是:你得先把 Credential(認證)做對,之後 Google Sheetsgmail 才能在 workflow‌ 裡穩定讀寫資料、寄信。這套實戰的做法是「一次把 Google 的驗證打通」,後面每個節點就能直接選用同一組授權,讓整條流程能從 ⁣Trigger一路跑到寄信完成。

實作流程建議你先把資料流的核心鋪好:表單觸發(Trigger)→​ Google Sheets 儲存(action)→⁢ Gmail 發信(Action)。例如表單送出後,新增一列進到你指定的 ⁤Google Sheet;此時 n8n 會拿到該筆資料(幾個欄位通常會用到:mail / name / tag 等),再把這些欄位用於 ⁤Gmail 節點的 to / subject / message。重點在於:要確保儲存節點(Google Sheets)有寫入,否則後面的資料只會停留在記憶體裡,下一筆資料來了結構就可能被覆蓋。

Google 的 Credential 在 GCP 端要準備兩塊 ​API:Google Sheets API(讓 n8n 能寫入表格)與 Google Drive API(n8n 讀取/操作文件往往也需要它才能順利列出文件)。做法是先在 GCP⁢ 新增 Project,啟用 ‌API 後,建立 OAuth⁢ client(選「Web application」),把‍ n8n 提供的 Callback / URL 填回去,再把允許的使用者 mail 加進去。最後回到 n8n 的 Google Sheets / Gmail credential 頁面,把 Client ID ⁤與 Client Secret 掛上去,並完成驗證;驗證成功後,你在 n8n 裡就會看到能選的 document / account 清單。

Credential 串好之後,真正的「外部 API 串接」就落在兩件事:欄位怎麼映射動態內容怎麼寫進去。在 Google⁢ Sheets ‌節點先用自動 mapping 或手動對到欄位;接著在 Gmail 節點,to 用表單提交的 mailmessage /⁤ subject⁢ 用 name 做客製。你可以把固定文字用固定值,變動文字用 Expression(動態表達式)把前一個節點的 schema 結構拉出來;常見安全寫法是用 JSON schema 的方式取得欄位,避免之後你增刪節點導致表達式失效。

模板複製啟用到看懂流程 ⁤Prompt與LLM節點如何安全落地

在⁤ n8n 裡啟用「模板複製」其實就像把一位已經把菜傳做熟的師傅,直接搬到你自己的廚房:流程先照著走,但最後一定要把你的憑證(Credential)輸入端(Trigger)輸出端(Action)接回你自己的服務。做法上,先在模板頁選好 workflow 後Use for free,再回到 n8n 用 Ctrl ⁤+ V 貼上;貼上後你會看到節點旁多半還帶著驚嘆號,這通常表示該節點依賴的外部服務尚未授權。此時不要急著跑全流程,先逐一點進驚嘆號節點把Credential 設好,才能確保「複製過來就能安全落地」,避免未授權才開始執行導致測試亂掉。

為了看懂整段流程是否「安全且可控」,你要記住模板在設計上通常會把工作拆成兩類節點:Trigger Node(用事件啟動,自動化的起點)與Action Node(處理資料、呼叫 LLM、寫入/寄送/更新的動作)。例如你複製的郵件助理範例:起點是 Gmail 觸發(固定每分鐘檢查新信),中間用 LLM 判斷是否需要回覆、再產生回信內容,最後把回覆做成草稿(Draft)交給人工審核。這就是「安全落地」的關鍵設計:就算 LLM ‍產出文字不完美,你仍可在草稿階段改寫、確認、決定是否真的送出,降低風險。

接著進入落地時最實用的兩步:先測試(Test)、再切到Production。在模板或表單流程中,你會看到類似​ Test URL / Production URL 的概念:設定完成且測試通過後才切換到 Production,避免資料混進正式 Google Sheet 或真的寄出信件。內部資料交換則通常以 JSON 形式流動,因此你會在節點輸入欄位看到 ‍schema/json/syntax 介面:DTO 概念是資料怎麼長、節點要吃哪個欄位。當你需要動態填值(例如收件者 mail、信件主旨、個人化稱呼),就用 n8n ⁣的 Expression 把上一個節點的欄位帶過來;若擔心之後增刪節點造成路徑不穩,建議使用較保險的取值寫法(例如帶‌ $ + 指定節點 + item ⁤+ 欄位),讓模板在複製後也維持穩定可讀。

最後,真正「有安全感」的落地策略是把審核點留在流程裡。以範例模板來看,AI 只是幫你擬草稿,並不直接一鍵寄送;你可以利用草稿檢視內容是否符合語氣(模板的 system prompt 也常會要求回應格式、是否包含特定結尾、是否乾淨無表情符號等),再決定是否送出。你可以用下面這個清單快速檢查模板是否已準備就緒:

  • Credential:所有驚嘆號節點是否都完成授權(Gmail /⁢ Sheets / LLM 模型皆已通過驗證)
  • Trigger:事件是否符合你的情境(每分鐘掃描、表單送出、排程時間等)
  • 資料流:主旨/內文是否從正確節點欄位取值(JSON/schema‌ mapping 無誤)
  • 審核機制:是否有 Draft / ⁣人工審核步驟,避免 LLM 全自動寄出
  • 測試節點:先用 Test workflow 驗證「False/True 分支」是否都能安全落地

當以上條件都通過,你就不是在「複製一個模板」,而是在「複製一套可控的流程工程」。你可以把模板當作起跑架:先保留它的資料結構與安全節點(如草稿審核),再逐步替換成你自己的 Prompt、寄送邏輯與欄位映射。這樣做的好處是:即使你是技術小白,也能用最小的改動,把別人已驗證過的 workflow 安全啟用到你的實務場景,讓 LLM 節點穩定、可追蹤、可回退。

LLM應用工作流進階設計 以AI Agent或AI分類回覆提升效率並保留人工審核

進階目標:把「模型判斷+生成回覆+人工審核」做成一條可重複、可擴充的LLM工作流。核心思路是:先用 AI分類 決定這封信/需求要不要處理,再用 AI產生草稿 生成回覆內容,最後交給你或同事用同樣的格式快速審核、通過後再寄出。這樣既保留人工掌控,也能把最耗時間的「判斷與擬稿」交給AI處理。

在n8n裡,這類工作流通常會長得像一條流水線:Trigger(觸發取得輸入)→⁣ AI分類 → IF分流 → AI生成回覆 → 寫入草稿(給人審)。你可以直接用Gmail觸發器定期/事件式抓取新郵件,接著把 subject(主旨)message(內文) 丟進模型,讓它輸出結構化結果(例如JSON:{“need_reply”: true/false, ⁢”reason”: ‍”…”})。若分類結果是「行銷信/不需要回覆」,就讓流程直接結束;若是「需要回覆」,才進入下一段生成回覆。AI分類的好處是:你不必讓LLM對所有信都產生回覆,降低token成本,也避免不必要的草稿審核。

接著進入回覆生成段:把分類後的那封信件內容餵給第二個LLM節點,要求它輸出「能直接被人工審核」的回覆草稿。實務上建議把文字規則寫得很具體,例如:用什麼語氣、要不要包含結尾、字數/格式、遇到不確定時要如何處理(例如留空或給Q&A)。範例模板常見做法是:用 system prompt 固定回覆風格與格式,用 ‌ user prompt 傳入郵件主旨與內文,並要求輸出純文字,不要多餘的符號或表情。你會發現「草稿模式」特別重要:AI可以先寫好內容,但不直接寄出,避免錯誤直接外流。

最後是人工審核:模板可用Gmail節點建立 草稿草稿(Draft),讓你在信箱端快速檢查。審核工作流的設計重點是把必要欄位都固定好:例如自動放入收件人、主旨(可對應觸發郵件的主題或你的標準化格式)、以及草稿正文。審核通過後你再讓流程走「寄出」動作(或人工從草稿直接按送出)。可以用這種方式減少風險與時間:

  • 分類先行:只對「需要回覆」的信動手,縮短審核量
  • 草稿交付:AI產出可控、可回看、方便你統一修改
  • 結構化輸出:用JSON讓IF條件穩定運作,避免模型自由發揮造成分流失誤
  • 可擴充:後續要加「不同回覆模板/不同分類類型/不同主管審核規則」,只要在分流段增加節點即可

常見問答

🤖 n8n 的自動化工作流(Workflow)到底在做什麼?

n8n 的 Workflow 就是把「觸發事件」接到「執行動作」的自動流程。
工作流通常至少包含 1 個 Trigger Node(帶閃電符號),例如你可用「表單送出」或「Gmail 收到新信」當作事件來源;Trigger 後面接的節點都是 Action Node,用來完成備料/通知/寄信/寫入 Google sheet 等任務。整體運作的核心概念是資料在各節點之間的 ⁣Input → Output 流動,你需要理解資料結構(schema/json)並在適當節點做資料儲存(例如寫入 Google Sheets),才能確保下一步不會被資料覆蓋或刷新掉。

🧩 ⁣為什麼常要用 Schema /⁣ JSON?我真的需要看懂嗎?

你需要看懂它,因為 n8n 幾乎所有節點交換資料都以 JSON 結構為基礎。
Schema ‍可以把資料欄位用「可拖拉」的方式顯示,通常用來做‌ Expression 的欄位選取與快速編輯;JSON ​則是完整的資料樣貌(由物件/陣列/鍵值對組成),常見用法是確認:
– 哪些欄位會從上一節點傳過來⁢
– 你要用哪個欄位來餵給下一個節點(例如 Gmail 的收信人 mail、主旨 subject、信件內文⁤ body)
在實作時,也最容易犯錯在「漏逗號 / 多逗號」,以及搞混資料是物件({​ })還是陣列([ ])。

📨‍ 如何用 n8n 做「表單收集 → 寫入表格 ⁢→ 自動寄信」這種流程?

你可以用「表單作‍ Trigger,再用 Google Sheets 做儲存,最後用 Gmail ⁢寄送」快速搭出一支可運作的自動化鏈。
實作邏輯通常是:
1) 建立表單(作為觸發點),送出後會產生 JSON‍ 資料(例如 name /‌ mail⁣ / 可加 tag)。
2)⁣ 接 Google Sheets 節點:用憑證讓資料能正確寫入;如果你新增欄位(例如想加上固定 tag),就用資料轉換節點(set)把 tag 補上,再把結果輸出給‍ Google Sheets。 ⁤
3) 接‌ Gmail 節點:當 Google Sheets 或前一步產出資料後,用 ​Expression 動態填入收信人(to = 表單的 ‌mail‍ 欄位)、主旨/內文(可用固定字串或把⁣ name 拖進 ⁢message 做客製化)。
此外,開發與測試時可善用⁤ pin‍ data(釘選測試資料)避免每次都要重新填表;確認整段流程後再移到 ⁢Production 環境,讓自動化真正全天候運行。

最後總結來說

把重複、瑣碎、每天都得處理的工作「外包」給 n8n 後,你會發現真正可怕的不是技術門檻,而是你以前一直用人力在做流程管理。現在你只要把「輸入是什麼、輸出要什麼、什麼時候觸發」想清楚,再把節點串起來,就能獲得一位⁣ 24 小時不抱怨的自動化夥伴:能執行、能判斷、能用 AI 產出內容,還可以在必要時加上人工審核,確保品質與可控性。

更關鍵的是:你不必從零寫到天荒地老。你可以先用模板把流程跑起來(n8n⁣ 模板數量夠你抄到靈感爆發),再逐步理解核心概念–Trigger / Action、Input / Output、Schema / JSON、以及 Expression 的動態替換方式。當你掌握這套邏輯後,AI Agent 才真正有機會從「會聊天」升級成「能做事」:它能依照需求選擇後續步驟、接工具完成任務,並在工作流中維持一致的輸入格式與結果產出。

下一步你就做一件事:把你最想省下的那件小事列出來(例如:收表單自動分類、收到信自動回覆草稿、或內容自動整理與寄送),然後挑一個 n8n 範本照著啟用,替換成你的欄位與提示詞。你會很快看到成果,也會更快知道接下來該學哪個節點與哪種 Expression。

👇想拿到這支教學的學習地圖與範本,現在就點這裡填問卷查看:
https://oldliu.zeabur.app/form/213c7352-d80a-445a-b047-f2412edae554

如果你在填寫問卷或套用模板的過程卡關,也歡迎直接留言告訴我你的使用情境(你要自動化什麼、輸入來自哪裡、輸出要到哪裡)。我會用你描述的痛點,帶你把流程設計到能跑、能用、能擴張。