n8n sub-workflow n8n 子工作流 n8n 模組化 n8n Execute Workflow 工作流管理

n8n Sub-workflow 教學:工作流模組化設計指南

學會用 n8n 的 Execute Sub-workflow 節點把大工作流拆成小模組,好維護、好重用、好除錯,附實戰範例和拆分原則。

N8NMarket 2026年4月2日 10 分鐘閱讀

你的 n8n workflow 是不是越做越長、節點越來越多,一打開滿螢幕都是線?是時候學會拆分了。

Sub-workflow 就是把一個大 workflow 拆成幾個小 workflow,互相呼叫。就像程式設計裡的 function 一樣——寫一次、到處用。

為什麼要模組化

一個 50 個節點的 workflow,出錯你要找半天。拆成 5 個 10 節點的 sub-workflow,馬上知道問題在哪。

模組化的好處:

好處說明
好維護每個 sub-workflow 只做一件事,改起來不怕影響其他部分
好重用同樣的邏輯寫一次,多個 workflow 都能呼叫
好除錯出錯的時候馬上知道是哪個模組壞了
好測試每個 sub-workflow 可以獨立跑、獨立測試
不額外計費n8n Cloud 上,sub-workflow 的執行不算進你的額度

白話版:就是把一本很厚的說明書,拆成好幾本薄的小手冊。

Execute Sub-Workflow 節點

這是串接 sub-workflow 的核心節點。

怎麼用

父 Workflow(呼叫別人的那個)

  1. 加入「Execute Sub-Workflow」節點
  2. 選擇要呼叫哪個 sub-workflow(用下拉選單選或填 Workflow ID)
  3. 設定要傳什麼資料給 sub-workflow

子 Workflow(被呼叫的那個)

  1. 把觸發節點換成「Execute Sub-workflow Trigger」
  2. 這個 Trigger 會接收父 workflow 傳過來的資料
  3. 處理完之後,最後一個節點的輸出會回傳給父 workflow

設定選項

選項說明
SourceDatabase(從清單選 workflow)或 URL(填 workflow URL)
ModeOnce for each item(每個 item 呼叫一次)或 Once for all items(全部一起傳)

參數傳遞

父 → 子:傳資料進去

Execute Sub-Workflow 節點會把當前的 item 資料原封不動傳給子 workflow。在子 workflow 裡面用 {{ $json.xxx }} 就能取用。

如果你想只傳特定欄位,在 Execute Sub-Workflow 前面放一個 Edit Fields 節點,整理好要傳的資料。

子 → 父:回傳結果

子 workflow 最後一個節點的 output,會自動回傳給父 workflow 的 Execute Sub-Workflow 節點。

在父 workflow 裡,你可以用 {{ $json.xxx }} 取得子 workflow 回傳的資料。

父 Workflow:
[Trigger] → [準備資料] → [Execute Sub-Workflow] → [用回傳的結果繼續]

                              子 Workflow:
                    [Sub-workflow Trigger] → [處理] → [回傳結果]

錯誤處理

子 workflow 出錯的時候,錯誤會冒泡到父 workflow 的 Execute Sub-Workflow 節點。

處理方式

方式 1:在子 workflow 內部處理

在子 workflow 裡加 Error Handler,把錯誤吞掉,回傳一個標記:

{ "success": false, "error": "出錯的原因" }

父 workflow 收到後用 IF 節點判斷 success 是 true 還是 false。

方式 2:在父 workflow 處理

在 Execute Sub-Workflow 節點的 Settings 裡開 Continue On Fail。子 workflow 出錯的時候,父 workflow 不會停下來,而是把錯誤資訊傳到下一個節點。

實測過的,放心用。建議重要的 sub-workflow 兩種都做——子 workflow 自己處理能處理的,真的出大事讓父 workflow 攔截。

實戰範例:拆分大工作流

場景:每日自動報表

原本的大 workflow(30 個節點):

排程觸發 → 抓 GA4 資料 → 抓 Stripe 資料 → 抓社群數據
→ 資料清洗 → 資料合併 → 算 KPI → 產生圖表
→ 組合報告 → 寄 Email → 發 Slack 通知

拆分後:

主 Workflow

[Schedule Trigger]
→ [Execute Sub-Workflow: 抓資料]
→ [Execute Sub-Workflow: 分析資料]
→ [Execute Sub-Workflow: 產出報告]
→ [Execute Sub-Workflow: 發送通知]

Sub-Workflow 1:抓資料

[Sub-workflow Trigger] → [GA4 API] → [Stripe API] → [社群 API] → [Merge] → [回傳]

Sub-Workflow 2:分析資料

[Sub-workflow Trigger] → [資料清洗] → [算 KPI] → [回傳]

Sub-Workflow 3:產出報告

[Sub-workflow Trigger] → [產生圖表] → [組合 HTML] → [回傳]

Sub-Workflow 4:發送通知

[Sub-workflow Trigger] → [寄 Email] → [發 Slack] → [回傳]

每個 sub-workflow 只做一件事,清清楚楚。

另一個場景:可重用的「寄通知」模組

你有 10 個 workflow 都需要在結束時發 Slack 通知。與其每個都放一個 Slack 節點,不如做一個「通知 Sub-Workflow」:

[Sub-workflow Trigger] → [IF: 通知管道]
  → Slack: [發 Slack]
  → Email: [寄 Email]
  → LINE: [打 LINE API]

所有 workflow 都呼叫同一個通知模組。以後要改通知格式?改這一個就全部生效。

拆分原則

原則說明
一個 sub-workflow 做一件事「抓資料」和「分析資料」拆開
會重複用的邏輯一定要拆通知、錯誤處理、資料清洗
超過 15 個節點就考慮拆太長的 workflow 難維護
跨團隊共用的拆出來例如公司的「寄信模組」大家都能用
不要拆太碎3 個節點的 workflow 不用特別拆

命名規則

建議用前綴區分:

  • [Main] 每日報表
  • [Sub] 抓 GA4 資料
  • [Sub] 寄通知
  • [Sub] 資料清洗
  • [Error] 全域錯誤處理

在 n8n 的 Workflow 列表裡一目了然。

先跑起來再說。不用一開始就完美模組化——先把 workflow 做出來,跑順了再慢慢拆。

延伸閱讀

外部參考:


每週限量包裡有幾個實用的 Sub-workflow 模板(通知模組、錯誤處理模組、資料清洗模組),直接匯入就能用。

本週限量包 >> n8nstart.cc/weekly


FAQ

Sub-workflow 可以呼叫另一個 sub-workflow 嗎?

可以。Sub-workflow 裡面可以再放 Execute Sub-Workflow 節點,形成多層呼叫。但不建議嵌套太深(2-3 層就好),不然除錯會很痛苦。

Sub-workflow 的執行有沒有額度限制?

n8n Cloud 上,sub-workflow 的執行不計入每月執行額度,也不計入活躍 workflow 數量。自架版沒有任何限制。

Sub-workflow 跟 Error Workflow 有什麼不同?

Sub-workflow 是你主動呼叫的,用來拆分邏輯。Error Workflow 是 n8n 在發生錯誤時自動觸發的,用來處理錯誤通知。兩者可以搭配使用。