跳至内容

执行子工作流#

使用执行子工作流节点在运行n8n的主机上运行不同的工作流。

节点参数#

来源#

选择节点应从何处获取子工作流的信息:

  • Database: Select this option to load the workflow from the database by ID. You must also enter either:
    • 从列表中选择: 从您账户可用的工作流列表中选择工作流。
    • 工作流ID: 输入工作流的ID。工作流的URL中/workflow/后面就是ID。例如,如果一个工作流的URL是https://my-n8n-acct.app.n8n.cloud/workflow/abCDE1f6gHiJKL7,那么工作流ID就是abCDE1f6gHiJKL7
  • Local File: Select this option to load the workflow from a locally saved JSON file. You must also enter:
    • 工作流路径: 输入您希望节点执行的本地JSON工作流文件的路径。
  • Parameter: Select this option to load the workflow from a parameter. You must also enter:
    • 工作流JSON: 输入您希望节点执行的JSON代码。
  • URL: Select this option to load the workflow from a URL. You must also enter:
    • 工作流URL: 输入您想从中加载工作流的URL。

工作流输入#

如果使用数据库从列表选项选择子工作流,子工作流的输入项将自动显示,供您填写或映射值。

您可以选择性地移除请求的输入项,这种情况下子工作流将接收null作为该项的值。您还可以启用尝试转换类型功能,以尝试自动将数据转换为子工作流项请求的类型。

如果子工作流的工作流输入触发器节点使用了“接受所有数据”输入数据模式,输入项将不会显示。

模式#

使用此参数控制节点的执行模式。可从以下选项中选择:

  • 一次性处理所有项目: 将所有输入项传递到节点的单次执行中。
  • 每个项目运行一次: 依次为每个输入项目执行节点一次。

节点选项#

该节点包含一个选项:等待子工作流完成。这允许您控制主工作流是否应在继续下一步之前等待子工作流完成(开启),或者主工作流是否无需等待继续执行(关闭)。

模板和示例#

Scrape business emails from Google Maps without the use of any third party APIs

作者:Akram Kadri

查看模板详情
Back Up Your n8n Workflows To Github

作者:Jonathan

查看模板详情
Host Your Own AI Deep Research Agent with n8n, Apify and OpenAI o3

作者:Jimleuk

查看模板详情
浏览执行子工作流集成模板, or 搜索所有模板

设置和使用子工作流#

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

创建子工作流#

  1. 创建新工作流。

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

    您可以选择使用Execute Sub-workflow节点直接从现有的父工作流创建子工作流。在节点中,选择DatabaseFrom list选项,并在列表中选择Create a sub-workflow

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

    1. 选择选项 Options menu菜单 > 设置。n8n会打开工作流设置模态窗口。
    2. 更改此工作流可由设置。有关配置工作流的更多信息,请参阅工作流设置
  3. 添加执行子工作流触发器节点(如果在触发器节点下搜索,该节点也显示为当被其他工作流执行时)。
  4. Set the Input data mode to choose how you will define the sub-workflow's input data:
    • 使用下方字段定义: 选择此模式可定义调用工作流需要提供的独立输入名称和数据类型。调用工作流中的执行子工作流节点调用n8n工作流工具节点将自动获取此处定义的字段。
    • 通过JSON示例定义: 选择此模式可提供一个示例JSON对象,用于展示预期的输入项及其类型。
    • 接受所有数据: 选择此模式将无条件接受所有数据。子工作流不会定义任何必需的输入项。该子工作流必须自行处理输入不一致或缺失值的情况。
  5. 根据需要添加其他节点以构建您的子工作流功能。
  6. 保存子工作流。

子工作流不能包含错误

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

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

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

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

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

您现在可以在触发器节点中固定示例数据,这样在配置工作流的其余部分时就能使用真实数据进行操作。

调用子工作流#

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

    查找您的工作流ID

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

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

  5. 保存您的工作流。

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

您可以通过打开“执行子工作流”节点并选择查看子执行链接来跟踪从父工作流到子工作流的执行流程。同样地,子工作流的执行中也包含一个返回父工作流执行的链接,以便在相反方向进行导航。

工作流之间的数据传递方式#

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

  1. Execute Sub-workflow节点将数据传递给Workflow B的Execute Sub-workflow Trigger节点(在画布中显示为"由另一个节点执行时触发")。
  2. 工作流 B 的最后一个节点将数据发送回 工作流 A 中的执行子工作流节点。
优云智算