在 Day 25,我們成功為 n8n 裝上了 AI 大腦,讓它學會了閱讀和總結。然而,我們很快會發現一個更棘手的問題:資訊來源本身是碎片化的。
我們的情報散落在各處:技術新聞來自 RSS Feed,社群討論在 Telegram 頻道,重要的產品更新公告可能只在官方網站上,而團隊的內部通知則來自 Google Sheets。難道我們要為每一個來源都建立一個獨立的工作流嗎?
今天,我們將挑戰一個更高階的架構,將 n8n 從一個「點對點」的工具,升級為一個「多對一」的資訊整合總線 (Information Bus)。我們將打造一個單一的工作流,能夠同時接收來自多個不同平台的資訊,將它們統一處理,最後彙整成一份每日簡報。
我們的目標: 建立一個 n8n 工作流,它能:
{source, title, content, url}
格式。"資訊輸入端 (多個Triggers)"
A[RSS Feed Trigger: 監控ITHOME]
B[Telegram Trigger: 監控社群頻道]
C[Google Sheets Trigger: 監控團隊公告]
end
"資訊處理與輸出"
A --> D(Merge: 彙整所有事件);
B --> D;
C --> D;
D --> E[Code: 統一資料格式];
E --> F[Discord: 發送到彙報頻道];
end
這個架構中的 Merge
和 Code
節點,就是我們資訊總線的「守門人」和「翻譯官」。
在一個新的 n8n 工作流中,分別加入以下三個觸發器 (Trigger) 節點。
龍頭一:RSS Feed Trigger (監控 ITHOME)
https://www.ithome.com.tw/rss/all
1
Hour龍頭二:Telegram Trigger (監控 Telegram)
Message
龍頭三:Google Sheets Trigger (監控 Google Sheets)
30
MinutesMerge
節點是這個流程的咽喉,它負責將來自不同觸發器的、各自獨立的事件,合併成一個統一的資料流。
Merge
節點,然後將上面三個觸發器節點的輸出端,全部連接到這個 Merge
節點的輸入端。Combine
。這個模式會確保無論哪個觸發器進來了資料,都會被向下傳遞。這是整個流程的「大腦」。不同來源的資料結構千奇百怪,我們需要用一小段 JavaScript 來將它們「正規化 (Normalize)」成我們想要的統一格式。
Code
節點,連接在 Merge
節點之後。// 取得上一個節點傳來的資料
const item = items[0].json;
const output = {};
// 判斷資料來源,並進行格式轉換
if (item.title && item.link) {
// 來源是 RSS Feed
output.source = item.feed.title || 'RSS';
output.title = item.title;
output.content = item.contentSnippet;
output.url = item.link;
} else if (item.message && item.message.text) {
// 來源是 Telegram
output.source = item.message.chat.title || 'Telegram';
output.title = `來自 ${item.message.from.first_name} 的訊息`;
output.content = item.message.text;
output.url = ''; // Telegram 訊息沒有 URL
} else if (item.Timestamp && item.Announcement) {
// 來源是 Google Sheets (假設欄位名為 Timestamp 和 Announcement)
output.source = '團隊內部公告';
output.title = item.Announcement;
output.content = item.Details || ''; // 假設有一個 Details 欄位
output.url = '';
} else {
// 無法識別的來源,可以選擇忽略或發送錯誤通知
return [];
}
// 回傳標準化後的物件
return [{ json: output }];
經過了翻譯官的努力,現在所有資訊都變成了統一的格式。因此,我們的 Discord 節點只需要一套模板,就能處理所有來源的情報。
Discord
節點,並使用 Embeds。{{$json.source}}
(顯示資訊來源){{$json.title}}
{{$json.url}}
(如果 URL 為空,標題就不會有超連結){{$json.content}}
恭喜你!今天,你不再只是一個會使用 n8n 節點的「工人」,而是一位能夠設計複雜資料流的「自動化架構師」。
我們學會了 n8n 中一個極其強大但常被忽略的特性:單工作流、多觸發器。並掌握了在真實世界中最實用的技能之一:資料正規化。這個「資訊總線」的設計模式,是你邁向資深自動化玩家的關鍵一步,它能讓你:
else if
判斷即可。Day 26 的挑戰,不僅是技能的整合,更是思維模式的升級。你已經具備了設計複雜、健壯、且易於擴展的企業級自動化流程的能力。