iT邦幫忙

2025 iThome 鐵人賽

DAY 26
0
AI & Data

30天之後,你就是你團隊內最會n8n的人系列 第 26

[Day 26] 將你的n8n工作流打包成「可重用模組」

  • 分享至 

  • xImage
  •  

學到這裡,你可能發現有好多個工作流,最後一步都是「發送一則格式精美的 Slack 通知」。例如「每日戰報」要發通知、「新客戶」要發通知、「Jira 狀態同步」也要發通知。

結果就是。。。
重複地在好幾個地方,都設定了幾乎一樣的 Slack 節點,複製貼上那一大串 Blocks JSON 程式碼。

更慘的是,有一天想統一改一下通知訊息的標題格式,我竟然要去五個不同的工作流裡面,一個一個手動改!
太沒效率了,而且很容易漏改!

今天,我們要學習樂高積木的玩法,告別「複製貼上」的原始人模式。

我們要將「發送 Slack 通知」這個最常用的功能,單獨抽出來,做成一個可重複使用的「標準零件」,我們稱之為「子流程 (Sub-workflow)」。

未來,任何工作流需要發通知時,不用再自己從頭蓋了,只要從我們的「零件庫」裡,拿出這個標準零件,「卡」上去就好了。想修改格式,也只需要改這一個零件,所有地方就同步更新!


模組化與可重用性的核心思想 (DRY: Don't Repeat Yourself)

如何建立一個可被呼叫的「子流程」。

如何使用 Execute Workflow 節點,在主流程中「呼叫」這個子流程。

第一步:打造我們的第一個「標準零件」 (子流程)
我們要先建立一個專門負責「發送 Slack 通知」的工作流。

建立一個全新的工作流,將它命名,例如 Sub - Send Slack Notification。

命名很重要:在子流程的名稱前面加上 Sub - 或 Module - ,是一種很好的習慣,能讓你一眼就分辨出它的用途

這個工作流的觸發器,就是預設的 Start 節點。

你可以把它想像成這個零件的「插座」,用來接收來自外部的指令和資料。

在 Start 節點後,加上一個 Slack 節點。

關鍵設定:

  • 我們要讓這個 Slack 節點的內容,變成「動態」的,由呼叫它的人來決定。

  • Channel: 在欄位中輸入運算式:{{ $json.channel }}

  • JSON / Blocks: 在欄位中輸入運算式:{{ $json.blocks }}

這段設定的意思是:「當我這個零件被使用時,我期待對方告訴我兩件事:要發送到『哪個頻道』(channel),以及訊息的『內容』是什麼 (blocks)。」

啟用它:儲存並啟用 (Active) 這個子流程。我們的第一個標準零件,已經放入零件庫待命了。

第二步:在主力流程中,「引用」我們的標準零件
現在,讓我們回到之前有使用到Slack通知的節點,如 Day 14 的「每日戰情報告」工作流。

找到流程最後面那個原本用來發送 Slack 通知的 Slack 節點,勇敢地把它刪掉!

在同樣的位置,新增一個叫做 Execute Workflow 的節點。這個節點就是「呼叫器」。

設定呼叫器:

  • Workflow: 在下拉選單中,選擇我們剛剛建立的 Sub - Send Slack Notification。

  • Source: 這是我們要傳遞給子流程的「包裹」。我們要告訴它 channel 和 blocks 的內容。點擊 Add Field 新增兩個欄位:

第一個欄位:

  • Name: channel

  • Value: 輸入你要發送的頻道名稱,例如 general。

第二個欄位:

  • Name: blocks

  • Value (Expression): 貼上我們之前寫好的那一整大段 Blocks JSON 程式碼。記得,這裡要用 Expression 模式!

現在,執行你的工作流試試看。

你會發現,即使流程中已經沒有 Slack 節點了,但 Slack 頻道依然收到了那封精美的報告!因為 Execute Workflow 節點,完美地呼叫了我們的「通知零件」,並請它完成了任務。

這樣做的好處?—— 一次修改,處處生效

從今天起,你所有的工作流,凡是需要發送 Slack 通知的,都統一使用這個 Execute Workflow 節點來呼叫你的「通知零件」。

未來,當你想修改所有通知的風格、加上公司 Logo、或是在頁尾增加一句話時,你再也不需要去十幾個地方修改了。你只需要回到 Sub - Send Slack Notification 這唯一的一個工作流中,修改它的 Slack 節點,儲存。

瞬間,所有引用了這個零件的工作流,全部都會同步更新。

今天,你學會了「化繁為簡」!

你不再只是埋頭打造一個個獨立的流程,你開始建立自己的「自動化零件庫」。

這不僅僅是為了效率,更是一種專業的、可持續發展的架構思維。它能讓你的自動化系統,在未來變得越來越龐大時,依然保持乾淨、整潔、且易於維護。

既然我們的流程已經「可靠」且「高效」,明天,我們將繼續探討另一個議題:如何讓你的工作流更容易分享與協作,以及去哪裡找到高手們已經做好的酷東西來參考。


上一篇
[Day 25] 學習n8n的錯誤處理機制,為你的自動化裝上保險絲
系列文
30天之後,你就是你團隊內最會n8n的人26
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言