Dify 工作流迁移:将 Webhook 到 Google Sheets 的工作流迁移至 AI Flowi Workflow
Dify 工作流迁移可采用已通过生产环境测试的 Verification Router 设计,在向 Google Sheets 追加行之前验证传入字段。 AI Flowi 端于 2026年10月8日 通过了生产环境测试:通过验证的输入返回 200,验证未通过的输入返回 422 并说明原因,密钥缺失或无效时返回 403。被拒绝的请求没有写入任何行。经过脱敏处理的工作流 JSON 已导入一个新建的空白流程,并重新测试。Dify 端仅有文档依据,未经 Ai Flowi 测试。
完整搭建步骤:Webhook 到 Google Sheets 教程。下载已脱敏并验证的工作流 JSON ZIP 文件。
Dify DSL 不是 AI Flowi 支持的导入格式。 Dify 导出其自身的 DSL YAML;AI Flowi 导入其自身的工作流 JSON。请将 Dify 导出文件用作重建行为的参考。重命名文件或转换文件语法,并不能使组件或凭据兼容。
开始前的准备
- 记录现有 Dify 流程的输入字段、转换逻辑、列顺序、目标位置、身份验证、调用方响应和重复投递策略。
Dify 到 AI Flowi 的映射与平台说明
Dify 文档介绍了 Webhook Trigger 和 HTTP Request 节点。其应用市场中的 Google Sheets 插件由 omluc 提供,版本为 v0.0.2,属于第三方插件,列出了 Batch Get 和 Batch Update 功能,并使用服务账号 JSON 进行身份验证。于 2026年10月8日 核查时,未在 Dify 官方文档中找到官方 Google Sheets 工具。若要追加行,根据文档推导出的方案是使用 Batch Update 指定范围,或通过 HTTP Request 调用 Sheets API 的 values:append 操作。范围更新并不自动等同于追加行:请记录当前流程如何选择写入位置。
Dify 的 Webhook Trigger 文档规定默认状态码为 200,自定义状态码的文档支持范围为 200–399。请记录发送方目前依赖的响应。这些 Dify 细节仅有文档依据,未经 Ai Flowi 测试;本教程并未声称实际执行过上述推导出的 Dify 方案。
| Dify 方案 | AI Flowi 对应组件 | 手动重建说明 |
|---|---|---|
| Webhook Trigger | Universal Webhook | 记录传入字段、身份验证和调用方响应;测试完成后替换发送方的调用地址。 |
| 通过 HTTP Request 调用 Sheets API 的 values:append,或使用第三方插件的 Batch Update 指定范围 | Append Rows | 重建 name/email/request 的列映射。范围更新并不自动等同于追加行;请记录现有方案如何选择写入位置。 |
| Google Sheets 插件使用的服务账号 JSON | Google Connection | 重新授权目标账号;插件凭据不会转移。 |
相关内容:n8n 工作流迁移:将 Webhook 到 Google Sheets 的工作流迁移到 AI Flowi Workflow。
需要手动重建的内容
Dify 的 DSL 导出不包含第三方工具 API 密钥和实际知识库内容。其服务账号插件凭据并不是 AI Flowi 的 Google Connection:请重新授权目标账号。分享导出文件之前,请检查其中是否含有敏感信息。提供的公开 JSON 已经过脱敏处理;普通批量导出文件可能保留账号标签、连接标识符、电子表格 ID 和端点 URL。
无法直接迁移的内容
- 不支持原生导入:Dify DSL YAML 无法导入 AI Flowi。请手动重建行为;提供的 AI Flowi JSON 是起步示例,并非转换后的 Dify 工作流。
- 本示例中没有经过测试的对应实现的功能:第三方 Sheets 插件的 Batch Get / Batch Update 方案,以及 Dify 的 200–399 自定义 Webhook 状态码范围,均不能证明 AI Flowi 中存在等效的追加行或调用方响应行为。这些来源平台的细节有文档依据(官方来源,核查于 2026年10月8日),未经 Ai Flowi 测试:Dify 应用市场插件页面和 Dify Webhook Trigger。请单独重建并测试所需行为。
- 凭据和知识库内容:在 AI Flowi 中重新创建 Google 连接和 Webhook 身份验证。Dify DSL 不包含第三方工具 API 密钥和实际知识库内容(有文档依据(官方来源,核查于 2026年10月8日),未经 Ai Flowi 测试);请另行保存所需的知识文档。
- Webhook URL:通过验收检查后,发送方必须使用新的 AI Flowi Production Endpoint。请保留旧 Dify URL 和回滚所需的历史日志。
AI Flowi 已测试结果(2026年10月8日)
提供的设计于 2026年10月8日 通过了生产环境测试和空白流程导入测试。这些结果适用于 AI Flowi 示例,并不代表您迁移后的 Dify 工作流。请重建自己的字段映射、凭据和目标位置,然后在切换发送方之前,核验调用方响应及实际写入的工作表。
| 用例 | 记录的 HTTP 结果 | 记录的目标端结果 |
|---|---|---|
| 有效请求体和平台密钥 | 200,附带追加结果 | 按 name/email/request 顺序新增一行 |
| 字段缺失、类型错误或电子邮箱无效 | 422,附带各字段的错误原因 | 未新增行 |
| JSON 格式错误 | 422,附带请求体须为对象的错误 | 未新增行 |
| 平台密钥缺失或无效 | 403,在流程执行前返回 | 未新增行 |
| 电子表格 ID 错误,仅在原流程测试 | 404,返回 Google 组件的原始错误 | 测试工作表未改变 |
| 同一有效事件投递两次 | 每次投递均返回 200 | 新增两行;没有去重 |
导入空白流程后的副本复现了成功写入、验证拒绝、密钥拒绝和重复投递行为。错误 ID 用例仅在原设计中测试过。每个用例执行后,请比较响应体并回读实际工作表;仅有画布或成功导入,并不能证明完成了写入。
已知限制:较简单的 10月8日 追加行版本会为每次重复投递新增一行。对于会重试的发送方,请使用并测试防重复版本;该版本于 2026年10月9日 通过生产环境测试,使用 event_id 和 Upsert Row 处理顺序投递;同时到达的两次投递仍可能各自插入一行。一次 Sheets 故障暴露了 Google 的原始错误详情,包括其 API URL 中的电子表格 ID;本示例不支持在流程内捕获该错误。自动重试与恢复、结果不明确的超时、吞吐量、整体可靠性、外部创建的工作表,以及 External Provider 身份验证,均尚未验证。原样重试无效请求体不会纠正其中的错误。
请另行保存凭据、知识文档和所需的历史日志:Dify 的 DSL 不会通过 AI Flowi JSON 导入转移这些内容。即使节点名称看起来相似,仍需检查调用方响应、重试策略和访问规则的实际行为。
切换检查清单
请对重建后的 Dify 工作流执行以下步骤。这是一份操作检查清单,并不证明这次跨平台切换已经过测试。
- 搭建与配置:按照基础教程的配置步骤操作;对于会重试的发送方,则使用其中的防重复配置。重新创建 Google 连接;检查 Spreadsheet ID、工作表标签页、列顺序、字段映射、POST 方法、Platform API Key 身份验证和 From Flow 响应模式。保持 JQ 字段可见。
- 在 AI Flowi 上执行验收测试:通过身份验证的有效输入必须返回 200 并写入一行;字段缺失、类型错误、电子邮箱无效和 JSON 格式错误必须返回 422,且不写入任何行;密钥缺失或无效必须返回 403,且不写入任何行。每个用例执行后都要回读工作表。
- 测试重复投递:追加行版本会为两次相同的有效投递写入两行。使用防重复版本时,请顺序发送相同的
event_id:预期先返回 200 和{"status":"inserted"},随后返回 200 和{"status":"duplicate"},且不新增行。同时到达的两次投递仍可能各自插入一行。 - 让两个系统并行写入测试工作表:向 Dify 和 AI Flowi 发送相同的合成输入,在测试电子表格中使用不同的工作表标签页,以便比较写入结果。根据已记录的调用方约定,比较映射后的值、列顺序、HTTP 响应和重复投递行为。先解决差异,再更改生产环境的发送方。
- 切换发送方 URL:记录旧 URL 和切换时间,然后将 Dify Webhook URL 替换为 AI Flowi Production Endpoint,并为发送方配置 AI Flowi 身份验证。
- 监控最初的请求:检查调用方收到的状态码和响应体,以及目标端的实际行,确认有无漏写或重复写入。Sheets 故障可能返回平台原始错误;经过测试的示例没有流程内错误捕获机制。如果重建后的行为未通过检查,请执行回滚方案。
- 保留回滚窗口:切换后停用旧 Dify 工作流。保持停用状态,不要删除;在您设定的回滚窗口结束之前,保留其 URL 和配置以供使用。
回滚方案
- 恢复投递:将发送方重新指向记录的 Dify Webhook URL,恢复原来的身份验证,并重新启用旧工作流。验证一次请求及目标行,然后停用 AI Flowi 替代流程。
- 核对切换窗口内的数据:使用防重复版本时,在重放缺失事件之前,按
event_id对照窗口期间写入的行与发送方记录。重试时保持标识符不变。Upsert Row 会更新已有的匹配行;它不会合并已有的重复行,其键的作用范围仅限一张工作表。如果旧工作流不保存event_id,请在发送方记录中保留它,以便人工核对。追加行版本没有 event_id 防重复机制,因此重放之前,请人工检查窗口期间写入的行。
切换回旧系统不会撤销工作表写入。这是人工执行的操作回滚;已测试的防重复机制限制仍然适用,包括可能发生的同时插入。
来源与证据范围
- 更新后的 Webhook 到 Google Sheets 教程和已脱敏的工作流 JSON ZIP 文件。示例、完整 JQ、响应和限制均来自日期为 2026年10月8日 的生产环境与空白流程导入测试报告;端口与脱敏后的导入文件一致。
- Google Connection、AI Flowi 工作流导入与导出和AI Flowi 定价。
- Dify DSL 导出、Webhook Trigger、HTTP Request、omluc Google Sheets 插件和官方工具目录。官方来源已于 2026年10月8日 核查;仅有文档依据,未经 Ai Flowi 测试。