n8n-workflow-patterns

n8n-workflow-patterns

熱門

來自真實 n8n 工作流程的經過驗證的工作流程架構模式。在建立新工作流程、設計工作流程結構、選擇工作流程模式、規劃工作流程架構,或詢問關於 Webhook 處理、HTTP API 整合、資料庫操作、AI 代理工作流程、批次處理或排程任務時使用。當使用者要求建立、建置或設計 n8n 工作流程、自動化流程或連接服務時,務必查閱此技能——即使他們沒有明確提到「模式」。涵蓋 Webhook、API、資料庫、AI、批次處理和排程自動化架構。也適用於最佳化慢速工作流程或加速大量項目處理(節點數量、batchSize、全部項目 vs 每個項目)。

5785星標
979分支
更新於 2026/7/6
SKILL.md
readonlyread-only
name
n8n-workflow-patterns
description

Proven workflow architectural patterns from real n8n workflows. Use when building new workflows, designing workflow structure, choosing workflow patterns, planning workflow architecture, or asking about webhook processing, HTTP API integration, database operations, AI agent workflows, batch processing, or scheduled tasks. Always consult this skill when the user asks to create, build, or design an n8n workflow, automate a process, or connect services — even if they don't explicitly mention 'patterns'. Covers webhook, API, database, AI, batch processing, and scheduled automation architectures. Also use when optimizing a slow workflow or speeding up large-item-count processing (node count, batchSize, all-items vs per-item).

n8n 工作流程模式

經過驗證的 n8n 工作流程建構架構模式。


6 大核心模式

基於真實工作流程使用情況分析:

  1. Webhook 處理(最常見)

    • 接收 HTTP 請求 → 處理 → 輸出
    • 模式:Webhook → 驗證 → 轉換 → 回應/通知
  2. HTTP API 整合

    • 從 REST API 擷取 → 轉換 → 儲存/使用
    • 模式:觸發器 → HTTP 請求 → 轉換 → 動作 → 錯誤處理器
  3. 資料庫操作

    • 讀取/寫入/同步資料庫資料
    • 模式:排程 → 查詢 → 轉換 → 寫入 → 驗證
  4. AI 代理工作流程

    • 具有工具和記憶體的 AI 代理
    • 模式:觸發器 → AI 代理(模型 + 工具 + 記憶體)→ 輸出
  5. 排程任務

    • 定期自動化工作流程
    • 模式:排程 → 擷取 → 處理 → 傳送 → 記錄
  6. 批次處理(如下)

    • 以區塊處理大型資料集,並遵守 API 速率限制
    • 模式:準備 → SplitInBatches → 每批次處理 → 累積 → 彙總

模式選擇指南

何時使用每種模式:

Webhook 處理 - 用於:

  • 從外部系統接收資料
  • 建立整合(Slack 指令、表單提交、GitHub webhook)
  • 需要即時回應事件
  • 範例:「接收 Stripe 付款 webhook → 更新資料庫 → 發送確認」

HTTP API 整合 - 用於:

  • 從外部 API 擷取資料
  • 與第三方服務同步
  • 建立資料管道
  • 範例:「擷取 GitHub issue → 轉換 → 建立 Jira 工單」

資料庫操作 - 用於:

  • 資料庫之間的同步
  • 依排程執行資料庫查詢
  • ETL 工作流程
  • 範例:「讀取 Postgres 記錄 → 轉換 → 寫入 MySQL」

AI 代理工作流程 - 用於:

  • 建立對話式 AI
  • 需要具有工具存取權的 AI
  • 多步驟推理任務
  • 範例:「與可搜尋文件、查詢資料庫、發送電子郵件的 AI 聊天」

排程任務 - 用於:

  • 定期報告或摘要
  • 定期資料擷取
  • 維護任務
  • 範例:「每日:擷取分析資料 → 產生報告 → 透過電子郵件發送團隊」

批次處理 - 用於:

  • 處理超過 API 批次限制的大型資料集
  • 需要跨多個 API 呼叫累積結果
  • 巢狀迴圈(例如,多個類別 × 每個類別的分頁 API 呼叫)
  • 範例:「為 4 個市場擷取產品 × 每次 API 呼叫 1000 筆 → 彙總所有結果」

常見工作流程元件

所有模式都共享這些建構區塊:

1. 觸發器

  • Webhook - HTTP 端點(即時)
  • 排程 - 基於 Cron 的定時(定期)
  • 手動 - 點擊執行(測試)
  • 輪詢 - 檢查變更(間隔)

2. 資料來源

  • HTTP 請求 - REST API
  • 資料庫節點 - Postgres、MySQL、MongoDB
  • 服務節點 - Slack、Google Sheets 等
  • 程式碼 - 自訂 JavaScript/Python

3. 轉換

  • Set - 對應/轉換欄位
  • 程式碼 - 複雜邏輯
  • IF/Switch - 條件路由
  • Merge - 合併資料流

4. 輸出

  • HTTP 請求 - 呼叫 API
  • 資料庫 - 寫入資料
  • 通訊 - 電子郵件、Slack、Discord
  • 儲存 - 檔案、雲端儲存

5. 錯誤處理

  • 錯誤觸發器 - 捕捉工作流程錯誤
  • IF - 檢查錯誤條件
  • Stop and Error - 明確失敗
  • 繼續執行(失敗時) - 每個節點設定

工作流程建立檢查清單

建立任何工作流程時,請遵循此檢查清單:

規劃階段

  • [ ] 識別模式(webhook、API、資料庫、AI、排程)
  • [ ] 列出所需節點(使用 search_nodes)
  • [ ] 了解資料流程(輸入 → 轉換 → 輸出)
  • [ ] 規劃錯誤處理策略

實作階段

  • [ ] 使用適當的觸發器建立工作流程
  • [ ] 新增資料來源節點
  • [ ] 設定驗證/憑證
  • [ ] 新增轉換節點(Set、Code、IF)
  • [ ] 新增輸出/動作節點
  • [ ] 設定錯誤處理

驗證階段

  • [ ] 驗證每個節點設定(validate_node)
  • [ ] 驗證完整工作流程(validate_workflow)
  • [ ] 使用範例資料測試
  • [ ] 處理邊緣情況(空資料、錯誤)

部署階段

  • [ ] 檢視工作流程設定(執行順序、逾時、錯誤處理)
  • [ ] 使用 activateWorkflow 操作啟用工作流程
  • [ ] 監控首次執行
  • [ ] 記錄工作流程目的和資料流程

工作流程生命週期:啟用前先驗證、確認、測試

建立節點只是開始,不是結束。在工作流程上線前,請通過四個關卡——並記住標題規則:驗證通過是必要條件,但不是充分條件。 一個工作流程可以驗證通過,但仍然會遺失項目、選錯 Merge 輸入,或以純文字形式發布 Slack 訊息。乾淨的驗證只表示形狀正確,不代表邏輯正確。

  1. 驗證。 在建置期間對完整 JSON 執行 validate_workflow,或在工作流程存在於實例後執行 n8n_validate_workflow({ id })。修正每個錯誤並重新驗證。這會捕捉結構層的 schema、節點設定、運算式和參考錯誤。
  2. 確認連線。 使用 n8n_get_workflow({ id }) 拉取工作流程,並直接讀取 connections 物件。驗證確認連線沒有中斷;它不確認連線是否正確。這是你會發現有效但接錯線的地方:Merge 的 useDataOfInput 與連線插槽不符、Switch 的 fallback 未連接到任何東西、分支從未接線到後續節點、錯誤輸出沒有去處。(請參閱 n8n Node Configuration 技能的 NODE_FAMILY_GOTCHAS.md 以了解無聲錯誤。)
  3. 測試。 執行 n8n_test_workflow 並透過 n8n_executions 檢查輸出。確認輸出形狀符合消費者的預期、所有分支都產生了資料,並且(對於 webhook API)狀態/主體/標頭正確。測試期間會觸發真實的副作用——寫入會提交、訊息會發送、外部 API 會被呼叫。如果任何節點有使用者可見的副作用,請在使用者確認後再執行,或先針對安全資料進行測試。
  4. 僅在前三步通過後才啟用——使用 n8n_update_partial_workflow 搭配 activateWorkflow 操作。不要在乾淨驗證後就直接啟用;一個會遺失資料或重複發送的活躍工作流程,比從未啟動的更糟。

跳過任何關卡,就是用現在幾分鐘的時間,換取之後除錯一個可能具有狀態、可能承載流量的線上工作流程。這個交易從來不值得。


資料流程模式

線性流程

觸發器 → 轉換 → 動作 → 結束

用於:具有單一路徑的簡單工作流程

分支流程

觸發器 → IF → [True 路徑]
             └→ [False 路徑]

用於:根據條件執行不同動作

並行處理

觸發器 → [分支 1] → Merge
       └→ [分支 2] ↗

用於:可以同時執行的獨立操作

迴圈模式

觸發器 → Split in Batches → 處理 → 迴圈(直到完成)

用於:以區塊處理大型資料集

錯誤處理器模式

主要流程 → [成功路徑]
         └→ [錯誤觸發器 → 錯誤處理器]

用於:需要獨立的錯誤處理工作流程


批次處理模式

SplitInBatches 迴圈

SplitInBatches 節點將大型資料集分割成較小的區塊進行處理。了解其輸出至關重要:

  • main[0] = 完成 — 在所有批次完成後觸發一次
  • main[1] = 每個批次 — 每個批次觸發一次(這是迴圈主體)
準備項目 → SplitInBatches → [main[1]: 處理批次] → (迴圈回去)
                                  [main[0]: 完成] → Limit 1 → 彙總

務必在完成輸出後新增一個 Limit 1 節點。

選擇 batchSize(成本槓桿)

SplitInBatches 迴圈每次迭代都會重新執行整個主體——每次迭代約 0.8 毫秒的引擎開銷加上主體本身的成本——因此總成本約為 ⌈items / batchSize⌉ × (overhead + body)。batchSize 是一個直接的加速旋鈕:

  • 選擇實際限制允許的最大 batchSize(API 頁面大小、速率限制、記憶體)。較大的批次 = 較少的迭代 = 較少的開銷;主體仍然會處理每個項目。
  • batchSize: 1 是最昂貴的極端——每個項目一次完整的引擎傳遞。僅在必須一次處理一個項目時使用(巢狀迴圈控制,或只接受一個 id 的 API)。
  • 如果你只是為了「遍歷項目」而迴圈,且沒有外部限制,通常不需要迴圈——單一的 All Items Code 節點處理整個集合的成本要低得多。

跨迭代資料

迴圈結束後,$('Node Inside Loop').all() 只會回傳最後一個批次的項目。要跨所有迭代累積,請在迴圈內的 Code 節點中使用 $getWorkflowStaticData('global')。完整模式請參閱 n8n Code JavaScript 技能。

巢狀迴圈

當處理 N 個類別 × 每個類別 M 個項目(API 有批次限制)時:

定義類別(N 個項目)
  → 外層迴圈(SplitInBatches, batchSize=1)
    → 準備類別資料
    → 內層迴圈(SplitInBatches, batchSize=1000)
      → API 呼叫 → 驗證 → (透過 main[1] 迴圈回內層迴圈)
    → 內層完成[0] → 速率限制延遲 → 回到外層迴圈
  → 外層完成[0] → Limit 1 → 最終彙總

接線陷阱:內層完成[0]必須連回外層迴圈輸入,而不是彙總。外層完成[0]饋入最終彙總。

API 分頁

對於沒有多 ID 過濾的 API,使用 id_from 加上日期視窗進行高效分頁:

排程 → 設定日期視窗 → 擷取頁面 → 處理
  → IF 還有更多? → [true] 更新 id_from → 擷取頁面(迴圈)
                  → [false] → 彙總 → 輸出

乾執行 / 驗證容錯

當測試時 API 寫入節點被停用(用於乾執行),下游驗證節點會收到請求主體而非回應。讓驗證具有容錯性:

// 在驗證 Code 節點中
const body = $input.first().json;
const looksLikeRequest = body.method && body.parameters && !body.status;
if (looksLikeRequest) {
  return [{ json: { status: 'SKIPPED', message: '上游已停用用於測試' }}];
}
// 以下為正常回應驗證...

熱路徑效能

當工作流程處理數千個項目且 I/O 很少時,其速度取決於 n8n 跨越每個項目/每次迭代邊界的次數——每次跨越都會建立執行上下文並複製項目。四個架構選擇主導效能:

  1. 偏好更少、更胖的 All-Items 節點,而非長轉換鏈。 每個節點→節點跳躍都會重新複製所有項目(每次跳躍約 0.05 毫秒/項目),因此六個串聯的 Code/Set 節點的成本約為執行相同步驟的單一 All-Items Code 節點的 7 倍。合併熱路徑。
  2. 使用 Code「Run Once for All Items」,而非「Each Item」——約 0.02 毫秒/項目 vs 約 0.6 毫秒/項目(約 25–30 倍)。Each-Item Code 節點的鏈是最糟的情況;每個項目的稅金會乘以節點數量。
  3. 最大化 SplitInBatches 迴圈中的 batchSize(請參閱上面的批次處理模式)——迭代是成本所在。
  4. 不要微調運算式——複雜度是免費的;節點和迭代次數才是你付出的成本。

但先做效能分析。 大多數生產工作流程是 I/O 密集型——順序的 HTTP / DB / Sheets 呼叫(每個數百毫秒)使上述所有因素相形見絀。這些規則在轉換工作是瓶頸時,或反模式(Each-Item Code、batchSize 1、長每個項目鏈)將低成本操作變成慢速操作時才重要。在少於幾百個項目時,這些都不重要。n8n Code JavaScript 技能有完整的測量模型。


整合特定陷阱

Google Sheets

  • 絕對不要對有公式欄位的試算表使用 append——它會破壞公式。使用 Google Sheets API values.update(PUT)透過 HTTP Request 節點搭配 googleApi 憑證
  • 對依賴公式的欄位寫入數字,而非字串——字串 "4.98" 會破壞 ADD() 公式。在 Code 節點中使用 parseFloat()
  • 每個項目執行陷阱:Google Sheets 節點對每個輸入項目執行一次。如果你需要單次大量寫入,先在 Code 節點中將項目彙總為一個
  • UNFORMATTED_VALUE 回傳數字,而非像 "N/A" 的文字——在 Code 節點中明確過濾

Google Drive

  • convertToGoogleDocument: true 會建立 Google 文件(文字),而非 Google 試算表——要上傳 CSV 供下載,請完全省略此選項
  • CSV 下載連結格式https://drive.google.com/uc?id={fileId}&export=download——使用此格式而非 /view 連結

雙向閾值檢查

比較值(價格、數量、指標)時,務必檢查兩個方向:

// ❌ 只捕捉增加
if (diff > threshold) { flag(); }

// ✅ 同時捕捉暴漲和暴跌——兩者都是資料品質訊號
if (Math.abs(diff) > threshold) { flag(); }

常見陷阱

1. Webhook 資料結構

問題:無法存取 webhook 負載資料

解決方案:資料巢狀於 $json.body

❌ {{$json.email}}
✅ {{$json.body.email}}

請參閱:n8n Expression Syntax 技能

2. 多個輸入項目

問題:節點處理所有輸入項目,但我只想要一個

解決方案:使用「Execute Once」模式或僅處理第一個項目

{{$json[0].field}}  // 僅第一個項目

3. 驗證問題

問題:API 呼叫失敗,出現 401/403

解決方案

  • 正確設定憑證
  • 使用「Credentials」區段,而非參數
  • 在工作流程啟用前測試憑證

4. 節點執行順序

問題:節點以非預期順序執行

解決方案:檢查工作流程設定 → 執行順序

  • v0:從上到下(舊版)
  • v1:基於連線(建議)

5. 運算式錯誤

問題:運算式顯示為文字

解決方案:在運算式周圍使用 {{}}

  • 詳情請參閱 n8n Expression Syntax 技能

與其他技能的整合

這些技能可與工作流程模式搭配使用:

n8n MCP Tools Expert - 用於:

  • 為你的模式尋找節點(search_nodes)
  • 了解節點操作(get_node)
  • 建立工作流程(n8n_create_workflow)
  • 部署範本(n8n_deploy_template)
  • 使用 tools_documentation({topic: "ai_agents_guide", depth: "full"}) 取得 AI 模式指導
  • 使用 n8n_manage_datatable 管理資料表

n8n Expression Syntax - 用於:

  • 在轉換節點中編寫運算式
  • 正確存取 webhook 資料({{$json.body.field}})
  • 參考先前的節點({{$node["Node Name"].json.field}})

n8n Node Configuration - 用於:

  • 設定模式節點的特定操作
  • 了解節點特定需求

n8n Validation Expert - 用於:

  • 驗證工作流程結構
  • 修正驗證錯誤
  • 確保工作流程在部署前正確

模式統計

常見工作流程模式:

最常見觸發器

  1. Webhook - 35%
  2. 排程(定期任務) - 28%
  3. 手動(測試/管理) - 22%
  4. 服務觸發器(Slack、電子郵件等) - 15%

最常見轉換

  1. Set(欄位對應) - 68%
  2. Code(自訂邏輯) - 42%
  3. IF(條件路由) - 38%
  4. Switch(多條件) - 18%

最常見輸出

  1. HTTP 請求(API) - 45%
  2. Slack - 32%
  3. 資料庫寫入 - 28%
  4. 電子郵件 - 24%

平均工作流程複雜度

  • 簡單(3-5 個節點):42%
  • 中等(6-10 個節點):38%
  • 複雜(11+ 個節點):20%

快速入門範例

範例 1:簡單 Webhook → Slack

1. Webhook(路徑:"form-submit",POST)
2. Set(對應表單欄位)
3. Slack(發送訊息到 #notifications)

範例 2:排程報告

1. 排程(每天上午 9 點)
2. HTTP 請求(擷取分析資料)
3. Code(彙總資料)
4. 電子郵件(發送格式化報告)
5. 錯誤觸發器 → Slack(失敗時通知)

範例 3:資料庫同步

1. 排程(每 15 分鐘)
2. Postgres(查詢新記錄)
3. IF(檢查記錄是否存在)
4. MySQL(插入記錄)
5. Postgres(更新同步時間戳)

範例 4:AI 助理

1. Webhook(接收聊天訊息)
2. AI Agent
   ├─ OpenAI Chat Model(ai_languageModel)
   ├─ HTTP Request Tool(ai_tool)
   ├─ Database Tool(ai_tool)
   └─ Window Buffer Memory(ai_memory)
3. Webhook Response(發送 AI 回覆)

範例 5:API 整合

1. 手動觸發器(用於測試)
2. HTTP 請求(GET /api/users)
3. Split In Batches(一次處理 100 筆)
4. Set(轉換使用者資料)
5. Postgres(更新或插入使用者)
6. 迴圈(回到步驟 3 直到完成)

詳細模式檔案

有關每種模式的全面指導:


真實範本範例

來自 n8n 範本庫:

範本 #2947:天氣到 Slack

  • 模式:排程任務
  • 節點:排程 → HTTP 請求(天氣 API)→ Set → Slack
  • 複雜度:簡單(4 個節點)

Webhook 處理:最常見模式

  • 最常見:表單提交、付款 webhook、聊天整合

HTTP API:常見模式

  • 最常見:資料擷取、第三方整合

資料庫操作:常見模式

  • 最常見:ETL、資料同步、備份工作流程

AI 代理:使用量成長中

  • 最常見:聊天機器人、內容生成、資料分析

使用 n8n-mcp 工具的 search_templatesget_template 尋找範例!


最佳實務

✅ 要

  • 從解決問題的最簡單模式開始
  • 在建置前規劃工作流程結構
  • 在所有工作流程上使用錯誤處理
  • 在啟用前使用範例資料測試
  • 遵循工作流程建立檢查清單
  • 使用描述性節點名稱
  • 記錄複雜工作流程(備註欄位)
  • 部署後監控工作流程執行

❌ 不要

  • 一次建置完整工作流程(迭代!編輯間隔平均 56 秒)
  • 在啟用前跳過驗證
  • 忽略錯誤情境
  • 在簡單模式足夠時使用複雜模式
  • 在參數中硬編碼憑證
  • 忘記處理空資料情況
  • 混合多種模式而沒有明確邊界
  • 未經測試就部署

摘要

重點

  1. 6 大核心模式涵蓋 90% 以上的工作流程使用案例
  2. Webhook 處理是最常見的模式
  3. 每個工作流程都使用工作流程建立檢查清單
  4. 規劃模式選擇節點建置驗證部署
  5. 與其他技能整合以完成工作流程開發

下一步

  1. 識別你的使用案例模式
  2. 閱讀詳細的模式檔案
  3. 使用 n8n MCP Tools Expert 尋找節點
  4. 遵循工作流程建立檢查清單
  5. 使用 n8n Validation Expert 進行驗證

相關技能

  • n8n MCP Tools Expert - 尋找和設定節點
  • n8n Expression Syntax - 正確編寫運算式
  • n8n Validation Expert - 驗證和修正錯誤
  • n8n Node Configuration - 設定特定操作