如何构建工作流
本指南将逐步指导您为用户构建自动化工作流的整个过程——从选择应用、添加认证、填写输入到发布。
在本指南中,我们假设要为用户提供使用(虚构的)应用 SuperExampleCRM 和 PlatformAdManager 自动化工作流的功能,这样当 SuperExampleCRM 中出现新潜在客户时,就会向 PlatformAdManager 发送新的互动报告。我们需要在您的产品中构建一个 Zap,该 Zap 使用 SuperExampleCRM 和 PlatformAdManager。Zap 由一系列步骤组成,在本示例中,我们的两个步骤分别是:
Zap 步骤要求
每个 Zap 步骤又包括以下部分:
要构建一个 Zap,我们需要为每个步骤选择一个操作(Action)、认证(Authentication)和输入(Inputs)。
配置第一个步骤
“当 SuperExampleCRM 中出现新潜在客户时……”
选择操作
首先,我们需要为 Zap 的第一个步骤选择一个操作。有关更多细节,请参阅选择操作。
假设 SuperExampleCRM 应用的 id
为 4b3920d6-1d5a-4071-b837-9383dc511b80
。给定这个 ID 以及第一个操作必须具有 action_type
为 READ
的约束,我们可以通过向 /actions
端点发送请求来获取所选应用的可用操作列表。
GET /actions?app=4b3920d6-1d5a-4071-b837-9383dc511b80&action_type=READ
然后,用户可以从这些操作中选择他们希望用作 Zap 触发器的操作。本指南中,我们假设用户选择了“New Lead”(新潜在客户)操作:
{
"id": "core:wJ3PxHpNArZ8MqvloW3L1ZyMDQ4nJ",
"key": "new_lead",
"app": "4b3920d6-1d5a-4071-b837-9383dc511b80",
"type": "action",
"action_type": "read",
"is_instant": true,
"title": "New Lead",
"description": "当 SuperExampleCRM 中添加新潜在客户时触发"
}
选择认证
接下来,是为 Zap 的第一个步骤选择认证。有关更多细节,请参阅选择认证。
我们可以向 GET /authentications?app=4b3920d6-1d5a-4071-b837-9383dc511b80
发送请求,并让用户从返回的认证列表中选择他们希望使用的认证。(有关当没有认证、认证不是必需的或需要创建新认证时该如何处理,请参阅选择认证)
本指南中,我们假设用户选择了 ID 为 "49509"
的认证:
{
"type": "authentication",
"id": "49509",
"app": "4b3920d6-1d5a-4071-b837-9383dc511b80",
"title": "SuperExampleCRM (wade@zapier.com)",
"is_expired": false
}
配置输入
Zap 的步骤 1 的最后一件事是选择输入值。请参阅字段和字段集,以获取有关为给定操作获取可用输入字段以及根据用户提供输入数据重新加载输入字段的更多细节。
在上面的步骤中,用户选择了 ID 为 core:wJ3PxHpNArZ8MqvloW3L1ZyMDQ4nJ
的“New Lead”操作。通过 /actions/{action_id}/inputs
端点,我们可以获取该操作所需的输入字段列表。
如您所见,此操作只有一个输入字段:Lead type
(潜在客户类型)。这让用户有机会配置操作,使其仅返回特定类型的潜在客户。
在本示例中,此输入字段的 format
为 SELECT
,这意味着我们需要获取可用的可能值:
我们提供了空的 inputs
字段对象,因为用户尚未提供任何输入。如果有多个输入字段,则在用户逐步完成它们时,应填充此对象。
在这种情况下,lead_type
字段有两个可用选项:company
和 person
。有了这些信息,我们可以渲染一个下拉字段,并让用户从中选择一个。
本指南中,我们假设用户从下拉菜单中选择了 person
。
配置第二个步骤
“……向 PlatformAdManager 发送新的互动报告”
选择操作
为 Zap 的第二个步骤选择操作的过程与第一个步骤相同,并使用相同的 API 端点,唯一的区别是应使用不同的应用 ID,并且第二个操作的 action_type
应为 WRITE
。在本例中,假设 PlatformAdManager 应用的 ID 为 9c29df46-f9b9-48e2-a879-8f5479d8401d
。我们可以通过向 /actions
端点发送请求来获取 PlatformAdManager 的可用操作列表。
GET /actions?app=9c29df46-f9b9-48e2-a879-8f5479d8401d&action_type=WRITE
然后,用户可以从这些操作中选择他们希望使用的操作。本指南中,我们假设用户选择了“Create Engagement Report”(创建互动报告)操作:
{
"id": "core:3ZYFzZKkjbDK2AwQopVqrZWL9pK",
"key": "create_engagement_report",
"app": "9c29df46-f9b9-48e2-a879-8f5479d8401d",
"type": "action",
"action_type": "WRITE",
"is_instant": true,
"title": "Create Engagement Report",
"description": "创建互动报告"
}
选择认证
为 Zap 的第二个步骤选择认证的过程与第一个步骤相同,并使用相同的 API 端点,唯一的区别是应使用不同的应用 ID。在本例中,我们将向 GET /authentications?app=9c29df46-f9b9-48e2-a879-8f5479d8401d
发送请求。
然后,用户可以从可用认证中选择他们希望与此 Zap 一起使用的认证。本指南中,我们假设用户选择了 ID 为 "857610"
的认证:
{
"type": "authentication",
"id": "857610",
"title": "PlatformAdManager (wade@zapier.com)",
"app": "9c29df46-f9b9-48e2-a879-8f5479d8401d",
"is_expired": false
}
配置输入
对于 Zap 的第二个步骤,您可以按照上面概述的过程来获取输入字段、选项,并根据用户提供输入数据重新加载输入字段。
本指南中,假设我们发送以下请求并获得以下字段作为响应。
我们可以像在步骤 1 中一样,通过向用户呈现输入字段并接收输入配置来完成过程。但是,我们还可以选择通过将步骤 1 的输出字段映射到步骤 2 的输入字段来创建动态输入。
将输出映射到输入
我们从 outputs 端点获取第一个操作的可用输出字段:
现在,我们可以在配置 Zap 的第二个操作时使用这些输出字段。
在配置步骤 2 的输入时,我们可以将步骤 1 的输出字段 full_name
映射到步骤 2 的输入字段 engaged_party
,方法是使用双大括号 {{step1_field_id}}
,在本例中为 {{full_name}}
。
创建 Zap
现在,我们为 Zap 的每个步骤都配置了操作、认证和输入,我们可以使用POST /zaps 端点来创建一个完全配置的 Zap。
请注意,我们已经将上面收集的所有配置组合起来来构建此请求的主体。
- 每个步骤的
action
是用户选择的操作的id
。 - 每个步骤的
authentication
是用户选择的认证的id
。 - 每个步骤的
inputs
是一个对象,其中每个键是输入字段的id
- 在
engaged_party
的情况下(我们将步骤 1 的输出字段映射到步骤 2 的输入字段),值是步骤 1 的输出字段的id
,用双大括号{{...}}
括起来 - 在所有其他情况下,值是用户选择的静态值或其他配置值
- 在