GitHub 備份的 Typebot 流程自動同步 - n8n 工作流程

這套強大的 n8n 工作流程能自動化 Typebot 流程與 GitHub 的雙向同步,並處理刪除動作。使用這個高效能的 n8n 範本,確保資料版本控制與清理的可靠性。

工作流預覽

準備好自動化了嗎?

下載此 n8n 工作流程範本並立即開始使用。

適用對象

運行自架 Typebot 實例,需要可靠備份策略的技術使用者。
尋求應用程式資料與 Git 版本控制之間無縫整合的 DevOps 工程師。
尋求使用遞迴 (recursion) 與複雜比較邏輯的高階 n8n 使用者。
任何需要穩健的 n8n 範本來進行 API 資料管理與清理作業的使用者。

總覽

這套強大的 n8n 工作流程是一個全面的同步機制,能確保您的聊天機器人定義持續備份並在專用的 GitHub 儲存庫中進行版本控制。這個 n8n 範本主要解決的是流程的生命週期管理問題——不僅備份新的或修改過的 Typebot,當來源工作區刪除 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 擁有者/儲存庫)。接著,它同時發出兩個 HTTP 請求:一個用於列出所有現行的 Typebot 流程,另一個則使用 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 備份路徑 (來源: Typebot): 流程獲取詳細的 Typebot JSON,並嘗試獲取現有的 GitHub 檔案資料。isDiffOrNew Code n8n 節點會比較 Typebot JSON 負載與現有的 GitHub 備份資料(已進行 base64 編碼),以判斷流程是「新的」、「不同的」還是「相同的」。隨後的 Check Status Switch n8n 節點會將流程路由到 Create new file(建立新檔案)、Edit existing file(編輯現有檔案)或 Return(如果內容相同)。

  5. GitHub 清理路徑 (來源: GitHub): 此路徑會驗證 GitHub 上存在的檔案是否對應到一個目前仍存在的 Typebot。isDeleted Code n8n 節點會比對檔案名稱(ID)與現行 Typebot 清單,如果 Typebot 已被刪除,If n8n 節點會引導流程到 Delete a file GitHub n8n 節點,從而維持備份儲存庫的乾淨。這種穩健的雙路徑方法使這成為一個有效的 n8n 維護工作流程。

安裝指南


  1. 匯入 n8n 範本: 複製提供的 JSON 代碼,並直接匯入您的 n8n 實例中。

  2. 設定憑證 (Credentials):

Typebot: 您需要一個通用 HTTP 憑證(Generic HTTP Bearer Token credential)來驗證 List TypebotsGet Typebot HTTP Request n8n 節點。
GitHub: 為 GitHub 設定一個 OAuth2 憑證。此憑證必須擁有在目標儲存庫中讀取、寫入及刪除檔案的權限。

  1. 更新全域變數 (Global Variables): 找到標有便利貼的 Globals Set n8n 節點。更新以下數值:

typebot.url:您的 Typebot 實例 URL (例如:https://typebot.io)。
typebot.workspace.id:您想備份的特定工作區 ID。
repo.owner:您的 GitHub 使用者名稱。
repo.name:用於這些備份的 GitHub 儲存庫名稱。

  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): 一個關鍵元件,允許 n8n 工作流程自我遞迴執行,以逐一處理項目,最佳化記憶體管理。
Get Typebot (HTTP Request n8n node): 使用其 ID 獲取特定 Typebot 流程的完整詳細 JSON 內容。
isDiffOrNew (Code n8n node): 一個自訂的 n8n 節點,它會比較 Typebot JSON 負載與現有的 GitHub 備份資料(已進行 base64 編碼),基於內容雜湊值/字串比較,判斷流程是「新的」、「不同的」還是「相同的」。
Check Status (Switch n8n node): 根據 isDiffOrNew n8n 節點提供的同步狀態,來路由 n8n 工作流程。
Create new file / Edit existing file / Delete a file (GitHub n8n node): 執行必要的 Git 操作(建立、更新、刪除),以維持 GitHub 儲存庫的同步完整性。
isDeleted (Code n8n node): 一個自訂的 n8n 節點,負責比對 GitHub 檔案清單與現有 Typebot ID 列表,以找出並標記需要刪除的檔案。

相關 n8n 工作流程

免費

節點: 15 節點
更新时间: 2025年12月26日
建立者

精選*