GitHubバックアップによるTypebotフローの自動同期 - n8n ワークフロー

TypebotフローをGitHubリポジトリと双方向で自動同期し、バックアップと削除処理を行う高度なn8nワークフロー。確実なデータバージョン管理とクリーンアップに最適な強力なn8nテンプレートです。

ワークフロープレビュー

自動化の準備はいいですか?

このn8nワークフローテンプレートをダウンロードして、今すぐ使い始めましょう。

こんな方におすすめ

セルフホスト型Typebotを利用しており、信頼性の高いバックアップ戦略を必要とする技術者
アプリケーションデータとGitバージョン管理のシームレスな連携を目指すDevOpsエンジニア
再帰処理や複雑な比較ロジックを用いた高度な同期のn8n作例を探しているn8nユーザー
APIデータの管理とクリーンアップ処理のために、堅牢なn8nテンプレートを必要とする方

概要

この強力なn8nワークフローは、Typebotフローのための包括的な同期メカニズムとして機能し、チャットボットの定義が専用のGitHubリポジトリに常にバックアップされ、バージョン管理されることを保証します。このn8nテンプレートが解決する主な課題は、フローのライフサイクル管理です。新しいフローや変更されたフローのバックアップを行うだけでなく、ソースワークスペースからTypebotが削除された際にGitHub上の対応するファイルもクリーンアップします。n8nノード構造内のカスタムJavaScriptロジックによって可能になるこの二角アプローチは、データ整合性を維持しながらTypebot利用をスケーリングするのに最適な、信頼性が高くメモリ効率の良いソリューションを提供します。このロジックは、Execute Workflow n8nノードを介した再帰パターンを利用して多数のTypebotフローを処理し、メインn8nインスタンスのメモリを圧迫しないようにしています。これにより、高ボリューム環境においてもn8nワークフローの堅牢性が保証されます。

仕組み

同期は、通常は毎日実行されるSchedule Trigger n8nノード、またはOn clicking 'execute' n8nトリガーによる手動実行で開始されます。


  1. 設定とデータ収集: まず、n8nワークフローはGlobals n8nノードから設定変数(Typebot URL、ワークスペースID、GitHubオーナー/リポジトリ)を取得します。次に、2つのHTTPリクエストを同時に実行します。1つはアクティブな全Typebotフローのリストを取得するため、もう1つはGitHub n8nノードを使用してリポジトリ内の現在の全バックアップファイルを取得するためです。

  2. アイテム処理ループ: Split Out n8nノードがTypebotリストを個別のアイテムに分割します。Loop Over Items n8nノードが反復処理を管理し、メモリ効率を最適化するために、各アイテムに対してExecute Workflow n8nノード経由でワークフローを再帰的に呼び出します。

  3. サブワークフロールーティング: 再帰実行はExecute Workflow Trigger n8nノードから始まり、これがSwitch n8nノードに接続され、アイテムのorigin(TypebotかGitHubか)をチェックします。

  4. Typebotバックアップパス (Origin: Typebot): フローは詳細なTypebot JSONを取得し、既存のGitHubファイルデータを取得しようと試みます。Code n8nノード(isDiffOrNew)がJSONコンテンツを比較します。このカスタムn8nノードは、JSONキーの順序を揃えてから比較することで安定性を保証します。後続のCheck Status Switch n8nノードにより、フローはCreate new fileEdit existing file、またはコンテンツが「same」の場合はReturnのいずれかにルーティングされます。

  5. GitHubクリーンアップパス (Origin: GitHub): このパスでは、GitHub上のファイルがアクティブなTypebotに対応しているかを確認します。isDeleted Code n8nノードがファイル名(ID)とアクティブなTypebotリストを照合します。Typebotが削除されている場合、If n8nノードがフローをDelete a file GitHub n8nノードに誘導し、バックアップリポジトリをクリーンな状態に保ちます。この堅牢な二方向パスアプローチにより、メンテナンスのための効果的なn8nワークフローが実現します。

インストールガイド


  1. n8nテンプレートのインポート: 提供されたJSONコードをコピーし、お使いのn8nインスタンスに直接インポートします。

  2. 認証情報の設定:

Typebot: List TypebotsおよびGet Typebot HTTPリクエストn8nノードを認証するために、ジェネリックHTTPベアラートークン認証情報が必要です。
GitHub: GitHub用のOAuth2認証情報を設定します。この認証情報は、対象リポジトリ内のファイルの読み取り、書き込み、削除権限を持っている必要があります。

  1. グローバル変数の更新: Globals Set n8nノード(付箋で示されています)を見つけ、以下の値を更新します。

typebot.url: TypebotインスタンスのURL(例: https://typebot.io)。
typebot.workspace.id: バックアップ対象の特定のワークスペースID。
repo.owner: GitHubユーザー名。
repo.name: これらのバックアップ専用のリポジトリ名。

  1. 有効化: 認証情報とグローバル変数の設定が完了したら、n8nワークフローを有効化します。Schedule Trigger n8nトリガーが自動実行を処理しますが、On clicking 'execute' n8nノードから手動で実行することも可能です。

ノード詳細

Schedule Trigger / Manual Trigger: これらのn8nトリガーは、時間または手動入力を基に同期プロセスを開始します。
Globals (Set n8n node): n8nワークフロー全体の必須設定パラメーター(APIキー、URL、リポジトリ名など)を保持します。
List Typebots (HTTP Request n8n node): Typebot APIから現在アクティブな全Typebotフローのリストを取得します。
List files (GitHub n8n node): GitHubリポジトリに現在バックアップされているファイルのリストを取得します。
Execute Workflow (n8n node): アイテムを1つずつ処理するためにn8nワークフロー自体を再帰的に実行可能にする重要なコンポーネント。メモリ管理を最適化します。
Get Typebot (HTTP Request n8n node): IDを使用して特定のTypebotフローの詳細なJSONコンテンツ全体を取得します。
isDiffOrNew (Code n8n node): TypebotのJSONペイロードと、既存のGitHubバックアップデータ(Base64エンコードされている)を比較し、コンテンツのハッシュ/文字列比較に基づいてフローが「new(新規)」、「different(変更あり)」、「same(同じ)」のいずれであるかを判定するカスタムn8nノードです。
Check Status (Switch n8n node): isDiffOrNew n8nノードによって提供される同期ステータスに基づき、n8nワークフローの経路を切り替えます。
Create new file / Edit existing file / Delete a file (GitHub n8n node): GitHubリポジトリ内で同期の整合性を維持するために必要なGit操作(作成、更新、削除)を実行します。
isDeleted (Code n8n node): GitHub上のファイルリストとアクティブなTypebot IDリストを照合し、削除する必要があるファイルを特定してマークアップする役割を持つカスタムn8nノードです。

関連するn8nワークフロー

無料

ノード: 15 ノード
更新済み: 12月 26 2025
すべて表示
作成者

特徴*