跳到主要内容

子工作流#

您可以在一个工作流中调用另一个工作流。这使您能够构建模块化、类似微服务的工作流。当工作流规模过大遇到内存问题时,此功能也能提供帮助。创建子工作流需要使用执行工作流执行子工作流触发器节点。

子工作流的执行不计入您套餐的月度执行次数或活跃工作流限制。

设置和使用子工作流#

本节将逐步介绍如何设置父工作流和子工作流。

创建子工作流#

  1. 创建新工作流。

    从现有工作流创建子工作流

    您可以选择使用执行子工作流节点直接从现有的父工作流创建子工作流。在该节点中,选择数据库从列表选项,然后在列表中选择创建子工作流

    您还可以通过上下文菜单中的子工作流转换直接提取选定的节点。

  2. 可选:配置哪些工作流可以调用此子工作流:

    1. 选择选项 选项菜单 菜单 > 设置。n8n 将打开工作流设置模态框。
    2. 更改此工作流可被以下对象调用设置。有关配置工作流的更多信息,请参阅工作流设置
  3. 添加执行子工作流触发器节点(如果在触发器节点下搜索,此节点也名为当被另一个工作流执行时)。

  4. 设置输入数据模式以选择如何定义子工作流的输入数据:

    • 使用下方字段定义:选择此模式可定义调用工作流需要提供的各个输入名称和数据类型。调用工作流中的执行子工作流节点调用 n8n 工作流工具节点将自动拉取此处定义的字段。
    • 使用 JSON 示例定义:选择此模式可提供一个示例 JSON 对象,以演示预期的输入项及其类型。
    • 接受所有数据:选择此模式可无条件接受所有数据。子工作流不会定义任何必需的输入项。此子工作流必须处理任何输入不一致或缺失值的情况。
  5. 根据需要添加其他节点以构建子工作流功能。

  6. 保存子工作流。

子工作流不得包含错误

如果子工作流中存在错误,父工作流将无法触发它。

构建前将数据加载到子工作流

这需要具备从先前执行加载数据的能力,该功能在 n8n Cloud 和已注册的 Community 计划中可用。

如果您想在构建子工作流时将数据加载到其中以供使用:

  1. 创建子工作流并添加执行子工作流触发器
  2. 将节点的输入数据模式设置为接受所有数据,或者如果输入项已知,则使用字段或 JSON 定义输入项。
  3. 在子工作流设置中,将保存成功的生产执行设置为保存
  4. 跳转到设置父工作流,并运行它。
  5. 按照步骤从先前的执行加载数据
  6. 如有必要,调整输入数据模式以匹配父工作流发送的输入。

现在您可以在触发器节点中固定示例数据,从而在配置工作流其余部分时使用真实数据。

调用子工作流#

  1. 打开要调用子工作流的工作流。

  2. 添加执行子工作流节点。

  3. 执行子工作流节点中,设置要调用的子工作流。您可以选择按 ID 调用工作流、从本地文件加载工作流、在节点中将工作流 JSON 添加为参数,或通过 URL 定位工作流。

    查找您的工作流 ID

    您的子工作流 ID 是其 URL 末尾的字母数字字符串。

  4. 填写子工作流定义的必需输入项。

  5. 保存您的工作流。

当您的工作流执行时,它将向子工作流发送数据并运行它。

您可以通过打开执行子工作流节点并选择查看子执行链接来跟踪从父工作流到子工作流的执行流程。同样,子工作流的执行包含一个指向父工作流执行的链接,以便向另一个方向导航。

数据如何在工作流之间传递#

例如,假设您在工作流 A 中有一个执行子工作流节点。该执行子工作流节点调用另一个名为工作流 B 的工作流:

  1. 执行子工作流节点将数据传递给工作流 B 的执行子工作流触发器节点(在画布中标题为"当被另一个节点执行时")。
  2. 工作流 B 的最后一个节点将数据发送回工作流 A 中的执行子工作流节点。

子工作流转换#

有关如何将现有工作流划分为子工作流的信息,请参阅子工作流转换

回到顶部