作者:陳俊佑 / 臺灣大學計算機及資訊網路中心程式設計組行政專員
n8n是開源自動化工具,能視覺化串接上百種服務,打造工作流程。可整合各類AI工具如open AI,實現自動回覆、內容生成與智慧分析。就讓我們繼續看下去。
前言
大家好,我是富田町47番地的社畜工程師柚子哥。現代的人大多數會使用免費的服務來完成自己的日常任務,例如Google mail、Google Sheets、GitHub、Notion、免費的AI服務等雲端服務,但其實很多工作都是重複性的人工操作,因此n8n就是為了解決重複性的人工操作這個問題,脫穎而出的開源自動化工作流程平台,n8n提供一個直觀的視覺化介面,讓使用者無需撰寫大量程式碼,就能自由串接各種應用程式與API,自動化日常任務,從簡單的郵件通知到複雜的資料處理流程都能輕鬆實現。
n8n最大的特色之一是其強大的擴充性與開放性,使用者可以自訂節點(Node)、編寫JavaScript邏輯,甚至自行開發整合模組,使其成為極具彈性的工作流程引擎。它支援超過400種常見服務與應用,例如Google Sheets、Slack、GitHub、Notion、Airtable等,涵蓋行銷、開發、客服、業務等多種應用場景。連工程師也愛不釋手,因為他把各種串接的API都先寫好,只需要把密鑰填上就可以直接使用,返回的資料也直接採json視覺化拉取,可以直接串接到下一關使用。
在AI應用方面,n8n展現出極高的潛力。已經整合如open AI、Hugging Face、Stability AI等人工智慧平台,還把除了自動生成文字、翻譯內容、分類資料,還可以串接向量資料庫,或是串接到自己架設的開源LLM上,如此一來建立具有智慧客服回應系統就非常簡單。例如,透過n8n的串接google表單收問題,丟去ChatGPT去做分類,分類成不同的問題在丟去串接不同檢索增強生成(Retrieval-Augmented Generation, RAG)的專責LLM負責回答,再將答案自動寄回給提問者或是送到自己的系統內等待管理人員去編修文字再寄出去。這不僅提升回應速度,也大幅降低人工成本。
下面就讓我們開始跟隨官方的指引入門n8n,並使用docker來架設。
一、安裝Docker Desktop
Docker是一種開源容器化平台,用來簡化應用程式的開發、部署與運行。它利用「容器」將應用程式及其所有依賴(如程式庫、環境設定)打包在一起,使其能夠在不同環境中一致運行,無需擔心系統差異,保證環境是乾淨的,而且到時候要遷移到不同主機上時也會更方便。
先到docker的官網(https://www.docker.com/)下載Docker並安裝。

圖1、docker官網
Docker Desktop是桌面版的docker可以讓操作變成視覺化,讓新手更容易讓手管理容器。
二、建立Docker Compose
Docker Compose是Docker官方提供的一種工具,讓你可以用一個YAML檔案(通常是 docker-compose.yml)定義和管理多個容器服務,並用簡單的指令一次啟動整個應用環境。
首先找個資料夾建立一個docker-compose.yml的檔案。

圖2、建立檔案
再來用記事本打開輸入以下的設定並純檔。
version: "3.8"
volumes:
n8n_storage:
services:
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- "127.0.0.1:5678:5678"
volumes:
- n8n_storage:/home/node/.n8n

圖3、設定
這邊解釋一下設定值,讓大家可以自己去更改。
version: "3.8" 代表指定的Docker Compose 的語法版本,適用於 Docker Engine 19.03+。
volumes: n8n_storage: 代表定義一個名稱為 n8n_storage的匿名volume,用來儲存n8n 的資料(例如工作流程設定、API金鑰等),即使容器刪除資料也不會消失。
services: n8n: 代表定義一個服務名稱為 n8n,這是整個 Docker Compose 裡的主要服務。
image: n8nio/n8n:latest 代表使用官方的 n8n Docker 映像檔,latest 代表拉取最新版本,一般都建議部署固定版本來避免升級會出相容性問題。
restart: always 代表當容器意外停止(如伺服器重啟)時,會自動重新啟動 n8n。
ports: - "127.0.0.1:5678:5678" 代表本機127.0.0.1 的5678 PORT映射到容器的 5678 PORT,只能從本機存取 n8n,如果是要部署成公開服務可能要寫成- "0.0.0.0:5678:5678"。
volumes: - n8n_storage:/home/node/.n8n 代表把前面定義的 n8n_storage volume 掛載到容器內的 /home/node/.n8n 路徑,這是n8n 儲存設定與流程的資料夾。
三、啟動容器
再來就是開啟命令進入到你資料夾,並且輸入docker指令docker compose up -d,就完成了。

圖4、啟動容器
四、打開n8n
啟動好docker容器後就用打開瀏覽器輸入http://127.0.0.1:5678,看本地端的n8n看服務有沒有起來。
如果服務有起來的話應該會出現註冊畫面。這邊可以隨便打資料都沒問題,但要拿到註冊碼務必輸入正確的email,然後進入下個畫面。

圖5、註冊畫面
進入起始畫面,會要你輸入註冊碼就可以免費永久獲得進階功能,貌似是最近的活動(本篇撰寫時間是2025/05/01,如果沒有這個畫面可能是活動結束了),但這部分可以先跳過之後再輸入。

圖6、起始畫面
這時候你剛剛有註冊N8N的話,到信箱去收收看註冊信。

圖7、註冊信件
回到主要畫面,點選左下角的3個點,並點選Settings。

圖8、主畫面
點選Enter activation key。

圖9、usage and plan畫面
把email上license key填寫上去就完成。

圖10、輸入key畫面
五、n8n介面簡介
以下先做個簡單的畫面介紹,並帶大家做簡單的實作。
左邊欄位是觀看個人的流程計劃,由於是個人免費版只會看到自己的流程計劃,如果是付費雲端版就可以分享自己的流程以及共享流程。Workflows是自己設計的流程,Credentials是自己的連接憑證或權杖都在這邊,而Executions就是執行成功或錯誤訊息存放地方。

圖11、n8n介面簡介

圖12、Credentials介面
六、實作一:用台大email寄信
就讓我們從做中學習n8n吧,首先第一個範例是利用n8n去發送郵件。
首先點擊畫面右上角的Create Workflow創建先的流程。

圖13、Create Workflow
就會看到空白的操作頁面,左上角的流程名稱預設是My workflow,可以先改成Send mail,之後流程多了比較好找。

圖14、流程設計主畫面
畫面中先出現一個加號新增流程第一步,也就是要啟動這個流程,你希望是怎麼去觸發他的效果,工程師比較常見的像是排程,例如每天晚上12點自動觸發一次讓資料庫去轉檔,還有webhook來call n8n的連結來觸發,而對於一般使用者而言比較常見的觸發方式不外乎是結合google服務,有人填寫google表單時觸發流程讓表單資料送去AI辨識內容或是上傳檔案時觸發,讓檔案送去AI轉檔或是聲應檔轉成文字搞,又或者是收到mail後給AI判讀,如果是常見的問題就直接從RAG搜尋答案,回信答案給使用者。

圖15、流程設計主畫面
而我們是要學習n8n的流程,所以我們的觸發流程方式選Trigger manually手動觸發,等熟悉各項流程融會貫通後就知道要改成什麼觸發類型。

圖16、觸發方式

圖17、手動觸發方式圖標
這時按旁邊的加號就可以新增後續的流程。下一關流程搜尋一下send Email。點選後會出現兩個選項,只要選Sena an Email就好,因為我們只是要測試寄送enail。

圖18、下一關流程

圖19、send Email
接下來我們就會看到串接email的畫面,這邊是撰寫email的地方。

圖20、串接Email
在上面的Credential to connect with的地方選Create new credential,讓我們的n8n與台大的email建立SMTP協定去寄信。

圖21、Create new credential
SMTP account的user寫myntu的帳號、password就輸入myntu的密碼,Host輸入mail.ntu.edu.tw,Port輸入587。這是職員的設定,假設你是學生或校友的話請去計中官網找學生mail專屬的Host跟Port。
如果有建立成功上面會出現綠色的successfully框框。

圖22、SMTP

圖23,successfully
SMTP成功後就可以退出畫面來到send email的頁面,這邊就可以打上寄送人的email跟收件人的email,因為是測試所以寄件人跟收件人我都打自己,再輸入主旨跟內容。

圖24、successfully
輸入完畢就可以按右上角紅色的Test step,看看會不會動。如果沒有問題的話畫面中右邊的out put輸出會有來世我們又見伺服器回覆的訊息。

圖25、Test step
這時檢查myntu的email,就會發現有收到自己寄給自己的信件。

圖26、檢查mail信箱
我們的第一個範例就演示到這邊,後續篇章將會繼續帶大家用n8n去偵測email收到的mail內容並結合AI辨識,深度使用n8n流程,讓你的行政工作就像一套連續拳,行雲流水的解決所有重複的問題。
結語
當我第一次接觸n8n時,對它的概念其實並不陌生,因為市面上像Zapier、Make.com等無程式碼自動化平台早已存在一段時間。而n8n最吸引我的地方,他是一套「開源」的工具,不但可以自由架設在本地或雲端伺服器上,更重要的是它在功能上毫不遜色,甚至在某些方面提供更高的彈性與可擴充性,甚至自己修改代碼串接臺灣大學MyNTU的SSO,這讓我在使用上有非常正面的體驗。
n8n的安裝過程比我想像中簡單許多。我選擇用Docker方式自架,透過簡單的docker-compose.yml檔案設定,大約不到十分鐘就成功啟動服務。n8n提供直覺化的流程設計介面,只要透過拖拉的方式就能建立節點,並設定每個步驟要做的事情。這對於習慣程式邏輯思維的人來說非常友好,但即便沒有程式背景的使用者,也能快速上手基礎操作。
在實際使用中,我嘗試串接幾個常用服務,例如Google Sheets、市面上知名LLM的API、台大校務系統、台大電子郵件,還有我自己建置的msSQL,n8n 都輕鬆整合。特別值得一提的是它支援自訂 JavaScript 程式碼,也就是說在某些自動化流程中,我可以插入自己的邏輯判斷、字串處理或 API 呼叫,這種靈活性是其他封閉平台無法比擬的。這對開發者而言是一大優勢,能大幅擴展自動化的應用範圍。
而n8n對AI應用的支援也令人驚豔。除了我利用內建的HTTPRequest節點,成功串接gemini的API,只需要設定一次請求格式與金鑰,就能讓流程自動產生回應內容。舉例來說,我設計了一個流程:當使用者透過表單送出一段問題,n8n會將這段問題送到ChatGPT進行回答,再透過Telegram或Email將結果傳回給對方。整個流程自動化且運作穩定,大幅減少我手動處理的時間,這對客服或內容生成的應用非常實用。
當然,n8n也有一些限制,例如UI並非最現代化,節點過多時視覺上可能會顯得擁擠。此外,某些節點的文件說明不夠完整,需要靠社群或GitHub Issue去尋找解法。不過這些小問題在實際使用過程中都可以克服,尤其是n8n有一個活躍的社群與完整的開發文檔,對於排解問題非常有幫助。
總結來說,n8n是一款強大且值得推薦的自動化工具,無論你是開發者、行銷人員還是個人效率工具愛好者,都能從中獲得極大價值。它的開源特性、可擴充性與AI整合能力,使它不僅僅是替代 Zapier 的選擇,更是一套適合進階應用、自訂工作流程的強大平台。對我來說,n8n 已經成為日常數位工作流中不可或缺的一部分,我也會持續探索它更多可能性,讓自動化真正發揮價值。
參考資料
N8N官網:https://n8n.io/
N8N文件:https://docs.n8n.io/external-secrets/
N8N GitHub:https://github.com/n8n-io/n8n