🎯 重點摘要: n8n 是一個開源的工作流程自動化工具,像「Zapier 或 Make 的開源版本」,你可以把不同服務串起來自動執行任務:
① 快速安裝 n8n(npx / npm / Docker 三種方式)
② 認識工作流程畫布,新增觸發器與執行節點
③ 學會串接常用服務:Gmail → Google Sheets → Slack
④ 進階技巧:Webhook 接收外部請求、Function 節點寫 JS 邏輯、環境變數管理
⑤ 生產環境建議:Docker-compose 部署、資料備份、反向代理
無需撰寫程式碼,30 分鐘就能打造自動化工作流程,提升效率 100x!
前言 — 什麼是 n8n?
n8n(發音類似 "n diam")是一個開源的工作流程自動化工具。你可以透過拖曳節點的方式,把不同的服務串起來,自動完成諸如「收到郵件 → 寫入資料表 → 發通知」等任務。
與 Zapier、Make(前身 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
- 新增「Gmail Trigger」節點 → 設定收件信箱、標籤過濾
- 新增「Google Sheets」節點 → 選「Append」將郵件資訊寫入
- 新增「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 官方文檔
• 社群擴充節點