錯誤處理與除錯:確保工作流的穩定性【n8n 基礎篇08】

當我們開始用 n8n 建立越來越多的自動化流程後,很快就會發現一件事:錯誤,一定會發生。 不論是 API 回傳 500、資料格式不一致,還是自己打錯變數名稱,錯誤處理與除錯(Debug)能力,其實是讓一條工作流能「長期穩定運作」的關鍵。 今天這篇,我就來跟你分享我自己在實作 n8n 流程時,最常用的錯誤處理與除錯技巧,幫你省下大量抓 bug 的時間。

為什麼錯誤處理這麼重要?

一條工作流在開發環境能順利跑完,不代表上線後也能「長期」穩定執行。

舉例來說:

  • 某天 API 回傳的資料多了一個欄位,格式跑掉 → 流程中斷
  • 使用者輸入空值 → Loop 卡住
  • 外部服務掛掉 → webhook 一直失敗

如果我們沒有預先設計錯誤處理邏輯,就會變成「等問題發生才手動修」,而這通常發生在半夜、假日、或你正在外面吃飯的時候(笑)。


錯誤處理的基本功:Error Workflow

n8n 其實內建了「Error Workflow」功能,這是一個很強大的保護機制。

簡單來說:

  • 你可以設定一條專門的錯誤處理工作流
  • 只要主流程有任何節點報錯,就會自動觸發這條錯誤處理流程

常見的應用方式:

  • 發一封錯誤通知信給自己(或團隊)
  • 把錯誤內容記錄到 Google Sheet / Notion / Database
  • 自動進行補救措施(例如重試、回滾資料)

設定方式也不複雜:

  1. 重新新增一條工作流,第一個節點選擇 Error Trigger
  2. 在後面串接你希望的通知或紀錄邏輯。
  3. 回到主工作流設定 → 勾選「Error Workflow」。

節點層級的錯誤處理:Always Output Data

有時候,我們不希望整條流程因為一個節點報錯就全部中斷。

這時候,可以打開節點裡面 Setting的「Always Output Data」 功能。

這樣做的好處是:

  • 即便節點報錯,工作流仍會繼續往下跑
  • 你可以在後面的節點自己判斷錯誤並決定要怎麼處理
  • 或是選擇你在遇到節點錯誤情況(on Error)時,可以選擇停止或是繼續執行工作流。

這在處理 API、外部系統或不穩定的資料時特別有用。


除錯小技巧:Execution Data 與 Debug 模式

當流程報錯時,n8n 會自動把錯誤紀錄下來。

這邊幾個我自己超常用的除錯技巧:

打開錯誤節點 → 查看 Output / Error Message

  • 很多時候,錯誤訊息就藏在這裡,像是「找不到 property」或「Invalid JSON」。

使用 Debug Execution:

  • 在開發階段多按幾次 Execute Node,看中間節點資料長什麼樣子,能早一步抓錯誤。

在 Code / Text 節點中加 Log:

  • 你可以刻意在節點中打印出值,幫助自己快速定位問題發生在哪裡。

進階用法:重試與備援機制

對於商業流程來說,不能只靠「錯了再通知」。

我自己在一些關鍵流程會搭配這幾種方式:

  • 在 API 節點中設定「Retry on Fail」
  • 延遲幾秒後重試一次(搭配 Wait 節點)
  • 使用 IF 判斷錯誤,再導向備援方案

例如我有一條工作流會抓電商訂單資料,如果主 API 掛了,就自動切換到備援 API,不會整條流程停擺。


最後小結:穩定比華麗更重要

很多人剛開始用 n8n 都會很專注在「做出炫酷的流程」,但真正能長期幫你省時間、替你工作的,其實是那些處理錯誤、補強細節的設計

一條有錯誤處理邏輯的工作流,才是真正能上線的工作流。

小提醒:

  • 不要忽略錯誤訊息,它往往是最好的老師
  • 多利用 Error Workflow,讓錯誤自動被紀錄
  • IF、Wait、Always Output Data 是穩定流程的好朋友

延伸閱讀(我的 n8n 系列文章)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *