创建适合智能体使用的流
学习目标
完成本单元后,您将能够:
- 为适合智能体使用的流选择正确的流类型。
- 创建适合智能体使用的流所需的变量。
- 配置“获取记录”元素,以便将正确的数据发送给智能体。
- 配置流,使其仅在必要时向智能体发送错误提示。
Trailcast
如果您想收听本模块的录音,请使用以下播放器。听完这段录音后,记得返回每个单元,查看资源,然后完成相关评估。
注册 Agentforce 的自定义 Developer Edition 组织
要完成此模块,您需要一个启用了 Agentforce 的专用 Developer Edition 组织。立即获取免费的 Developer Edition 组织并将其连接到 Trailhead,完成本徽章中的挑战。请注意,此 Developer Edition 是为配合此徽章中的挑战而设计的,可能不适用于其他徽章。请务必检查确认您使用的是我们推荐的 Trailhead Playground 或专用的 Developer Edition 组织。
- 单击链接,即可免费注册此自定义的包含 Agentforce 的 Developer Edition 组织。
- 填写表格。
- 在 Email(电子邮件)处输入有效的电子邮件地址。
- 在 Username(用户名)处输入一个看起来像电子邮件地址且唯一的用户名,但不必是一个有效的电子邮件帐户。
- 在 Email(电子邮件)处输入有效的电子邮件地址。
- 表格填好以后,单击 Sign me up(我要注册)。出现一条确认消息。
- 收到激活电子邮件后(这可能需要几分钟),打开它并点击 Verify Account(验证帐户)。
- 设置密码和挑战问题,完成注册。
- 您已登录 Developer Edition。
现在将新的 Developer Edition 组织连接到 Trailhead。
- 确保您已登录 Trailhead 帐户。
- 在页面底部的 Challenge(挑战)部分,单击 Playground 名称,然后单击 Connect Org(连接组织)。
- 在登录屏幕上,输入刚刚设置的 Developer Edition 的用户名(用户名在您刚刚收到的电子邮件中列出)和密码。
- 在 Allow Access?(是否允许访问?)屏幕上,单击 Allow(允许)。
在 Want to connect this org for hands-on challenges?(想要连接此组织进行实践挑战?)屏幕上,单击 Yes!(是!) Save it(保存)。您将被重定向到挑战页面,并准备使用新的 Developer Edition 来获得此徽章。
计划您的智能体需求
和以往一样,在开始创建自动化之前,您需要制定计划。这一点在创建智能体时尤为重要!以下是基本流程:
- 明确希望智能体做什么。
- 创建智能体将要运行的自动化(在本例中为流)。
- 在智能体中,创建一个主题来处理一组相关任务。
- 关于这个主题,您可以创建一个引用该流的智能体操作。
我们来看一个场景,您会在其中构建一个流添加到现有智能体中。在这个示例中,您要为 Coral Cloud 度假村构建一个智能体,帮助客户管理他们的已预订活动。这些已预订活动存储在 Coral Cloud 的 Salesforce 组织的“预订”对象中。
智能体需要执行的任务之一是检索客户即将进行的已预订活动,并将其列出供客户查看。为了确保智能体获取的信息准确无误,创建流来检索客户的所有“预订”记录。仅检索尚未取消且尚未发生的已预订活动。然后,将检索到的已预订活动通过输出变量发送回智能体。
流准备就绪后,将其分配给智能体。但您不能直接将流分配给智能体。而是先在智能体中创建主题,用于处理相关任务。然后,在该主题下创建引用该流的智能体操作。

在开始任何动作之前,请先仔细考虑智能体需要哪些数据以及如何获取这些数据。智能体不应将客户信息泄露给任何索要者,因此需要验证索要者的身份。要检索客户的已预订活动,流需要该客户“联系人”记录的 ID。然后,流可以从“预订”对象中检索已预订活动并将其传递给智能体。
幸运的是,Coral Cloud 的组织中已经存在 Get Customer Details(获取客户详细信息)流,该流接收客户的电子邮件地址和会员编号作为输入,并返回其联系人 ID。让我们使用 Get Customer Details(获取客户详细信息)流和用于检索这些“预订”记录的新流来绘制此交互图。

- 当客户要求查看已预订活动时,智能体会要求客户提供姓名和会员编号以进行验证。
- 当客户提供这些详细信息后,智能体会运行 Get Customer Details(获取客户详细信息)流,并传入验证详细信息。
- Get Customer Details(获取客户详细信息)流会将客户的联系人 ID 返回给智能体。
- 然后,智能体运行新的 Get Contact’s Upcoming Bookings(获取联系人的近期预订)流,并传入刚刚收到的联系人 ID。
- Get Contact’s Upcoming Bookings(获取联系人的近期预订)流会将客户近期的、未取消的预订返回给智能体。
- 智能体将收到的预订信息提供给客户。
请注意,如果智能体运行 Get Customer Details(获取客户详细信息)来获取联系人 ID,则可以将该联系人 ID 作为输入提供给 Get Contact’s Upcoming Bookings(获取联系人的近期预订)流。通过按顺序执行这些小型、独立的任务,您的智能体可以获取所需的所有数据。
您应该始终创建在配置智能体之前您知道需要的流,因此我们现在创建 Get Contact’s Upcoming Bookings(获取联系人的近期预订)流。
创建流及其变量
首先,创建流及其输入输出变量。流需要输入变量来接收联系人 ID,以及输出变量来返回预订记录。此外,还需要创建输出变量来提供有用的错误提示。给出每个变量详细的使用方式。
- 创建自动启动流。确保选择 Autolaunched Flow (No Trigger)(自动启动流(无触发器))流类型。
- 创建输入变量,用于保存从智能体处收到的客户联系人 ID。(不用担心,Coral Cloud 已经提供了适合智能体使用的流来检索客户联系人 ID。我们稍后会用到这个流。)
- 在工具箱 (
) 中,单击 New Resource(新建资源)。
- 在“资源类型”处,选择变量。
- API Name(API 名称)输入
Contact_ID。
- Description(描述)输入
The Id of a Contact record that you would like to find related Booking records for.(您想要查找相关预订记录的联系人记录的 ID。) - 在 Data Type(数据类型)处选择 Text(文本)。
- Availability Outside the Flow(在流外部可用)选择 Available for input(可用于输入)。
- 单击完成。
- 在工具箱 (
- 创建输出变量来保存检索到的预订记录。
- 在工具箱 (
) 中,单击 New Resource(新建资源)。
- 在“资源类型”处,选择变量。
- API Name(API 名称)输入
Contact_Bookings。
- Description(描述)输入
The upcoming not-canceled bookings assigned to the contact whose ID matches the Contact_ID.(即将到来的未取消预订将分配给其 ID 与 Contact_ID 相匹配的联系人。) - Data Type(数据类型)选择 Record(记录)。
- 选择 Allow multiple values (collection)(允许多个值(集合))。
- Object(对象)选择 Booking(预订)。
- Availability Outside the Flow(在流外部可用)选择 Available for output(可用于输出)。
- 单击完成。
- 在工具箱 (
- 创建输出变量,用于保存智能体在流失败时应共享的错误提示。
- 在工具箱 (
) 中,单击 New Resource(新建资源)。
- 在“资源类型”处,选择变量。
- API Name(API 名称)输入
Error_Message_Output。
- Description(描述)输入
The error message to show to the customer when this flow doesn't finish successfully.(当此流未能成功完成时向客户显示的错误提示。) - 在 Data Type(数据类型)处选择 Text(文本)。
- Availability Outside the Flow(在流外部可用)选择 Available for output(可用于输出)。
- 单击完成。
- 在工具箱 (
获取客户的预订信息
现在创建元素来检索客户的已预订活动,并将它们发送到输出变量。
- 在流画布上,创建一个 Get Records(获取记录)元素。
- Label(标签)输入
Get Contact's Upcoming Bookings(获取联系人的近期预订)。
- 确保 API Name(API 名称)自动填充为
Get_Contact_s_Upcoming_Bookings。
- Description(描述)输入
Retrieves all upcoming bookings assigned to the found contact that have not been canceled. The bookings are stored in the Contact_Bookings variable.(检索出分配给找到的联系人的所有尚未取消的近期预订信息。这些预订信息存储在 Contact_Bookings 变量中。) - Object(对象)选择 Booking(预订)。
- Label(标签)输入
- 设置 Get Records(获取记录)元素的条件要求,筛选要检索的预订记录。
- 为 Condition Requirement(条件要求)选择 All Conditions Are Met (AND)(满足所有条件 (AND))。
- Field(字段)选择 Contact(联系人)。
- 在 Operator(运算符)处,选择 Equals(等于)。
- Value(值)选择 Contact_ID。
- 单击 Add Condition(添加条件)。
- 第二个 Field(字段)选择 Date(日期)。
- 第二个 Operator(运算符)选择 Greater Than(大于)。
- 第二个 Value(值)选择 Running Flow Interview > CurrentDate(正在运行的流采访和当前日期)。
- 再次单击 Add Condition(添加条件)。
- 第三个 Field(字段)选择 Is Canceled(已取消)。
- 第三个 Operator(运算符)选择 Equals(等于)。
- 第三个 Value(值)选择 False。
- 为 Condition Requirement(条件要求)选择 All Conditions Are Met (AND)(满足所有条件 (AND))。
- 设置 Get Records(获取记录)元素的排序选项。
这些设置控制记录向客户的显示方式:在此个案中,即活动发生的顺序。- Sort Order(排列顺序)选择 Ascending(升序)。
- Sort By(排列方式)选择 Date__c。
- Sort Order(排列顺序)选择 Ascending(升序)。
- 设置 Get Records(获取记录)元素存储记录数据的方式。
Get Records(获取记录)元素自动创建的变量不能用作输出变量。如果需要 Get Records(获取记录)元素将数据存储在输出变量中,请先手动创建该输出变量。然后,在 Get Records(获取记录)元素中,确保选中该选项,以便选择字段并分配变量。
此外,请记住,您应该只包含希望向智能体和客户提供的字段。- 为 How Many Records to Store(存储的记录数量)选择 All records(所有记录)。
- How to Store Record Data(如何存储记录数据)选择 Choose fields and assign variables (advanced)(选择字段并分配变量(高级))。
- Record Collection(记录集合)选择 Contact_Bookings。
- 单击 Add Field(添加字段)两次。
- 将第一个可选 Field(字段)从 ID 更改为 Experience_Name__c。
- 第二个可选 Field(字段)选择 Date__c。
- 第三个可选 Field(字段)选择 Start_Time__c。
- 第四个可选 Field(字段)选择 End_Time__c。
- 为 How Many Records to Store(存储的记录数量)选择 All records(所有记录)。
为流添加错误处理
最后,让此流具备在 Get Records(获取记录)元素失败时发送错误提示的功能。
故障路径是仅在其关联的元素发生故障时才会运行的特殊路径。您可以为任何数据元素创建故障路径,例如:Get Records(获取记录)、Create Records(创建记录)、Update Records(更新记录)和 Delete Records(删除记录)。由于故障路径仅在元素发生故障时运行,因此您可以在故障路径上放置一个 Assignment(分配)元素。使用 Assignment(分配)元素可以在发生故障时设置错误提示,从而避免智能体接收和显示不恰当的错误提示。
- 将鼠标悬停在 Get Contact’s Upcoming Bookings(获取联系人的近期预订)元素上,然后单击
,然后选择 Add Fault Path(添加故障路径)。
- 在故障路径中,单击
。
- 选择 Assignment(分配)。
- Label(标签)输入
Set the Error Message Output(设置错误提示输出)。
- 确保 API Name(API 名称)自动填充为
Set_the_Error_Message_Output。
- Description(描述)输入
Gives error message text to the Error_Message_Output variable, to present to the customer if this flow fails.(将错误提示文本分配给 Error_Message_Output 变量,以便在该流失败时向客户显示。) - Variable(变量)选择 Error_Message_Output。
- 在 Operator(运算符)处,选择 Equals(等于)。
- Value(值)输入
I'm sorry, I'm having a problem finding your booked activities. Would you like to speak to our support team?(很抱歉,我无法找到您的已预订活动信息。您是否愿意与我们的客服联系?)
- Label(标签)输入

- 保存流。
当该流在智能体操作中使用时,流的描述会自动设置为智能体操作的指令。因此,请按照编写智能体指令的方式编写描述。- Flow Label(流标签)输入
Get Contact's Upcoming Bookings(获取联系人的近期预订)。
- 确保 Flow API Name(流 API 名称)自动填充为
Get_Contact_s_Upcoming_Bookings。
- Description(描述)输入
Find all the Booking records related to the guest's contact record. Only retrieve Bookings whose date hasn't occurred yet.(找出与该客人的联系人记录相关的所有预订记录。仅检索日期尚未到来的预订。)
- Flow Label(流标签)输入
- 激活流。
要将流分配为智能体操作,该流必须激活。
您的流现在适合智能体使用!在下一单元中,将流以及相应的指令添加到智能体中。
