n8n 自動化工作流教學:從安裝到串接 AI 的完整實作指南
想用開源工具打造專屬自動化流程,卻不知從何開始?本文帶你從 n8n 的安裝、核心概念、節點設定,一路做到串接 OpenAI 與 Webhook 的實戰範例,並整理常見錯誤與除錯技巧,讓你在台灣中小企業或個人專案中都能立即上手。
為什麼選擇 n8n
n8n 是一套開源的工作流自動化工具,定位介於 Zapier 與 Make 之間,最大的差異在於你可以自架(self-hosted),資料完全掌握在自己手上,對於重視個資與成本的台灣中小企業特別合適。相較於按執行次數計費的 SaaS 服務,自架的 n8n 只需要一台每月數百元台幣的 VPS 即可跑到手軟,不必擔心流程一多就荷包失血。
n8n 採用「節點(Node)」的視覺化設計,每一個節點代表一個動作,例如「收到 Webhook」,「查詢資料庫」,「呼叫 OpenAI」,「寄送 Email」,你只要把節點用線連起來,資料就會像水流一樣依序通過。它內建超過 400 個整合節點,同時支援自訂 HTTP Request 節點,幾乎任何有 API 的服務都能串接。
安裝 n8n 的三種方式
方式一:使用 npx 快速試用
如果你只是想在本機體驗,最快的方法是安裝 Node.js 後執行以下指令:
npx n8n
第一次執行會自動下載並在 http://localhost:5678 啟動介面。這種方式適合測試,但重開機後不會自動啟動,不建議用於正式環境。
方式二:使用 Docker(推薦正式環境)
正式部署建議用 Docker,好處是環境乾淨且方便升級:
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n
這裡的 -v ~/.n8n:/home/node/.n8n 很關鍵,它把資料掛載到主機上,避免容器刪除後流程全部消失。若要長期運行,請改用 docker compose 並加上 restart: always。
方式三:使用 n8n Cloud
若你不想管理伺服器,官方也提供 n8n Cloud 付費方案,開箱即用。缺點是需要月費,且資料存放在海外,導入前建議先評估公司對資料落地的要求。
核心概念:Trigger、Node 與資料結構
在動手前,先理解三個核心概念,後面才不會卡關。
第一是 Trigger 節點,它是流程的起點,常見的有 Manual Trigger(手動測試用),Schedule Trigger(定時排程),以及 Webhook(收到外部請求時觸發)。每個工作流必須有一個 Trigger。
第二是一般 Node,負責處理資料,例如 HTTP Request,Set,IF,Code 等。它們接收上游傳來的資料,處理後再往下傳。
第三是資料結構。n8n 的資料是一個陣列,裡面每個元素稱為一個 item,格式為 JSON。理解這點非常重要,因為當上游傳來三筆資料時,下游節點預設會被執行三次,這是新手最常誤解的地方。
實戰:打造一個 AI 自動回覆客服訊息的流程
以下用一個完整範例串起所有概念。目標是:當網站表單送出問題時,自動呼叫 OpenAI 產生回覆草稿,再寄信通知客服人員。
步驟一:建立 Webhook 觸發節點
新增一個 Webhook 節點,將 HTTP Method 設為 POST,Path 設為 customer-question。啟用後 n8n 會給你一個網址,例如 https://你的網域/webhook/customer-question,把它填到網站表單的送出目標即可。測試時先按「Listen for test event」,再從前端送一次表單,n8n 就會捕捉到資料結構。
步驟二:用 Set 節點整理欄位
表單傳來的資料可能欄位很雜,用 Set 節點只保留需要的欄位,例如把 body.question 對應成 question,把 body.email 對應成 customerEmail。這一步能讓後續節點的引用更乾淨,也方便日後維護。
步驟三:呼叫 OpenAI 節點
n8n 內建 OpenAI 節點,選擇 Message 模型(例如 gpt-4o-mini 這類成本較低的模型),在 Prompt 中用運算式引用上一步的問題:
你是一位專業客服,請用繁體中文,禮貌且具體地回覆以下客戶問題:
{{ $json.question }}
記得先在 Credentials 設定你的 OpenAI API Key。若擔心成本,可在系統提示中限制回覆長度,並選用較便宜的模型。
步驟四:用 IF 節點做品質把關
可加一個 IF 節點,判斷 OpenAI 回覆長度是否過短或包含不確定字眼,若不合格就走「轉真人」分支,合格才進入寄信分支。這種人機協作設計能大幅降低 AI 亂答的風險。
步驟五:寄送 Email 通知
最後接上 Send Email 節點(或 Gmail 節點),把客戶問題與 AI 草稿一起寄給客服信箱,主旨可用運算式帶入客戶信箱,方便辨識。客服只要微調草稿即可回覆,效率大幅提升。
排程與錯誤處理
流程做完後,別忘了兩件事。第一是把工作流從測試模式切到 Active,Webhook 才會用正式網址。第二是加上錯誤處理,n8n 支援設定 Error Workflow,當任何節點失敗時自動觸發另一個流程,例如發 LINE Notify 或寫入錯誤紀錄,避免流程默默掛掉卻沒人發現。
此外,對於需要定時執行的任務,例如每天早上八點彙整昨日訂單,使用 Schedule Trigger 搭配 Cron 表達式即可,不需要自己寫排程程式。
常見錯誤與除錯技巧
第一個常見錯誤是「節點被執行多次」。如前所述,當上游有多筆 item 時下游會逐筆執行。若你只想執行一次,可用 Aggregate 或 Code 節點先把資料合併成單筆。
第二個是「運算式引用錯誤」。n8n 的運算式用 {{ }} 包住,引用上一節點資料用 $json,引用特定節點用 $('節點名稱').item.json.欄位。名稱打錯或節點被改名都會造成引用失效,建議善用介面上的變數選單而非手打。
第三個是「Webhook 在測試模式沒反應」。測試網址與正式網址不同,且測試網址只在按下 Listen 後短時間有效,正式使用務必切到 Active。
第四個是「API Key 額度或權限問題」。呼叫 OpenAI 失敗時先看回傳的錯誤碼,401 通常是金鑰錯誤,429 是額度或速率限制,看懂錯誤碼能省下大量摸索時間。
結語
n8n 的價值在於用視覺化的方式,把原本需要寫程式的自動化任務變得人人可做,同時保有自架的彈性與資料主權。建議從一個小流程開始,例如自動彙整表單或每日報表,熟悉節點與資料結構後,再逐步串接 AI 與更複雜的邏輯。只要掌握 Trigger、Node、資料結構這三個核心,加上完善的錯誤處理,你就能為個人或公司打造穩定又省錢的自動化引擎。
常見問題
n8n 是免費的嗎?自架和 Cloud 差在哪?
n8n 的社群版原始碼免費,可自架在自己的伺服器上,只需負擔主機費用,適合重視成本與資料主權的使用者。官方另提供 n8n Cloud 付費方案,免自行維運但需月費且資料存於海外。若你有基本的伺服器操作能力,自架長期最省錢。
n8n 和 Zapier、Make 最大的差別是什麼?
最大差別是 n8n 可自架且開源,執行次數不另外計費,適合流程量大或重視資料落地的團隊。Zapier 與 Make 是純雲端服務,上手更簡單但依執行次數或步驟計費,流程一多成本會快速上升。若你需要完全掌控資料與成本,n8n 更有優勢。
為什麼我的節點會被執行很多次?
因為 n8n 的資料是一個 item 陣列,當上游傳來多筆資料時,下游節點預設會對每一筆各執行一次。若你只想執行一次,可先用 Aggregate 或 Code 節點把多筆資料合併成單筆,再往下傳。
串接 OpenAI 需要另外付費嗎?
需要。n8n 本身不含 AI 運算能力,呼叫 OpenAI 節點會使用你自己的 OpenAI API Key,費用依模型與用量向 OpenAI 計費。建議選用 gpt-4o-mini 這類成本較低的模型,並在提示中限制回覆長度以控制花費。
Webhook 測試成功但正式環境沒反應怎麼辦?
最常見原因是工作流仍在測試模式。n8n 的測試網址與正式網址不同,且測試網址只在按下 Listen for test event 後短時間有效。請把工作流切換為 Active,改用正式的 Webhook 網址,外部請求才會持續觸發流程。