If-else 和 Merge
当您需要将场景(scenario)拆分为条件路径(route),仅根据逻辑遵循其中一条路径,然后将流程(flow)重新连接为单一路径时,请配合使用 如果 - 否则模块(module)与 合并模块(module)。
这与 路由器 不同,后者会运行所有路径(route)且无法重新连接。
如果 - 否则模块(module)
如果 - 否则模块(module)将您的场景(scenario)拆分为条件路径(route)。仅运行第一个评估为 真的条件。如果没有条件为 真,则运行 否则路径(route)。
请将条件从最具体到最不具体进行排列,以确保运行正确的路径。您可以添加任意数量的条件。
如果 - 否则模块(module)需要一个条件路径(route)和一个 否则路径(route)。这些路径(route)无法从 如果 - 否则模块(module)取消链接,并且最后一个模块(module)无法删除。
设置好路径后,您可以保持它们分离,或使用 合并模块(module)将它们重新连接并继续流程。
要将 如果 - 否则模块(module)添加到您的场景(scenario),请参阅 添加 If-else 模块。
虽然 如果 - 否则模块(module)和 路由器 都可以将场景(scenario)拆分为带有条件的不同路径,但场景(scenario)的运行过程有所不同。
| 如果 - 否则模块(module) | 路由器 |
|---|---|
| 将场景(scenario)拆分为带有条件的多个路径(route) | 将场景(scenario)拆分为带有条件的多个路径(route) |
| 运行第一个通过为 真的条件 | 按设定顺序运行所有条件 |
| 路径(route)可以使用 合并模块(module)重新合并 | 路径(route)无法重新合并 |
如果 - 否则模块(module)使用操作(operations),但不消耗任何点数(credits)。
合并模块(module)
合并模块(module)将 如果 - 否则模块(module)创建的条件路径(route)重新连接为单个流程(flow)。它将数据从活动路径(route)传递到场景(scenario)中的任何后续模块(module)。
合并模块(module)仅与 如果 - 否则模块(module)配合使用。如果不先设置 如果 - 否则流程(flow),您无法将其添加到场景(scenario)中。
要将 合并模块(module)添加到您的场景(scenario),请参阅 添加 Merge 模块。
合并模块(module)使用操作(operations),但不消耗任何点数(credits)。
添加 如果 - 否则模块(module)
如果 - 否则模块(module)将场景(scenario)流程(flow)拆分为带有条件的多个路径(route)。
要添加 如果 - 否则模块(module):
-
在您的场景(scenario)中,点击加号以添加另一个模块(module)。
-
搜索 流程控制> 如果 - 否则 模块(module)。

在设置好 如果 - 否则流程(flow)之前,无法将 合并模块(module)添加到您的场景(scenario)中。
- 添加 如果 - 否则模块(module)后,您将看到默认设置为两条路径(path),一个条件路径(route)和一个 否则路径(route)。
设置条件(condition):
-
标签: 为条件命名。
-
条件: 输入或映射条件的值。根据需要添加额外规则。

-
点击 保存 以保存此条件。
-
要添加另一个条件路径(route),将鼠标悬停在 如果 - 否则模块(module)上,直到看到白色 + 符号并点击。

每次点击都会添加另一个条件路径(route)。
-
设置每个条件(condition)的值并点击 保存。
-
可选:点击 否则过滤器(filter)并输入 标签。

- 点击 保存。
设置完所有条件后,根据需要继续向场景(scenario)添加模块(module)以完成每个路径(route)。
您可以保持每个路径(route)分离,或添加合并模块(module)将路径(route)连接在一起并继续流程(flow)。
如果 - 否则流程(flow)的限制
您不能在 如果 - 否则模块(module)之后的流程(flow)中追加 路由器模块(module)或另一个 如果 - 否则模块(module)。这一限制针对的是在 如果 - 否则 之后的同一流程里继续追加这两类模块。
官方当前还提供 嵌套 如果 - 否则 与 合并(Nested If-else & Merge):可以在一个 如果 - 否则 的某个分支(branch)内部再放置一个 如果 - 否则,从而在同一个场景(scenario)中构建多级判断,而不必把相关条件拆到多个路由器链上。它属于分支内部的嵌套,与上面禁止的“在 如果 - 否则 之后的主流程中追加”不是同一种放置方式。是否可用以及具体行为,请以官方页面为准。

添加 合并模块(module)
合并模块(module)将 如果 - 否则路径(route)合并在一起,并使用单个路径(route)中的数据继续流程(flow)。
合并模块(module)只能在 如果 - 否则模块(module)之后使用。
要添加 合并模块(module):
-
在任何路径(route)的末尾,点击加号以添加另一个模块(module)。
-
搜索 流程控制> 合并 模块(module)。

- 点击并按住 合并模块(module)图标,将其拖动并连接到 如果 - 否则流程(flow)中的所有路径(route)。

您也可以通过点击任何路径(route)末尾的加号并选择 合并路径 来合并路径(route)。

- 为您的 合并模块(module)输出输入或映射以下值:
-
输出名称
-
如果第 1 个条件为真 > 输出值
-
否则 > 输出值

如有必要,添加额外的 如果 - 否则输出。
- 点击 保存。
合并模块(module)已连接到 如果 - 否则流程(flow),场景(scenario)流程(flow)可以在合并后继续。
如果条件路径(route)不包含模块(module),并且您将该路径(route)连接到 合并模块(module),Make 会显示一个 什么都不做(Do Nothing)模块。虽然此路径(route)不包含任何模块(module),但数据会通过。

要将 什么都不做(Do Nothing)模块替换为其他模块(module),请点击 什么都不做(Do Nothing)模块并搜索您需要的应用。

从 如果 - 否则和 合并流程(flow)中删除模块(module)
要删除 如果 - 否则模块(module),请右键单击并选择 删除。
这将删除该模块(module)及其所有条件。此操作无法撤销。

删除 如果 - 否则模块(module)后,任何剩余的模块(module)将显示错误,直到您将它们重新连接到场景(scenario)流程(flow)。

如果您在 合并模块(module)之前删除模块(module),合并模块(module)将显示错误。在配置其输出之前,至少连接一个模块(module)。

教程:费用报告审批系统
在本教程中,您将构建一个场景(scenario),自动将费用报告提交分类为两条路径:低价值费用的立即批准,以及需要人工审核的费用的 Slack 通知。所有提交都会记录在 Google Sheets 中,并带有其审批状态。
您将需要:
-
一个 Tally 表单来提交费用信息。您的表单应包含以下字段:名字、姓氏、费用日期、费用描述和金额。
-
一个 Slack 账户,用于接收需要额外审核才能批准的费用的通知。
-
一个 Google Sheet 文件,包含以下列标题:First Name、Last Name、Date of Expense、Description of Expense、Amount 和 Approval。

要构建场景(scenario):
步骤 1:连接到 Tally
- 点击巨大的加号并添加一个 Tally > Watch New Responses 模块(module)。
- 点击 创建 webhook。输入 webhook 名称并连接到您的 Tally 账户。
- 在 表单 ID 字段中,选择您在 Tally 中创建的费用报告表单。
- 点击 保存 以保存 webhook,然后再次点击 保存 以保存模块(module)设置。
您的场景(scenario)现在已连接到 Tally,并在提交新表单时触发。
步骤 2:设置 If 路径(route)条件并配置流程(flow)
- 添加一个 如果 - 否则 模块(module)并设置第一个条件,即高于自动批准限额的费用报告值。在此示例中,高于 $100 的费用超过自动批准限额。
-
标签: 高于限额
-
条件: 映射 Tally 中费用金额的字段,并将条件设置为大于 100。

-
点击 保存。
-
在此第一个条件路径(route)中,添加一个 Slack > Send a Message 模块(module)。
-
创建到您的 Slack 账户的连接,并选择要接收消息的人员的 ID。您的配置可能因 Slack 设置而异。
-
在 文本 字段中,输入要发送的关于费用报告的消息。您可以在消息中映射 Tally 表单中的数据。在此示例中,包含了提交费用报告的人员的名字和姓氏。

-
点击 保存。
If 条件路径(route)识别出费用金额高于 $100 的报告提交,并发送 Slack 消息通知收件人。

步骤 3:配置 Else 路径(route)流程(flow)
-
点击 Else 路径(route)条件,并在 标签 字段中输入名称。点击 保存。

-
添加一个 Tools > Set variable 模块(module)。
-
变量名称:输入一个变量名称以指示审批状态。
-
变量值:输入一个变量值,以表明此路径(route)中的费用报告已获批准。

- 点击 保存。
Else 路径(route)配置为识别费用金额不超过 $100(含 $100)的报告,并将其标记为已批准。
步骤 4:合并条件并继续流程(flow)
- 在任一 路径(route)之后,添加一个 流程控制> 合并 模块(module)。
- 点击并按住 合并模块(module)图标,将其拖动并连接到 如果 - 否则流程(flow)中的所有路径(route)。
- 点击 合并模块(module)并输入或映射以下合并输出值:
-
输出名称: Approval(以匹配 Google Sheets 文件中的字段)
-
如果第 1 个条件为真 > 输出值: Review required
-
否则 > 输出值: 映射 Else 路径(route)中设置的变量值,status

- 点击 保存。
- 添加一个 Google Sheets > Add a row 模块(module)。创建到您的 Google 账户的连接,并选择您创建的 Google Sheets 文件。
您的值将根据您保存文件的位置、文件名以及文件中的工作表名称而有所不同。

- 对于每个 Google Sheets 列,映射 Tally 表单数据和 合并模块(module)输出:
-
First Name: First name
-
Last Name: Last name
-
Date of Expense: Date of expense
-
Description of Expense: Description
-
Amount: Amount submitted (in dollars)
-
Approval: Approval

- 点击 保存。
点击 保存 并保存您的场景(scenario)。
准备好后,安排您的场景(scenario)运行。由于您的场景(scenario)以 webhook 模块(module)开始,默认设置是在数据到达时立即运行。

当提交费用报告时,信息会保存在 Google Sheets 文件中,并标记正确的审批值。
