n8n 工作流備份|自動備份到 Google Drive
更新於 2026年2月11日
📥 工作流 JSON 下載:GitHub 範例庫 | 💬 社群討論:Skool 雲端方程式 Cloud F1
專業導讀
如果你曾經在 n8n 裡辛苦建立了幾十個工作流,某天因為誤刪、系統升級失敗,或是不小心改壞了某個關鍵節點,才發現「沒有備份」時的那種絕望感,我完全理解。
我在經營 雲端方程式 Cloud F1 的過程中,曾經遇過學員因為沒有備份習慣,導致花了兩週建立的客戶自動化流程毀於一旦。後來我們在課程中加入了這個「自動備份到 Google Drive」的模組,現在每位學員都能安心開發,不用擔心資料遺失。
💡 本文重點: 用 n8n 打造工作流自動備份系統,每 12 小時自動備份到 Google Drive,帶版本管理、一鍵復原,讓你專心開發不怕出錯。
你將學到
- ✅ 為什麼需要備份 — 3 大風險情境與備份的實際效益
- ✅ 完整備份架構 — 從 Cron 觸發到 Google Drive 儲存的完整流程
- ✅ Step-by-Step 實作 — 手把手建立自動備份工作流
- ✅ 版本管理策略 — 如何命名、保留、清理歷史備份
- ✅ 災難復原演練 — 從 Google Drive 還原工作流的完整步驟
- ✅ 進階擴充方案 — Credentials 備份、跨環境遷移、通知整合
🎯 什麼是 n8n 工作流備份?
n8n 工作流備份是將你的所有 Workflow 定期匯出成 JSON 檔案,上傳到雲端(如 Google Drive),讓你隨時能還原、比對、遷移工作流的自動化機制。 它解決了「誤刪」、「系統故障」、「升級失敗」三大風險,讓你能安心開發複雜自動化流程,不用擔心一次失誤就要從頭重做。
這套系統的核心概念是「版本控制」— 你會在 Google Drive 裡看到一排以日期時間命名的 JSON 檔案(例如 2026-02-11_14-30_客戶自動回覆流程.json),需要時只要下載、匯入,就能還原到任何一個時間點的狀態。對於經營多個 n8n 實例(開發/測試/正式環境)的團隊來說,這套備份機制更是跨環境遷移的基礎建設。
💡 Alex 的觀察
在過去兩年協助超過 500 位學員建立 n8n 自動化系統的經驗中,我發現「備份」是最容易被忽略、但出事時最致命的環節。
為什麼大家不備份? 主要有三個原因:
- 覺得不會出錯 — 「我只是改個小參數,應該不會有問題」(famous last words)
- 手動備份太麻煩 — n8n 的匯出功能要一個一個點,有 20 個工作流就要點 20 次
- 不知道怎麼做版本管理 — 備份了一堆 JSON,哪個是最新的?哪個是正式環境用的?
我的建議是:把備份當作一個「背景自動化流程」來對待。 就像你不會手動備份 Git 一樣,工作流備份也應該是「設定一次,自動執行」的機制。我自己的 雲端方程式 Cloud F1 系統有 40+ 個工作流,全部靠這套 12 小時自動備份機制保護,過去一年復原過 3 次(兩次是升級失敗,一次是誤刪),每次都能在 5 分鐘內還原。
但老實說,這套方案也有限制:
- 不備份 Credentials — 基於安全考量,這套方案不會備份你的 API Key、密碼等敏感資訊(需要手動管理)
- 只備份 Active Workflows — 如果你有停用的工作流,預設不會被備份(可以調整設定)
- 檔案會越來越多 — 如果你有 50 個工作流,每天備份兩次,一個月就是 3000 個 JSON 檔案(需要定期清理)
這套系統適合「有 5 個以上工作流」且「每週都會調整設定」的使用者。如果你只有 1-2 個簡單工作流,手動匯出就夠了。
🔧 Step-by-Step:建立自動備份系統
架構概覽
在開始之前,先理解整個備份系統的運作流程:
┌─────────────────────┐
│ Cron Trigger │ ← 每 12 小時觸發一次
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ n8n API │ ← 取得所有 Workflow 列表
│ (GET /workflows) │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Loop Over Items │ ← 逐一處理每個 Workflow
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ n8n API │ ← 取得完整 Workflow JSON
│ (GET /workflows/:id)│
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Code Node │ ← 生成檔名(日期_時間_名稱)
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Google Drive │ ← 上傳 JSON 到指定資料夾
│ (Create File) │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ LINE Notify │ ← 發送備份完成通知(可選)
└─────────────────────┘
Step 1:建立 Cron Trigger
- 在 n8n 新增一個 Workflow,命名為「Auto Backup to Google Drive」
- 新增 Schedule Trigger 節點
- 設定觸發時間:
| 設定項目 | 設定值 | 說明 |
|---|---|---|
| Trigger Interval | Every 12 Hours | 每天 00:00 和 12:00 執行 |
| Alternative | Cron Expression | 進階使用者可用 0 0,12 * * * |
為什麼選 12 小時? 這是我實測後的最佳平衡點。太頻繁(如每小時)會產生過多檔案,太久(如每週)風險太高。如果你的工作流變動不頻繁,可以改成 24 小時。
Step 2:取得所有 Workflow 列表
新增 HTTP Request 節點,連接到 n8n 的內部 API:
| 設定項目 | 設定值 |
|---|---|
| Method | GET |
| URL | http://localhost:5678/api/v1/workflows |
| Authentication | Header Auth |
| Header Name | X-N8N-API-KEY |
| Header Value | {{ $env.N8N_API_KEY }} |
關鍵提醒:
- 你需要先在 n8n 的 Settings → API 中生成 API Key
- 如果你用的是雲端版 n8n.cloud,URL 要改成
https://your-instance.app.n8n.cloud/api/v1/workflows - 環境變數設定方法:在 n8n 的
.env檔案中加入N8N_API_KEY=your_api_key
這個請求會回傳所有工作流的基本資訊(id, name, active 等),但不包含完整的節點設定。
Step 3:Loop Over Workflows
新增 Loop Over Items 節點,逐一處理每個工作流:
| 設定項目 | 設定值 |
|---|---|
| Batch Size | 1 |
這個節點會把上一步取得的工作流列表(可能有 20-50 個)拆成單一項目,讓後面的節點逐一處理。
Step 4:取得完整 Workflow JSON
新增第二個 HTTP Request 節點,取得完整的工作流內容:
| 設定項目 | 設定值 |
|---|---|
| Method | GET |
| URL | http://localhost:5678/api/v1/workflows/={{ $json.id }} |
| Authentication | Header Auth |
| Header Name | X-N8N-API-KEY |
| Header Value | {{ $env.N8N_API_KEY }} |
這步很關鍵: 第一次請求只拿到工作流列表(metadata),這次才會拿到完整的節點設定、連接關係、參數等資訊(完整 JSON)。
Step 5:生成檔名
新增 Code 節點,用 JavaScript 生成有意義的檔名:
// 取得當前時間(台灣時區)
const now = new Date();
const taipeiTime = new Date(now.toLocaleString("en-US", {timeZone: "Asia/Taipei"}));
// 格式化日期時間
const year = taipeiTime.getFullYear();
const month = String(taipeiTime.getMonth() + 1).padStart(2, '0');
const day = String(taipeiTime.getDate()).padStart(2, '0');
const hour = String(taipeiTime.getHours()).padStart(2, '0');
const minute = String(taipeiTime.getMinutes()).padStart(2, '0');
const timestamp = `${year}-${month}-${day}_${hour}-${minute}`;
// 取得工作流名稱(移除特殊字元)
const workflowName = $json.name.replace(/[^a-zA-Z0-9\u4e00-\u9fa5]/g, '-');
// 組合最終檔名
const filename = `${timestamp}_${workflowName}.json`;
return {
json: {
filename: filename,
workflow: $json // 保留完整 workflow JSON
}
};
檔名範例:
2026-02-11_14-30_客戶自動回覆流程.json2026-02-11_14-30_LINE-訊息轉發到-Slack.json
Step 6:上傳到 Google Drive
新增 Google Drive 節點:
| 設定項目 | 設定值 |
|---|---|
| Operation | Upload a File |
| File Name | ={{ $json.filename }} |
| File Content | ={{ JSON.stringify($json.workflow, null, 2) }} |
| Parents Folder | 選擇你的備份資料夾(建議建立 n8n-backup/ 資料夾) |
首次設定需要 OAuth 認證:
- 點擊「Create New Credential」
- 選擇「Google Drive OAuth2 API」
- 按照指示完成 Google 帳號授權
- 詳細步驟可參考我的 n8n Google OAuth 設定教學
進階技巧: 如果你想要按年月分類(例如 n8n-backup/2026/02/),可以在 Code 節點裡加入:
const folder = `n8n-backup/${year}/${month}`;
return {
json: {
filename: filename,
folder: folder,
workflow: $json
}
};
然後在 Google Drive 節點使用 ={{ $json.folder }}(需要先手動建立資料夾)。
Step 7:發送完成通知(可選)
新增 LINE Notify 或 Slack 節點,發送備份完成通知:
LINE Notify 範例:
✅ n8n 備份完成
時間:2026-02-11 14:30
總共備份:25 個工作流
儲存位置:Google Drive / n8n-backup
詳細清單:
- 客戶自動回覆流程
- LINE 訊息轉發到 Slack
- ...(省略)
為什麼建議加通知? 因為這個工作流是「背景執行」,你不會主動去檢查。有通知的話,萬一哪天沒收到,就知道備份系統可能出問題了(例如 Google Drive 空間滿了、API Key 過期)。
Step 8:測試驗證
完成後,記得測試:
- 手動執行一次 — 點擊右上角「Execute Workflow」
- 檢查 Google Drive — 確認檔案有正確上傳
- 下載一個 JSON — 驗證內容是否完整
- 模擬還原 — 嘗試匯入到 n8n(見下方「災難復原」章節)
📊 比較分析:備份方案比較
| 方案 | 優點 | 缺點 | 適合對象 |
|---|---|---|---|
| 手動匯出 | 免費、簡單 | 容易忘記、無版本控制 | 1-2 個工作流的使用者 |
| n8n 自動備份到 Google Drive(本文方案) | 自動化、有版本控制、免費(Google Drive 15GB) | 不備份 Credentials、需要設定 | 5+ 個工作流的個人/小團隊 |
| Git 版本控制(進階) | 完整版本控制、可 code review、支援多人協作 | 需要學習 Git、需要設定 CI/CD | 開發團隊、複雜專案 |
| n8n Cloud 內建備份 | 自動備份、包含 Credentials | 僅限付費用戶($20/月起) | 企業用戶、需要零管理成本 |
| Database 直接備份 | 完整備份(包含執行歷史) | 需要資料庫管理知識、檔案較大 | Self-hosted 企業用戶 |
我的建議:
- 個人使用者 → 本文的 Google Drive 方案(CP 值最高)
- 開發團隊 → Git 版本控制 + 本文方案(雙重保險)
- 企業用戶 → n8n Cloud(省時省力,專注業務)
✅ 重點整理
- 自動化備份是必要的 — 不要等到出事才後悔,設定一次終身受益
- 12 小時是最佳頻率 — 平衡檔案數量與復原風險
- 檔名要有意義 — 包含日期時間與工作流名稱,方便快速找到
- 定期清理舊備份 — 保留 30 天或最近 100 個版本即可(避免 Google Drive 爆掉)
- 不備份 Credentials — 基於安全考量,API Key 等敏感資訊需要手動管理(可用環境變數或密碼管理工具)
- 測試還原流程 — 至少每季演練一次,確保備份真的能用
- 加上通知機制 — 確保備份系統有在正常運作
❓ FAQ
Q1: 備份包含哪些資料?
A: n8n Workflow JSON 包含以下內容:
- ✅ 所有節點的設定(Node settings)
- ✅ 節點之間的連接關係(Connections)
- ✅ 參數設定(Parameters)
- ✅ Static data(固定資料)
- ❌ 不包含 Credentials(API Key、密碼等敏感資訊)
- ❌ 不包含執行歷史(Execution data)
為什麼不備份 Credentials? 基於安全考量,n8n 的匯出功能不會包含敏感資訊。如果你需要跨環境遷移,建議使用「環境變數」管理 Credentials(例如 $env.OPENAI_API_KEY),這樣在新環境只要設定好環境變數,工作流就能直接運作。
Q2: 如何復原工作流?
A: 完整復原步驟:
- 從 Google Drive 下載備份檔案 — 選擇你要還原的時間點
- 在 n8n 匯入工作流 — 點擊右上角「···」→「Import from File」→ 選擇下載的 JSON 檔案
- 重新設定 Credentials — n8n 會提示哪些節點缺少認證,逐一設定
- 測試執行 — 手動執行一次,確認所有節點都能正常運作
- 檢查參數 — 確認環境相關的參數(如 URL、資料夾路徑)是否需要調整
常見問題: 如果你有多個工作流互相呼叫(例如 A 工作流用 Webhook 觸發 B 工作流),還原後要記得更新 Webhook URL。
Q3: 可以備份 Credentials 嗎?
A: 技術上可以,但強烈不建議自動化備份 Credentials:
- 安全風險高 — API Key、密碼存在 Google Drive,萬一帳號被盜,所有服務都會外洩
- 不符合資安最佳實踐 — Credentials 應該用「密碼管理工具」或「環境變數」管理,而不是明文儲存
推薦做法:
- 使用環境變數 — 在工作流中用
$env.OPENAI_API_KEY取代寫死的 API Key - 密碼管理工具 — 用 1Password、Bitwarden 等工具手動備份
- 定期輪換 — 每季更換一次 API Key(如果服務支援)
Q4: Google Drive 空間會不會不夠?
A: 如果你有 50 個工作流,每個 JSON 平均 50KB,每天備份兩次:
50 workflows × 50KB × 2 times/day × 365 days = 1.825 GB/year
Google 免費方案有 15GB,理論上可以用 8 年。但建議還是定期清理:
自動清理方案(進階):
在備份工作流後面加一個「刪除舊檔案」節點:
- 新增 Google Drive 節點(List Files)
- 篩選「建立時間 > 30 天」的檔案
- 新增 Loop Over Items 逐一刪除
Q5: 可以備份到其他雲端嗎?
A: 可以!n8n 支援多種雲端服務:
| 雲端服務 | n8n 節點 | 免費空間 | 適合情境 |
|---|---|---|---|
| Google Drive | ✅ | 15GB | 一般使用者(推薦) |
| Dropbox | ✅ | 2GB | 已有 Dropbox 習慣 |
| AWS S3 | ✅ | 5GB(12 個月) | 企業用戶、需要高可用性 |
| GitHub | ✅ | 無限(單檔 100MB) | 開發團隊、需要版本控制 |
| OneDrive | ✅ | 5GB | Microsoft 365 用戶 |
我的建議: 如果你是開發團隊,用 GitHub 最好(可以 code review、追蹤變更)。個人使用者用 Google Drive 最方便(免費空間大、整合容易)。
Q6: 如何備份「停用的工作流」?
A: 預設的 API 請求會包含所有工作流(active 與 inactive)。如果你只想備份 active 的,可以在 Loop Over Items 前加一個 Filter 節點:
| 設定項目 | 設定值 |
|---|---|
| Field | active |
| Operation | Equal |
| Value | true |
Q7: 多個 n8n 實例怎麼備份?
A: 如果你有「開發環境」、「測試環境」、「正式環境」三個 n8n 實例,建議:
- 每個實例都建立這個備份工作流
- 用不同的 Google Drive 資料夾(例如
n8n-backup-dev/、n8n-backup-prod/) - 在通知訊息中標示環境(避免搞混)
進階做法: 用一個「中央備份伺服器」的 n8n 實例,定時去各個環境拉取工作流(需要設定跨實例的 API Key)。
🎯 下一步行動
🎓 想更有系統地學會這些技巧? 到 AI 職場工作術(雲端方程式 Cloud F1 旗艦課程) 看看完整的實作路徑。
現在你已經掌握了 n8n 工作流備份的完整技術,建議你:
- 立刻建立這個備份工作流 — 不要等到出事才後悔(我見過太多案例了)
- 設定 LINE/Slack 通知 — 確保備份系統有在正常運作
- 定期演練復原流程 — 至少每季測試一次,確保備份真的能用
- 學習更多 n8n 維運技巧 — 備份只是基礎,還有監控、效能優化、安全性等議題
想深入學習更多 n8n 自動化技巧?
- 💬 加入學習社群:Skool 雲端方程式 Cloud F1(免費加入,和 500+ 學員一起學習,還有完整的 n8n 維運手冊)
- 📺 觀看相關影片:n8n 零基礎完整教學 2026
- 📖 閱讀進階教學:n8n 錯誤處理完整指南
🔗 相關資源
內部資源
- n8n 零基礎教學 — 從安裝到第一個工作流
- n8n Google OAuth 設定 — Google Drive 認證詳細步驟
- n8n 小技巧 1-16 集 — 實用技巧合集
- n8n 錯誤處理指南 — 讓工作流更穩定
外部資源
- n8n API Documentation — 官方 API 文件
- n8n Community Forum — 官方社群(英文)
- Google Drive API — Google Drive 官方文件
本文改編自 雲端方程式 Cloud F1 n8n 課程模組《備份 n8n workflow 到 Google Drive(12hr 自動執行)》,由 Alex Hsieh 撰寫。如果這篇文章對你有幫助,歡迎分享給需要的朋友。最後更新:2026-02-11