🎯 重點摘要: n8n 是一個開源的工作流程自動化工具,像「Zapier 或 Make 的開源版本」,你可以把不同服務串起來自動執行任務:
  ① 快速安裝 n8n(npx / npm / Docker 三種方式)
  ② 認識工作流程畫布,新增觸發器與執行節點
  ③ 學會串接常用服務:Gmail → Google Sheets → Slack
  ④ 進階技巧:Webhook 接收外部請求、Function 節點寫 JS 邏輯、環境變數管理
  ⑤ 生產環境建議:Docker-compose 部署、資料備份、反向代理

無需撰寫程式碼,30 分鐘就能打造自動化工作流程,提升效率 100x!

前言 — 什麼是 n8n?

n8n(發音類似 "n diam")是一個開源的工作流程自動化工具。你可以透過拖曳節點的方式,把不同的服務串起來,自動完成諸如「收到郵件 → 寫入資料表 → 發通知」等任務。

ZapierMake(前身 Integromat) 不同,n8n 的最大特色是:

  • 開源免費 — 不用付費給第三方平台
  • 自部署 — 資料不外洩,可以放在自己的伺服器
  • 無限節點 — 不像 Zapier 有執行次數限制
  • 客製化程度高 — 可以自己寫 JS 函數處理邏輯

它支援 300 多種整合(Slack、Gmail、LINE、Notion、GitHub 等),幾乎涵蓋日常工作中會用到的工具。

如何安裝 n8n

n8n 提供多種安裝方式,以下是常見的三種:

方法 1️⃣:npx 直接執行 (快速體驗)

最簡單的方式,直接透過 npx 執行,无需安裝:

npx n8n

首次執行會自動下載,然後預設在 http://localhost:5678 打開。

方法 2️⃣:npm 全局安裝 (日常使用)

npm install -g n8n
n8n start
💡 提示: 建議先確認 Node.js 版本 >= 18。node -v 就可以確認。

方法 3️⃣:Docker 部署 (生產環境推薦)

建議使用 Docker Compose 部署:

# docker-compose.yml
version: '3.8'

services:
  n8n:
    image: n8nio/n8n
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=localhost
      - N8N_PORT=5678
      - N8N_ENCRYPTION_KEY=your-encryption-key-here
      - DB_TYPE=sqlite
      - VUE_APP_URL_BASE_API=/
    volumes:
      - ./n8n-data:/home/node/.n8n
    restart: unless-stopped
docker compose up -d

方法 4️⃣:Docker 單一指令

docker run -it --rm -p 5678:5678 n8nio/n8n
🔐 安全提醒: N8N_ENCRYPTION_KEY 用來加密敏感資料,請務必設定並妥善保管!

n8n 基本操作教學

啟動 n8n 後,瀏覽器會自動打開 http://localhost:5678

建立第一個工作流程

以「收到 Gmail → 寫入 Google Sheets → 發 Slack 通知」為例:

步驟 1️⃣:新增工作流程

點擊右上角的「Create workflow」,進入空白畫布。

步驟 2️⃣:新增觸發器

點擊畫布上的「+」,選擇觸發器類型:

觸發器 說明 常用場景
Schedule Trigger 定時執行 每日報表、週報
Webhook 接收外部請求 接收表單、API 回調
Gmail Trigger 收到新郵件 客服自動回覆
Manual 手動點擊執行 測試用

步驟 3️⃣:串接 Gmail → Google Sheets → Slack

  1. 新增「Gmail Trigger」節點 → 設定收件信箱、標籤過濾
  2. 新增「Google Sheets」節點 → 選「Append」將郵件資訊寫入
  3. 新增「Slack」節點 → 發送通知到指定頻道

按下「Execute Workflow」測試,成功後點擊「Activate」啟用。

🎉 小技巧: 每個節點點擊右下角的勾號可以預覽測試結果,方便 Debug!

常用節點類型

類型 範例 用途
觸發器 Schedule, Webhook, Gmail 啟動工作流程的起點
行動 Slack, Gmail Send, HTTP 執行實際動作
工具 Function, Merge, Split Out 處理資料與邏輯
輸入 Manual, Read Binary Files 手動觸發或讀入檔案

進階功能介紹

Function 節點 — 寫 JS 處理邏輯

當內建節點不夠用時,你可以在 Function 節點中寫 JavaScript:

// 過濾出標題包含 "URGENT" 的郵件
const items = $input.all();
return items.filter(item => {
  const subject = item.json.subject || '';
  return subject.includes('URGENT');
});

Webhook 接收外部請求

新增一個 Webhook 節點,n8n 會自動生成一個 URL:

# 發送請求
curl -X POST https://your-n8n/webhook/my-webhook \
  -H "Content-Type: application/json" \
  -d '{"name":"Alice","action":"signup"}'

Webhook 會接收並解析 JSON,接續做後續處理。

HTTP Request 節點

設定 說明
Method GET / POST / PUT / DELETE
URL API 端點
Authentication Bearer Token / Basic Auth / OAuth2
Body JSON / Form / Raw
Headers 自訂 HTTP 標頭

環境變數管理

在工作流程中可以使用 $env.VARIABLE_NAME 讀取環境變數:

// 讀取環境變數
const apiKey = $env.API_KEY;
const slackWebhook = $env.SLACK_WEBHOOK_URL;

資料夾與工作流程組織

n8n 支援將工作流程分類到資料夾中,方便管理多個自動化任務:

  • 點擊左側「Projects」→「New Project
  • 可為每個專案設定成員權限與存取控制
  • 適合團隊協作使用

生產環境部署建議

如果要把 n8n 用在正式環境,推薦以下設定:

1. 使用 PostgreSQL 資料庫

預設 n8n 使用 SQLite,適合單人使用。多人或商用建議改用 PostgreSQL:

# docker-compose.yml
services:
  n8n:
    image: n8nio/n8n
    ports:
      - "5678:5678"
    environment:
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_USER=n8n
      - DB_POSTGRESDB_PASSWORD=n8n-password
      - DB_POSTGRESDB_DATABASE=n8n
    depends_on:
      - postgres

  postgres:
    image: postgres:16
    environment:
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: n8n-password
      POSTGRES_DB: n8n
    volumes:
      - ./postgres-data:/var/lib/postgresql/data

2. 設定反向代理

建議搭配 Nginx 或 Caddy 做反向代理,提供 HTTPS:

# nginx.conf
server {
    listen 443 ssl;
    server_name n8n.yourdomain.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://localhost:5678;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

3. 啟用身份驗證

設定環境變數開啟 basic auth 或 OAuth:

# 啟用 basic auth
VUE_APP_URL_BASE_API=/
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=your-password
🔒 安全提醒: 生產環境一定要開啟身份驗證!否則任何人都可以訪問你的自動化工作流程。

資源與社群

官方資源

資源 連結
官網 https://n8n.io
GitHub github.com/n8n-io/n8n
文檔 docs.n8n.io
社群 Discord 加入 Discord

熱門整合列表 (Top 10)

排名 整合服務 使用場景
1 Slack 團隊通知與消息推送
2 Gmail / Email 自動收發與處理郵件
3 Google Sheets 資料寫入與同步
4 Notion 知識庫更新
5 GitHub CI/CD 觸發
6 LINE 即時通訊通知
7 Discord 遊戲社群通知
8 Webhook 接收任意外部請求
9 MySQL / Postgres 資料庫操作
10 Airtable 輕量資料表管理

結語

n8n 讓工作流程自動化變得前所未有地簡單 — 無論你是要提升個人生產力、自動化團隊通知,或是打造內部工具,n8n 都是極佳的選擇。

🎯 快速回顧步驟:
  1️⃣ 安裝 n8n(npx / npm / Docker)
  2️⃣ 建立工作流程,拖曳觸發器與執行節點
  3️⃣ 設定常用整合(Gmail、Slack、Notion)
  4️⃣ 使用 Webhook / Function 進行進階設定
  5️⃣ 部署到生產環境(Docker + PostgreSQL + Nginx)

整個流程不需要一行程式碼,30 分鐘就能打造強大的自動化系統!
🔗 推薦資源:
  • n8n 官網
  • n8n GitHub
  • n8n 官方文檔
  • 社群擴充節點