【消えたら終わり防止】n8nワークフローを全自動バックアップ

【n8nバックアップ】消えたら終わり?ワークフローを「全自動」でGoogle DriveやGitに保存する方法 AI開発フレームワーク・ツール

「サーバーの不具合で、作り込んだ自動化フローが全部飛んだ…」

「間違って上書き保存してしまい、前のバージョンに戻せない…」

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の limitcursor パラメーターを使ったページネーション処理を組み込んでください。フロー数が少ないうちは問題ないですが、運用が長期化すると必ずハマる落とし穴です。

#### 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件以上の受注実績・残念評価ゼロ。

コメント

タイトルとURLをコピーしました