Typebot 流程与 GitHub 备份的自动同步 - n8n 工作流

这个强大的 n8n 工作流可自动执行 Typebot 流程与 GitHub 仓库的双向同步备份,并处理删除操作。使用这个高效的 n8n 模板来实现可靠的数据版本控制和清理。

工作流预览

准备好自动化了吗?

下载此 n8n 工作流模板并立即开始使用。

适用人群

需要可靠备份策略的私有化部署 Typebot 用户。
寻求应用数据与 Git 版本控制无缝集成的 DevOps 工程师。
寻求使用递归和复杂比较逻辑的高级同步示例的 n8n 用户。
任何需要用于 API 数据管理和清理操作的强大 n8n 模板的人员。

概览

这个强大的 n8n 工作流是一个全面的 Typebot 流程同步机制,确保您的聊天机器人定义持续备份并在指定的 GitHub 仓库中进行版本控制。该 n8n 模板主要解决流程的生命周期管理问题——不仅备份新增或修改的 Typebot,还在源工作区删除 Typebot 时,清理 GitHub 中对应的文件。这种通过 n8n 节点结构内的自定义 JavaScript 逻辑实现的双管齐下的方法,提供了一种可靠且内存占用效率高​​的解决方案,非常适合在保持数据一致性的同时扩展 Typebot 的使用。该逻辑利用 Execute Workflow n8n 节点通过递归模式来处理大量 Typebot 流程,而不会使主 n8n 实例的内存过载。这确保了 n8n 工作流在高负载环境下依然稳健。

工作原理

同步由 Schedule Trigger n8n 节点(通常每日运行)触发,或者通过点击 'execute' 时由 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 代码 n8n 节点会比较 JSON 内容。这个自定义 n8n 节点通过在比较前对 JSON 键进行排序来确保稳定性。后续的 Check Status Switch n8n 节点根据内容是“相同”、“新增”还是“不同”将流程路由到 Create new file(创建新文件)、Edit existing file(编辑现有文件)或 Return(返回)。

  5. GitHub 清理路径(来源: GitHub): 此路径验证 GitHub 上的文件是否存在对应的活动 Typebot。isDeleted 代码 n8n 节点将文件名(ID)与活动 Typebot 列表进行检查。如果 Typebot 已被删除,If n8n 节点将引导流程至 Delete a file GitHub n8n 节点,从而保持备份仓库的整洁。这种强大的双路径方法使它成为一个有效的 n8n 维护工作流。

安装指南


  1. 导入 n8n 模板: 复制提供的 JSON 代码并直接导入到您的 n8n 实例中。

  2. 配置凭证:

Typebot: 您需要一个通用的 HTTP 承载令牌(Generic HTTP Bearer Token)凭证,用于 List TypebotsGet Typebot HTTP Request n8n 节点的身份验证。
GitHub: 为 GitHub 配置一个 OAuth2 凭证。此凭证必须有权限对目标仓库的文件进行读取、写入和删除操作。

  1. 更新全局变量: 找到带有备注标签(sticky note)的 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): 核心组件,支持对工作流自身进行递归执行,以逐个项目处理数据,优化内存管理。
Get Typebot (HTTP Request n8n node): 使用 Typebot 的 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): 负责比较 GitHub 文件列表与活动 Typebot 列表的自定义 n8n 节点,用于识别和标记需要删除的文件。

相关 n8n 工作流

免费

节点: 15 节点
更新时间: 2025年12月26日
创建者

精选*