「サーバーの不具合で、作り込んだ自動化フローが全部飛んだ…」
「間違って上書き保存してしまい、前のバージョンに戻せない…」
n8nは非常に強力なツールですが、バックアップを怠ると一瞬ですべてを失うリスクがあります。特にVPS(自前サーバー)で運用している場合、データの保全は完全に自己責任です。
私自身、「消えたら終わり」を身をもって経験しています。 クラウドソーシングで200件以上の自動化案件を受注してきた中で、一度だけVPSのカーネルパニックにより、アパレルEC案件向けに構築した15本のワークフローをすべて失いました。バックアップは一切なし。3日かけて再構築しましたが、クライアントへの報告・謝罪の時間を含めると実質1週間のロスでした。この経験以降、どんな案件でも「バックアップフロー構築」をDay 1の必須タスクに組み込むようにしています。
「でも、毎日手動でファイルを保存するのは面倒くさい」
その通りです。だからこそ、「n8nのバックアップ作業自体を、n8nに自動化させる」のが正解です。
本記事では、基本の手動エクスポートから、「毎日勝手に全ワークフローをGoogle DriveやGitHubに保存してくれる自動バックアップシステム」の構築手順までを解説します。
【基本】手動でのエクスポートとインポート
まずは最も基本的な「JSONファイル」としての保存方法です。個別のワークフローを保存したい時や、別のPCに移行する時はこの方法を使います。
エクスポート(保存)の手順
- 保存したいワークフローを開きます。
- 画面右上の [︙] (三点リーダー) メニューをクリックします。
- [Export] を選択し、[Download] をクリックします。
.jsonという拡張子のファイルがPCに保存されます。これがワークフローの設計図そのものです。
インポート(復元)の手順
- n8nのワークフロー一覧画面(Workflows)を開きます。
- 右上の [Add workflow] の横にある [Import from File](またはメニュー内のImport)を選択します。
- 保存しておいたJSONファイルをアップロードすれば、元通りに復元されます。
【推奨】n8nノードを使った「全自動バックアップ」の構築
人間は必ず「保存」を忘れます。そこで、n8n自体に搭載されている「n8nノード(自分自身を操作する機能)」を使って、毎日深夜に全データをクラウドストレージに退避させるフローを作りましょう。
完成形のノード接続は以下の通りです。3つのノードを左から右へ繋ぐだけのシンプルな構成です。
“
┌──────────────────┐ ┌──────────────────────┐ ┌─────────────────────┐
│ Schedule Trigger │────▶│ n8n Node │────▶│ Google Drive Node │
│ 毎日 AM 3:00 │ │ Resource: Workflow │ │ Operation: Upload │
└──────────────────┘ │ Operation: Get Many │ │ ファイル名: 動的 │
│ Return All: ON │ └─────────────────────┘
└──────────────────────┘
※全ワークフローをJSON配列で取得。
ワークフロー数だけアイテムが出力される。
`
- Trigger: 毎日AM 3:00に起動
- Action 1: n8n内の全ワークフローデータを取得
- Action 2: 現在の日付フォルダを作成
- Action 3: Google Drive(またはGitHub/Dropbox)にJSONファイルとして保存
Step 1: APIキーの発行 (Public API)
n8nが自分自身のデータを取得するために、APIキーを作成します。
- 画面左側の [Settings] > [Public API] を開きます。
- [Create an API key] をクリックしてキーを発行し、コピーしておきます。
Step 2: 自動化フローの作成
新しいワークフローを作成し、以下のノードを繋いでいきます。
#### 1. Schedule Trigger
- Interval: Days
- Time: 3:00 (夜中などの使わない時間)
#### 2. n8n Node (データ取得用)
※Core Nodesにある「n8n」というアイコンのノードを使います。
- Credential: Step 1で作ったAPIキーを設定(n8n Public API)。
- Resource: Workflow
- Operation: Get Many (すべて取得)
- Return All: ON(これですべてのフローがリストで取れます)
> 【注意】フロー数が50本を超える場合
>
> n8n APIは一度に返却できる件数に上限があります。私の環境でも70本以上のフローが存在した案件で、全件取得できず途中で切れるトラブルが発生しました。その場合は Get Many の後に Split In Batches ノードを挟むか、n8n APIの limit・cursor パラメーターを使ったページネーション処理を組み込んでください。フロー数が少ないうちは問題ないですが、運用が長期化すると必ずハマる落とし穴です。
#### 3. クレデンシャル(認証情報)の設定 ← 初心者が最も詰まるポイント
保存先ノード(Google Drive・GitHub)を動かすには、事前にn8nとクラウドサービスの接続認証を済ませる必要があります。この設定を省略すると、ノードを追加しても「Credential required」と表示されて一切動きません。
■ Google Drive OAuth 設定手順(所要5〜10分)
1. n8n左メニューの [Credentials] を開き、[Add Credential] をクリック
2. 検索欄に「Google Drive」と入力し、[Google Drive OAuth2 API] を選択
3. Google Cloud Console を開いて新しいプロジェクトを作成(例:n8n-backup)
4. [APIとサービス] > [ライブラリ] で「Google Drive API」を検索し、有効化
5. [APIとサービス] > [認証情報] > [認証情報を作成] > [OAuthクライアントID] を選択
- アプリの種類:ウェブアプリケーション
- 承認済みリダイレクトURI:n8nのCredential画面に表示されている OAuth Callback URL を貼り付け
6. 発行された クライアントID と クライアントシークレット をn8nのCredential画面に入力
7. [Sign in with Google] をクリックし、Googleアカウントで認証を完了
> 補足: OAuth同意画面の「公開ステータス」がテストのままでも、自分のGoogleアカウントであれば問題なく動作します。個人利用・社内利用であればテストモードで十分です。
■ GitHub パーソナルアクセストークン設定手順(所要2〜3分)
Google Driveと異なり、GitHubはOAuthではなくパーソナルアクセストークンで認証します。設定は比較的シンプルです。
1. n8n左メニューの [Credentials] を開き、[Add Credential] をクリック
2. 「GitHub」と検索し、[GitHub API] を選択(Access Token の入力欄が表示されます)
3. GitHubへ移動:右上アイコン > [Settings] > [Developer settings] > [Personal access tokens] > [Tokens (classic)]
4. [Generate new token (classic)] をクリックし、スコープで [repo] にチェック(プライベートリポジトリへの書き込みに必要)
5. 発行されたトークンをコピーして、n8nのCredential画面に貼り付けて [Save]
> 注意: GitHubトークンは発行時の1回しか表示されません。必ずコピーしてから画面を閉じてください。
#### 4. Google Drive / GitHub Node (保存用)
取得したデータは複数のアイテム(ワークフローの数だけある)として流れてくるので、そのまま保存ノードに繋ぎます。
Google Driveの場合の設定例:
- Resource: File
- Operation: Upload
- File Name: 以下のExpressionを設定して、動的なファイル名にします。
{{ $json.name }}_{{ $today.format(‘YYYY-MM-DD’) }}.json
- Binary Data: OFF(JSONテキストとして保存するため)
- File Content: {{ JSON.stringify($json) }}
※ここがポイントです。取得したオブジェクトデータを、テキスト形式のJSON文字列に変換して保存します。
【上級者向け】Git連携機能 (Source Control)
もしあなたがGit(GitHub/GitLab)に慣れているなら、n8nの公式機能であるSource Controlを使うのも手です(設定画面の [Source Control] から設定可能)。
ただし、この機能は設定がやや複雑で、かつ有料プランやSelf-hosted版の一部制限に関わる場合があるため、「手軽にバックアップしたい」だけなら上記の自動ワークフロー方式が最も柔軟でコストがかかりません。
バックアップからの復旧時の注意点
自動バックアップしたJSONファイルから復旧する際は、以下の点に注意してください。
Credential(認証情報)は含まれない
セキュリティ上の設計として、APIキーやパスワードなどの認証情報はJSONに含まれません。これは正しい仕様ですが、復旧時にもっともハマりやすい落とし穴でもあります。
実際に私がクライアント環境の復旧支援を行った際、「ワークフローは復元できたのに動かない」という状態で2時間悩んだケースがありました。原因はすべてCredentialの再設定漏れでした。JSONからフローを復元しても、Credentialは空欄のまま残るため、各ノードを一つひとつ開いて再設定する必要があります。復旧後は必ず以下を確認してください。
- 各ノードの右上に「Credential required」の警告が出ていないか
- Slack・Gmail・Google Driveなど外部サービスの再認証が完了しているか
- APIキーを環境変数で管理している場合は .env` ファイルの再設定が必要
この点を知らずに「バックアップしたのに復旧できない」と焦るケースは非常に多いので、あらかじめCredential一覧をメモしておく習慣をつけることをおすすめします。
IDの重複
同じn8nインスタンスにインポートする場合、IDが重複してエラーになることがあります。その場合は「新規ワークフロー」としてインポートされます。
まとめ
「自動化ツールのバックアップを、手動でやる」なんてナンセンスです。
- 個別保存: 右上のメニューからExport。
- 全体保存: n8n API × Google Driveでワークフローを全自動バックアップ。
- フロー数が多い場合: Split In Batchesでページネーション対応。
- 復旧時: Credentialの再設定を最初に確認。
この仕組みを最初に作っておくだけで、サーバーが飛ぼうが、間違って消そうが、昨日の状態に必ず戻せます。消えたら終わり、を防ぐ仕組みは、作った瞬間から資産になります。
この記事のStep 2フローはノードをコピーするだけで5分で完成します。今すぐn8nを開いて新規ワークフローを作成してください。 バックアップが存在しない今この瞬間も、あなたのフローは消滅リスクにさらされています。
参考文献・リンク
—
この記事を書いた人
Kazuma(AI自動化エンジニア / tactical-ai.net 運営)
AI画像生成(Stable Diffusion / Midjourney / ChatGPT)と、GAS・Python・n8nを活用した業務自動化が専門。ランサーズ・ココナラ・クラウドワークスで累計200件以上を受注し、残念評価ゼロを継続中。Python3エンジニア認定(実践試験)合格。本記事のバックアップフローは、実際のクライアント案件で日次運用している構成をベースにしています。
—
この記事の内容に関する開発・自動化のご依頼はお気軽にご相談ください。
累計200件以上の受注実績・残念評価ゼロ。

コメント