今天比較偏學習筆記,當時是看了youtuber Kelly Tsai 在介紹如何使用n8n自動化處理郵件,就對這個新的技術應用感到有興趣,所以也想試試看這到底怎麼用。
那就以 n8n 為主軸開始吧 ~
n8n 是一個可自架、自訂度高的工作流自動化平台(workflow automation)。
它可以把各種「節點(nodes)」拖到畫布,串成一條「工作流(workflow)」:
由觸發器開頭(像下圖的第一個節點:排程或是手動點擊...),中間串各種動作(發 HTTP、寫資料庫、if/else 判斷 等...),最後把資料推到要放的地方。
官方強調能把「AI + 自動化」結合在日常流程裡,且適合技術團隊自建掌控(不像雲端服務被鎖定)。
(但其實 n8n 要商用的話費用很高,個人認為比較適合自己玩的人)
範例圖:
Workflow(工作流):由一個或多個節點組成的流程。按一下「Activate」之後,觸發器會在背景正常運作(如排程)。
Trigger(觸發器):讓流程「何時開始」。
在這本米用 Schedule Trigger(排程):固定頻率與時間自動啟動,這個與 Linux 的 Cron 概念相似。
Node(節點):每個步驟都是一個節點。像是:
Credentials(憑證):資料庫、雲服務的連線設定,集中管理;Postgres 節點需先建 credentials 才能使用。
Items(資料項):n8n 在節點與節點間傳遞的是「陣列形式的項目」,每項通常是一個 JSON 物件。像我們的 /scrape
回傳 items: [...]
,之後用 Item Lists → Split Out Items 把陣列拆成多筆處理。
Expressions(表達式):用 {{$json["price"]}}
之類的語法讀取上一節點輸出的欄位,或做小型運算與轉型。
定時抓價(Schedule Trigger)
支援固定間隔、指定時間、或 Cron 表達式;要記得把 Workflow Activate 才會按排程執行。時區會依 n8n 設定而定(自架可用 GENERIC_TIMEZONE
或 UI 設定)。
打任何 HTTP API(HTTP Request)
沒有專屬節點的服務也能打(例如你的 Scraper);也能處理分頁、加 Header、Query、Body 等。
直接操作 Postgres(Postgres Node)
可 Insert/Update/Query
等常見操作,官網也有排障重點(例如時區、UTC 統一)。
事件觸發(進階)
除了排程,n8n 也有 Postgres Trigger(監聽 DB 的 insert/update/delete 事件),之後做「新低價就通知」也能用這種模式。