iT邦幫忙

2025 iThome 鐵人賽

DAY 9
0
自我挑戰組

一路side project - 學習筆記系列 第 9

[Day 9] GU價格提醒系統 (3) - 什麼是 n8n ?

  • 分享至 

  • xImage
  •  

今天比較偏學習筆記,當時是看了youtuber Kelly Tsai 在介紹如何使用n8n自動化處理郵件,就對這個新的技術應用感到有興趣,所以也想試試看這到底怎麼用。
那就以 n8n 為主軸開始吧 ~


n8n 是什麼?

n8n 是一個可自架、自訂度高的工作流自動化平台(workflow automation)。

它可以把各種「節點(nodes)」拖到畫布,串成一條「工作流(workflow)」:
觸發器開頭(像下圖的第一個節點:排程或是手動點擊...),中間串各種動作(發 HTTP、寫資料庫、if/else 判斷 等...),最後把資料推到要放的地方

官方強調能把「AI + 自動化」結合在日常流程裡,且適合技術團隊自建掌控(不像雲端服務被鎖定)
(但其實 n8n 要商用的話費用很高,個人認為比較適合自己玩的人)

範例圖:
https://ithelp.ithome.com.tw/upload/images/20250922/20154764ZpFo0BJ6mm.png


n8n核心概念

  • Workflow(工作流):由一個或多個節點組成的流程。按一下「Activate」之後,觸發器會在背景正常運作(如排程)。https://ithelp.ithome.com.tw/upload/images/20250922/20154764kGGKMDqbhL.png

  • Trigger(觸發器):讓流程「何時開始」。
    在這本米用 Schedule Trigger(排程):固定頻率與時間自動啟動,這個與 Linux 的 Cron 概念相似。

  • Node(節點):每個步驟都是一個節點。像是:

    • HTTP Request:呼叫你的 Scraper API(或任何 REST 服務)。
    • Postgres:把資料寫入或查詢 PostgreSQL。
    • Item Lists/Set/IF:資料整形(轉欄位、展開陣列、分支判斷)。
  • Credentials(憑證):資料庫、雲服務的連線設定,集中管理;Postgres 節點需先建 credentials 才能使用。

  • Items(資料項):n8n 在節點與節點間傳遞的是「陣列形式的項目」,每項通常是一個 JSON 物件。像我們的 /scrape 回傳 items: [...],之後用 Item Lists → Split Out Items 把陣列拆成多筆處理。

  • Expressions(表達式):用 {{$json["price"]}} 之類的語法讀取上一節點輸出的欄位,或做小型運算與轉型。


為什麼適合用在這?

  • 自託管:用 Docker Compose 一鍵跑在自己的機器或主機上(資料可控)。官方也提供自架指引與 Compose 範例。
  • 排程穩、節點多:內建排程觸發器、HTTP 請求、Postgres 節點等。這些都已經夠完成「抓價 → 存 DB → 觸發通知」的全流程。
  • 可視化+可擴充:沒有專屬節點也能用「HTTP Request」打任何 REST API,必要時再接自家服務。

n8n 能做什麼

  1. 定時抓價(Schedule Trigger)
    支援固定間隔、指定時間、或 Cron 表達式;要記得把 Workflow Activate 才會按排程執行。時區會依 n8n 設定而定(自架可用 GENERIC_TIMEZONE 或 UI 設定)。

  2. 打任何 HTTP API(HTTP Request)
    沒有專屬節點的服務也能打(例如你的 Scraper);也能處理分頁、加 Header、Query、Body 等。

  3. 直接操作 Postgres(Postgres Node)
    Insert/Update/Query 等常見操作,官網也有排障重點(例如時區、UTC 統一)。

  4. 事件觸發(進階)
    除了排程,n8n 也有 Postgres Trigger(監聽 DB 的 insert/update/delete 事件),之後做「新低價就通知」也能用這種模式。


reference


上一篇
[Day 8] SAS 活動心得感想
系列文
一路side project - 學習筆記9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言