2025年10月29日 星期三

n8n 入門完全指南 - 認識與安裝


n8n 入門完全指南 - 認識與安裝

一、什麼是 n8n?

1.1 n8n 簡介

n8n 是一個開源的工作流程自動化平台,結合了 AI 功能與商業流程自動化能力,讓技術團隊既能享有程式碼的彈性,又能擁有無程式碼工具的快速開發效率。這個工具的發音可以唸成「en-eight-en」或「nodemation」,名稱源自於「node」(節點視圖與 Node.js)和「automation」(自動化)的組合。

想像一下:你每天需要在不同的應用程式之間複製貼上資料、手動發送通知、整理試算表,這些重複性的工作耗費大量時間。n8n 就像你的數位助理,能夠自動執行這些繁瑣任務,讓你專注在更有價值的工作上。

1.2 Fair-code 授權模式

n8n 採用 fair-code 授權模式,允許用戶自行部署,確保資料完全掌控在自己手中,同時避免傳統專有軟體的限制。這意味著:

(雖可自架與修改,但若將 n8n 作為商業託管平台或服務轉售,須另行檢視授權條款)

  • 原始碼開放:你可以檢視、修改原始碼
  • 自由部署:可以在自己的伺服器上運行
  • 無隱藏費用:沒有按執行次數計費的限制
  • 社群驅動:擁有活躍的開源社群支援

1.3 為什麼選擇 n8n?

相較於 Zapier、Make(前身為 Integromat)等競爭對手,n8n 具有以下優勢:

特點 n8n Zapier / Make
部署方式 雲端或自架 僅雲端服務
程式碼彈性 支援 JavaScript/Python 有限或不支援
資料掌控 完全掌控 託管在第三方
計費方式 無執行次數限制(自架) 按執行次數計費
開源程度 Fair-code 開源 專有軟體
AI 整合 原生 AI 功能 部分支援

1.4 核心特色與優勢

n8n 提供視覺化的拖拉式介面,整合超過 400 個應用程式,並具備原生 AI 功能支援。主要特色包括:

視覺化介面

  • 直觀的拖拉式操作
  • 無需撰寫複雜程式碼
  • 即時預覽執行結果

豐富的整合選項

  • 超過 400 個應用程式整合
  • Gmail、Slack、Google Sheets、Notion 等熱門服務
  • 支援自訂 API 串接

AI 原生支援

  • 基於 LangChain 的 AI 工作流程
  • 整合 OpenAI、Claude、Gemini 等語言模型
  • 建立智能化自動化流程

程式碼擴充能力

  • 支援 JavaScript 和 Python
  • 可安裝 npm 套件
  • 彈性處理複雜邏輯

企業級功能

  • SSO 單一登入支援
  • 進階權限控管(RBAC)
  • 稽核日誌與版本控制

1.5 適用對象與應用場景

n8n 適合以下使用者:

個人使用者

  • 自動化日常工作流程
  • 整合個人生產力工具
  • 建立通知與提醒系統

企業與團隊

  • 自動化業務流程
  • 串接內部系統
  • 客戶服務自動化
  • 資料同步與整合

開發者

  • 快速原型開發
  • API 整合測試
  • 建立內部工具
  • Webhook 處理

常見應用場景:

  • 📧 郵件自動回覆與分類
  • 📊 資料收集與報表產生
  • 💬 社群媒體內容排程
  • 🤖 AI 聊天助理
  • 📱 跨平台通知系統
  • 💳 發票與帳務處理

二、安裝與環境設定

2.1 三種安裝方式比較

n8n 提供三種主要的安裝方式,各有優缺點:

方式一:n8n Cloud(雲端版) ⭐ 推薦新手使用

優點:

  • 無需安裝,註冊即用
  • 自動更新與維護
  • 內建免費試用方案
  • 適合快速上手

缺點:

  • 需要網路連線
  • 資料儲存在雲端
  • 付費方案有執行限制

適合對象:新手、小型團隊、快速測試使用者

方式二:npm 安裝(本機版)

優點:

  • 資料完全本地化
  • 無執行次數限制
  • 可自訂設定

缺點:

  • 需要安裝 Node.js
  • 需要基礎終端機操作知識
  • 需自行維護更新

適合對象:開發者、技術人員、需要本地測試環境者

方式三:Docker 部署

優點:

  • 環境隔離,不影響系統
  • 易於遷移與備份
  • 適合生產環境部署

缺點:

  • 需要 Docker 基礎知識
  • 初始設定較複雜
  • 需要一定的系統管理經驗

適合對象:進階使用者、DevOps 工程師、企業部署

2.2 n8n Cloud 快速開始(推薦新手)

這是最簡單的入門方式,讓我們一步步完成設定:

步驟 1:註冊帳號

  1. 前往 n8n.io
  2. 點擊右上角「Get Started Free」或「Start Free Trial」
  3. 填寫以下資訊:
    • 電子郵件地址
    • 密碼(至少 8 個字元)
    • 姓名(選填)
  4. 點擊「Create account」建立帳號

步驟 2:驗證電子郵件

  1. 檢查你的信箱
  2. 點擊驗證連結
  3. 完成帳號啟用

步驟 3:登入與初始設定

  1. 使用註冊的帳號登入
  2. 系統會引導你完成初始設定
  3. 選擇使用情境(可跳過)
  4. 進入 n8n 主介面

步驟 4:建立第一個工作區

登入後,你會看到編輯器介面,這是建立工作流程的主要區域。預設會建立一個名為「My workflow」的工作區,你可以立即開始使用。

免費方案包含:

  • 每月 5,000 次執行額度
  • 基本整合功能
  • 2 個活躍工作流程
  • 社群支援

2.3 自行部署選項(進階)

如果你想要完全掌控資料或需要更高的執行額度,可以選擇自行部署。

使用 npm 安裝

n8n 目前支援 Node.js 18.x、20.x 和 22.x 版本。安裝步驟如下:

前置需求:

  • 安裝 Node.js(18.x 或以上版本)
  • 基本終端機操作能力

安裝指令:

# 全域安裝 n8n
npm install n8n -g

# Linux/Mac 使用者可能需要 sudo
sudo npm install n8n -g

啟動 n8n:

# 啟動服務
n8n

# 或使用 npx(無需全域安裝)
npx n8n

啟動後,開啟瀏覽器前往 http://localhost:5678 即可使用。

首次使用設定:

首次訪問時,你會看到「Set up owner account」畫面,填寫管理員帳號資訊後即可開始使用。

使用 Docker 部署

Docker 是推薦的自架方式,因為它將所有相依套件打包在一起。

前置需求:

  • 安裝 Docker Desktop 或 Docker Engine

快速啟動指令:

# 建立資料卷(用於儲存工作流程)
docker volume create n8n_data

# 啟動 n8n 容器
docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  docker.n8n.io/n8nio/n8n

使用 Docker Compose(推薦):

建立 docker-compose.yml 檔案:

version: '3.8'

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    container_name: n8n
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=your_secure_password
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  n8n_data:

啟動指令:

# 啟動服務
docker-compose up -d

# 查看日誌
docker-compose logs -f

# 停止服務
docker-compose down

安全性建議:

  • 務必修改預設密碼
  • 使用 HTTPS 連線
  • 考慮設定防火牆規則
  • 定期備份資料卷

基本環境變數設定:

無論使用哪種部署方式,都可以透過環境變數調整設定:

# 設定時區
GENERIC_TIMEZONE=Asia/Taipei

# 啟用基本認證
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=your_username
N8N_BASIC_AUTH_PASSWORD=your_password

# Webhook URL(用於生產環境)
WEBHOOK_URL=https://your-domain.com/

三、介面與基本概念

3.1 編輯器 UI 導覽

n8n 的編輯器介面分為幾個主要區域,每個區域都有特定的功能。讓我們逐一了解:

左側面板

包含以下功能選項:

工作流程(Workflows)

  • 顯示所有已建立的工作流程
  • 可以新增、搜尋、篩選工作流程
  • 查看工作流程狀態(啟用/停用)

憑證(Credentials)

  • 管理第三方服務的認證資訊
  • 儲存 API 金鑰、OAuth 權杖等
  • 可重複使用於多個節點

執行記錄(Executions)

  • 查看工作流程執行歷史
  • 除錯失敗的執行
  • 檢視執行時間與資料

範本(Templates)

  • 瀏覽超過 6,500 個社群貢獻的工作流程範本
  • 可直接匯入使用
  • 依照類別篩選(行銷、IT、銷售等)

畫布(Canvas)介面

畫布是編輯器介面的中心區域,顯示為灰色網格背景,這是你建立工作流程的主要空間。

畫布工具列(位於畫布上方):

  • 縮放控制:放大、縮小、符合螢幕大小
  • 整理節點:自動排列節點位置
  • 執行工作流程:手動觸發測試
  • 儲存:儲存目前的工作流程

畫布功能:

  • 點擊畫布上的 + 號可開啟節點面板
  • 拖曳節點調整位置
  • 使用 Ctrl+滑鼠左鍵拖曳畫布移動視角
  • 新增便利貼(Sticky Note)做註解
  • AI 助理按鈕(右側)

節點面板(Nodes Panel)

節點面板位於編輯器右側,包含所有可用的節點。開啟方式有三種:

  1. 點擊畫布右上角的 + 圖示
  2. 點擊現有節點右側的 + 圖示
  3. 按下鍵盤的 Tab 鍵

節點分類:

第一次新增節點時(觸發器):

  • App Trigger:應用程式觸發(如 Gmail 收到信)
  • Schedule Trigger:定時觸發
  • Webhook:HTTP 請求觸發
  • Manual Trigger:手動觸發

後續新增節點時:

  • Advanced AI:AI 相關節點
  • Actions in an App:應用程式操作
  • Data transformation:資料轉換
  • Flow:流程控制
  • Core:核心功能
  • Human in the loop:需要人工介入

搜尋節點:
在節點面板頂部有搜尋欄位,可以快速找到需要的節點。

頂部工具列

包含以下重要功能:

工作流程名稱

  • 點擊可重新命名
  • 顯示儲存狀態

設定選單

  • 工作流程設定
  • 變數管理
  • 執行設定

分享與匯出

  • 分享工作流程連結
  • 匯出為 JSON 檔案
  • 複製工作流程 ID

3.2 核心概念理解

要有效使用 n8n,必須理解以下核心概念:

工作流程(Workflow)

工作流程是一組連接在一起的節點集合,用於自動化流程。可以想像成:

  • 一個完整的自動化任務
  • 從觸發到完成的整個流程
  • 可以儲存、分享、重複使用

範例:「當收到 Gmail 新郵件時,自動轉發到 Slack」就是一個完整的工作流程。

節點(Node)

節點是 n8n 的基本建構單元,每個節點代表一個特定動作,例如發送郵件、更新試算表或從 API 擷取資料。

節點類型:

  1. 觸發節點(Trigger Node)
    • 工作流程的起點
    • 定義何時啟動流程
    • 每個工作流程至少需要一個觸發節點
  2. 動作節點(Action Node)
    • 執行具體操作
    • 處理或轉換資料
    • 可串接多個動作節點
  3. 核心節點(Core Node)
    • 流程控制(IF、Switch)
    • 資料轉換(Set、Code)
    • 工具節點(HTTP Request)

節點的組成:

  • 輸入端:接收上一個節點的資料
  • 處理邏輯:執行特定動作
  • 輸出端:傳遞資料給下一個節點

觸發器(Trigger)

觸發器是特殊的節點,作為工作流程的進入點,監聽特定外部事件或預定排程,當條件滿足時啟動整個工作流程。

常見觸發類型:

  1. 時間觸發
    • Schedule Trigger:按固定間隔或時間執行
    • 類似 Unix 系統的 Cron 排程
    • 例如:每天早上 9 點、每週一、每月 1 號
  2. 事件觸發
    • Webhook:接收 HTTP 請求時啟動
    • App Trigger:應用程式事件(如新郵件)
    • 即時響應外部事件
  3. 手動觸發
    • Manual Trigger:點擊按鈕手動執行
    • 用於測試與開發
    • 不自動執行

連接(Connection)

節點之間的連線代表資料流向:

  • 實線箭頭:正常資料流
  • 虛線:條件分支或錯誤處理路徑
  • 資料從左到右傳遞
  • 一個節點可以連接多個後續節點

憑證(Credentials)

憑證儲存用於識別和驗證使用者的資訊,範圍從 API 金鑰、帳號密碼組合到多行私鑰。

憑證特點:

  • 集中管理認證資訊
  • 可在多個節點中重複使用
  • 資料庫加密儲存,提供安全保護
  • 支援多種認證方式(OAuth、API Key、Basic Auth)

為什麼需要憑證?

  • 避免在節點中重複輸入密碼
  • 集中管理,方便更新
  • 增強安全性
  • 團隊協作時可共享

3.3 資料結構認識

n8n 使用一致的資料結構在節點之間傳遞資訊。理解資料格式對於除錯和進階應用非常重要。

JSON 格式基礎

n8n 內部使用 JSON(JavaScript Object Notation)格式儲存和傳遞資料:

{
  "name": "張小明",
  "email": "ming@example.com",
  "age": 28
}

基本概念:

  • 使用大括號 {} 包裹物件
  • 鍵值對格式:"key": "value"
  • 支援字串、數字、布林值、陣列、物件

項目(Items)與欄位(Fields)

n8n 以「項目」為單位處理資料:

單一項目:

[
  {
    "json": {
      "title": "文章標題",
      "content": "文章內容"
    }
  }
]

多個項目:

[
  {
    "json": {
      "name": "產品 A",
      "price": 100
    }
  },
  {
    "json": {
      "name": "產品 B",
      "price": 200
    }
  }
]

查看資料的三種視圖

節點執行後,可以在節點視窗中以三種格式檢視資料:Table(表格)、JSON 和 Schema(結構)。

Table 視圖:

  • 預設視圖,以表格形式顯示資料
  • 行代表記錄,列代表屬性
  • 適合快速瀏覽資料

JSON 視圖:

  • 顯示原始 JSON 資料
  • 適合除錯和精確檢查
  • 可複製使用

Schema 視圖:

  • 顯示資料結構
  • 查看欄位型別
  • 理解資料架構

四、第一個工作流程實作

現在讓我們動手建立第一個實用的工作流程!我們將建立一個「Gmail 新郵件通知到 Slack」的自動化流程。

4.1 範例:Gmail 新郵件通知到 Slack

這個工作流程的運作邏輯:

  1. 監聽 Gmail 收件匣
  2. 當有新郵件時觸發
  3. 擷取郵件資訊(寄件者、主旨)
  4. 發送通知到 Slack 頻道

步驟 1:建立新工作流程

  1. 登入 n8n 後,在編輯器介面中點擊左側的「Workflows」
  2. 點擊「Add workflow」或右上角的「+」按鈕
  3. 系統會建立一個新的空白畫布
  4. 將工作流程重新命名為「Gmail 到 Slack 通知」

重新命名方式:點擊編輯器頂部的工作流程名稱,輸入新名稱後儲存。

步驟 2:新增 Gmail 觸發器節點

點擊畫布上的 + 號或按 Tab 鍵開啟節點面板:

  1. 在搜尋欄輸入「Gmail Trigger」
  2. 選擇「Gmail Trigger」節點
  3. 節點會自動加到畫布上

設定 Gmail Trigger 參數:

  1. Trigger On: 選擇「Message Received」(收到訊息)
  2. Filters: 可以設定篩選條件
    • Label: 特定標籤的郵件
    • Sender: 特定寄件者
    • Subject: 主旨包含關鍵字
  3. 先保持預設,接收所有新郵件

步驟 3:設定 Gmail 憑證

第一次使用 Gmail 節點需要設定憑證:

  1. 點擊「Credential to connect with」下拉選單
  2. 選擇「Create New」
  3. 選擇「OAuth2」(推薦)或「Service Account」
  4. 按照以下步驟設定 OAuth2:

OAuth2 設定流程:

  1. 點擊「Sign in with Google」按鈕
  2. 選擇你的 Google 帳號
  3. 授權 n8n 存取 Gmail
  4. 完成後,憑證會自動儲存
  5. 為憑證命名(例如:「我的 Gmail」)

注意事項:

  • OAuth2 最方便,但需要允許第三方應用程式存取
  • Service Account 適合企業 G Suite 帳號
  • 憑證設定一次後可重複使用

步驟 4:新增 Slack 動作節點

點擊 Gmail Trigger 節點右側的 + 圖示:

  1. 在節點面板搜尋「Slack」
  2. 選擇「Slack」節點(不是 Slack Trigger)
  3. 節點會自動連接到 Gmail Trigger

設定 Slack 節點參數:

  1. Resource: 選擇「Message」
  2. Operation: 選擇「Post」(發送訊息)
  3. Authentication: 需要設定 Slack 憑證(見下一步)
  4. Channel: 選擇要發送的頻道(例如:#general)
  5. Text: 設定訊息內容

步驟 5:設定 Slack 憑證

Slack 憑證設定:

  1. 點擊「Credential to connect with」
  2. 選擇「Create New」
  3. 選擇「OAuth2」
  4. 點擊「Sign in with Slack」
  5. 選擇你的 Slack 工作區
  6. 授權必要權限
  7. 完成後儲存憑證

步驟 6:設定動態訊息內容

現在讓訊息包含郵件資訊,使用表達式(Expression)功能:

在 Slack 節點的 Text 欄位中輸入:

📧 新郵件通知

寄件者: {{ $json.from }}
主旨: {{ $json.subject }}
時間: {{ $json.date }}

表達式語法說明:

  • {{ }}:表達式標記
  • $json:代表上一個節點的 JSON 輸出
  • .from.subject:存取特定欄位

進階技巧:點擊欄位右側的「表達式」圖示,可以:

  • 瀏覽可用的資料欄位
  • 使用函數處理資料
  • 查看即時預覽

步驟 7:測試工作流程

點擊畫布左下角或節點視窗中的「Execute workflow」按鈕執行工作流程:

  1. 點擊「Test workflow」按鈕
  2. Gmail Trigger 節點會開始監聽
  3. 發送一封測試郵件到你的 Gmail
  4. 觀察節點執行狀態

觀察執行結果:

  • 成功執行的節點會顯示綠色勾選標記
  • 點擊節點查看輸出資料
  • 檢查 Slack 頻道是否收到訊息

步驟 8:儲存與啟用工作流程

儲存工作流程有兩種方式:按下 Ctrl+S(Mac 為 Cmd+S)或點擊右上角的 Save 按鈕:

  1. 確認測試成功後,點擊「Save」按鈕儲存工作流程
  2. 工作流程會自動儲存為停用狀態
  3. 點擊右上角的開關切換為「Active」(啟用)
  4. 啟用後,工作流程會持續在背景運行
  5. 每當有新郵件時,就會自動發送 Slack 通知

啟用狀態說明:

  • Inactive(停用):工作流程不會自動執行,只能手動測試
  • Active(啟用):工作流程會依照觸發條件自動執行
  • 可隨時切換啟用/停用狀態

完整工作流程架構:

Gmail Trigger (監聽新郵件)
    ↓
Slack (發送通知訊息)

恭喜!你已經完成第一個自動化工作流程!

4.2 除錯與測試

當工作流程沒有如預期運作時,n8n 提供完善的除錯工具幫助你找出問題。

執行單一節點測試

不需要執行整個工作流程,可以單獨測試某個節點:

  1. 點擊要測試的節點
  2. 點擊節點視窗中的「Test step」按鈕
  3. 該節點會使用上游節點的輸出資料執行
  4. 查看執行結果

使用時機:

  • 測試新加入的節點
  • 驗證資料轉換是否正確
  • 除錯特定節點的設定

查看執行結果

每個節點執行後都會顯示輸出資料:

  1. 點擊已執行的節點
  2. 節點視窗會顯示三個標籤:
    • Parameters: 節點設定參數
    • Output: 執行輸出結果
    • Input: 輸入資料(如果有上游節點)
  3. Output 標籤功能:
    • Table 視圖:表格形式檢視
    • JSON 視圖:原始資料格式
    • Schema 視圖:資料結構
    • Binary 視圖:檔案資料(如圖片、PDF)
  4. 檢查執行資訊:
    • 執行時間
    • 資料項目數量
    • 成功或錯誤狀態

使用執行記錄除錯

執行記錄保存所有工作流程的執行歷史:

  1. 點擊左側選單的「Executions」
  2. 查看所有執行記錄列表
  3. 篩選器選項:
    • Status: 成功、失敗、執行中
    • Workflow: 特定工作流程
    • Date: 時間範圍
  4. 點擊執行記錄查看詳情:
    • 完整的執行流程
    • 每個節點的輸入輸出
    • 錯誤訊息(如果失敗)
    • 執行時間統計


本教學基於 n8n 最新版本撰寫,部分功能可能因版本更新而有所變動。建議參考官方文件獲取最新資訊。

相關連結:


0 意見:

張貼留言