将 Data 360 连接到 Agentforce — 统一外部数据与对话式 AI

通过实战项目学习如何将 Data 360 与 Agentforce 结合使用:启用数据流将外部预订数据引入 Data 360,理解 DLO 与 DMO 的核心概念,设置身份解析跨系统匹配客户,在联系人页面上创建 Data Cloud 相关列表,构建跨越 Unified Link 桥接的 Flow,并教会 Agentforce 通过自然对话语言执行自动化操作——只需说一句"Check in Sofia Rodriguez"即可完成入住。...

📅 2025/11/11 ✍️ ponybai 🏷️ agentforce, salesforce, data-360

一、开始使用 Data 360 与 AI

欢迎来到 Connect Data 360 to Agentforce 实战项目。在本项目中,我们将跟随 Coral Cloud Resorts 的 Salesforce 管理员 Becca Cloudier,一起探索如何将 Data 360Agentforce 结合使用,为度假村打造流畅的入住体验。

本项目的完整流程包括:启用数据流将外部预订数据引入 Data 360、理解数据湖对象(DLO)与数据模型对象(DMO)、设置身份解析(Identity Resolution)跨系统匹配客户、在联系人页面上创建 Data Cloud 相关列表、构建跨越 Unified Link 桥接的 Flow 来创建 Guest Event 记录、并教会 Agentforce 通过自然对话语言执行该 Flow。

欢迎来到 Coral Cloud Resorts

每个人都时不时需要度个假。那么下次出行,不妨考虑一下 Coral Cloud Resorts?Coral Cloud Resorts 以提供丰富多样的目的地活动和竭尽全力确保客人享受美好住宿体验而闻名。这种对卓越服务的执着,引起了 Data 360 和 Salesforce 对 Coral Cloud 的关注。

Salesforce 管理员 Becca Cloudier 刚刚获得了 Salesforce Data 360: Quick Look 徽章,学习了 Data 360 如何统一来自多个数据源的数据。她还完成了 Agentforce Basics 徽章,发现了生成式 AI 的强大能力。在 Becca 看来,Data 360 和 Salesforce 就像阳光和海滩一样相得益彰。

Becca 开始规划她的第一个结合 Data 360 与生成式 AI 的项目:简化入住流程,同时保持个性化体验。度假村员工可以更好地关注客人,而客人则不用在前台排队等候太久。

完成本徽章后,你将亲眼见证如何用来自外部数据源的几条数据,贯穿 Salesforce 和生成式 AI 功能,创造出无缝的智能体验。收拾好行囊,准备踏上 Coral Cloud Resorts 的 Data 360 和 Agentforce 之旅吧!

📝 注意:自 2025 年 10 月 14 日起,Data Cloud 已更名为 Data 360。在过渡期间,你可能会在应用和文档中看到对 Data Cloud 的引用。名称是新的,但功能与内容保持不变。

注册 Playground 与学习资源

要完成本徽章,你需要一个包含 Data 360、Agentforce 和示例数据的自定义 Playground:

  • 点击 Create Playground 创建新 org
  • 新 org 会自动关联到你的 Trailhead 账户
  • 请记下 org 的过期日期,务必在此之前完成本徽章
  • 所有三个单元必须在同一个 Playground org 中完成

⚠️ 重要:本自定义 Playground 专为本徽章中的挑战而设计,可能不适用于其他徽章。请始终确认使用的是 Trailhead 推荐的 Playground 或特殊 Developer Edition org。

推荐的前置学习资源:

二、将外部数据引入联系人页面布局

在本单元中,我们将深入技术实践:将外部预订数据引入 Salesforce——启用数据流、理解数据湖对象(DLO)与数据模型对象(DMO)、设置身份解析来跨系统匹配客人、并在联系人页面上创建 Data Cloud 相关列表。

Reserv-o-matic 挑战 — 三步计划

Coral Cloud 目前使用一套叫做 Reserv-o-matic 的旧版预订系统。这套外部系统允许客人在一个档案下创建多个预订记录。每位客人有多个字段保存信息,如姓名、电子邮件地址和电话号码。

以客人 Sofia Rodriguez 为例,她已经创建了几个预订,每个预订包含入住日期、退房日期、房间类型和预订状态。但目前,所有这些信息与 Coral Cloud 的 Salesforce org 完全分离

Data 360 可以建立 Salesforce 中的 Sofia 与 Reserv-o-matic 中的 Sofia 之间的关联。一旦建立这种关系,Becca 就能做各种有趣的事情——比如先把一个预订相关列表放到联系人页面布局中。

为了实现这一目标,Becca 需要完成三个步骤

  1. 让 Data 360 感知 Reserv-o-matic 数据 → 启用数据流,将外部数据引入 Data 360
  2. 匹配外部客人与内部联系人 → 使用电子邮件地址设置身份解析
  3. 更新联系人页面以显示外部预订 → 创建 Data Cloud 相关列表

📝 说明:Reserv-o-matic 实际上并不存在。Trailhead 团队将"外部"客人和"外部"预订数据放入了你 org 中的自定义对象里。在整个徽章中,你需要假装这些数据存在于 org 之外。

数据流、DLO 与 DMO — 核心概念

在开始操作之前,先理解三个核心概念:

📊 数据流(Data Stream):描述在给定连接中从哪里找到数据。每个数据流都会创建一个相关的 数据湖对象(Data Lake Object, DLO)——这是存储来自数据流源的数据的容器。

📋 数据模型对象(Data Model Object, DMO):描述数据如何结构化,类似于元数据。例如,名为 Contact Point Email 的 DMO 详细描述了如何正确存储电子邮件地址,无论它来自哪里。

为什么映射很重要:Becca 可以将外部客人数据中的电子邮件列映射到 DMO 中的电子邮件地址字段。通过这种映射,Data 360 能够使用电子邮件地址来判断 Reserv-o-matic 中的 Sofia 与 Salesforce 中的 Sofia 是同一个人。这便是跨系统身份解析的基础。

在本徽章中,Coral Cloud 的所有数据流和映射已打包在一个 Data Kit 中,并已加载到你的特殊 org 中。你只需要启用这些数据流即可。

启用数据流与设置身份解析

🔹 启用数据流

  1. 从 App Launcher 中搜索并选择 Data Cloud
  2. 点击 Data Streams 选项卡
  3. 点击 New
  4. 选择 Salesforce CRM(这里需要你"假装"选择内部数据源,因为外部系统是模拟的)
  1. 点击 Next
  2. 在 Custom Bundles 下,选择 AIPlusData
  1. 点击 Next,保留预选字段,再次点击 Next
  2. 点击 Deploy(可能需要几分钟,若报错请重试)
  3. 刷新浏览器页面
  4. 对每个数据流点击下拉箭头 → 选择 Refresh Now → 选择 Full Refresh
  5. 验证所有数据流的 Last Run Status 显示 Success,且 Total Records 列有非零数字(可能需要等待最多 15 分钟)

🔹 设置身份解析(Identity Resolution)

身份解析是弥合 Salesforce 联系人与外部预订数据之间差距的关键。通过它,Data 360 可以识别出 Reserv-o-matic 的 Sofia 和 Salesforce 的 Sofia 是同一个人,从而创建统一的客户画像。

  1. 点击 Identity Resolutions 选项卡 → 点击 New
  2. 选择 Create New Ruleset → 点击 Next
  3. Data Space 保持默认,Primary DMO 选择 Individual
  4. Ruleset ID 输入 ccid(代表 Coral Cloud Identification)
  5. Ruleset Name 输入 Guest Name and Email
  6. Description 输入 Reconcile Reserve-o-matic contact data with Salesforce contact data
  1. 禁用 Run jobs automatically(稍后手动启动)
  2. 点击 Save → 点击 Configure
  1. 点击 Next → 点击 Configure
  2. 选择 Fuzzy Name and Normalized Email(这决定了用于匹配的主要数据)
  3. 点击 NextNextSave
  4. 点击右上角的 Run Ruleset

🔹 验证外部预订关系

  1. 点击 Data Model 选项卡 → 选择 ExternalReservation
  2. 点击 Relationships 选项卡
  3. 确保已存在关系。如果没有,点击 Edit 添加:Field = Contact ID, Cardinality = N:1, Related Object = Individual, Related Field = Individual Id

现在,Data 360 已经知道如何使用规则集来检测两个个体是否为同一个人。你的 org 中有几十个使用此规则集匹配的客人和联系人。

创建 Data Cloud 相关列表

将所有数据集中在一个地方的巨大好处之一,就是你可以创建无缝融合来自所有数据源信息的体验。在 Coral Cloud 的例子中,Becca 希望将外部预订数据展示在酒店员工查找客人相关信息的地方——联系人页面上。

乍看之下,你可能会以为这是一个普通的相关列表——它太自然了!但它实际上是一种特殊类型的相关列表,叫做 Data Cloud Related List

🔹 创建 Data Cloud 相关列表

  1. 点击 Setup 图标 → 选择 Setup
  2. 点击 Object Manager → 选择 Contact(注意不是 Contract)
  3. 点击 Data Cloud Related List → 点击 New
  4. Data Cloud Object 选择 ExternalReservation → 点击 Next
  5. Child Relationship Name 更新为 Reservations
  6. Related list label 更新为 Reservations

🔹 配置联系人记录页面

  1. 在左侧菜单中点击 Lightning Record Pages
  2. 选择 Contact Record Page → 点击 Edit
  3. 将一个 Dynamic Related List - Single 拖入 Related 选项卡,放在 Opportunities 上方
  1. 在右侧菜单中,Related List 选择 Reservations
  2. 在 Related List Fields 下,点击 Add Field,依次添加:Check-in DateCheck-out DateRoom TypeReservation Status
  3. 删除顶部的 Record ID 字段(点击 X)
  4. 在 Related List Filters 下,点击 Add Filter
  5. Field 选择 Check-in Date,Operator 选择 not equal to(即只显示入住日期不为空的预订)
  1. 点击 Done → 点击 Save
  2. 关闭 Lightning App Builder 浏览器标签页

🔹 验证结果

  1. 在 Identity Resolutions 选项卡中,点击 Guest Name and Email 规则集,确认 Last Job Status 显示 Succeeded,且 Total Unified Profiles 有结果
  2. 从 App Launcher 搜索并选择 Sales
  3. 点击 Contacts 选项卡 → 切换到 All Contacts 列表视图
  4. 搜索并选择 Sofia Rodriguez

Sofia 的联系人页面现在应该显示三个预订记录,直接嵌入在联系人页面布局中。Data Cloud 相关列表让外部数据在 Salesforce UI 中原生展示——员工无需切换系统即可在一个地方看到所有信息。

三、增强 Agentforce 以对话语言操作数据

在本单元中,我们将构建一个 Flow 来跨越 Unified Link 桥接,从预订数据中创建 Guest Event 记录,然后教会 Agentforce 通过自然语言对话来执行该 Flow——将"Check in Sofia Rodriguez"这句简单的话转变为全自动入住处理。

最温暖的欢迎 — 愿景

每天,来自世界各地的客人抵达 Coral Cloud Resorts,他们通常已准备好开始放松。但在此之前,他们必须先在前台办理入住。Becca 要让这最后一道小坎变得尽可能轻松,以便客人能尽快开始享受假期。

每当有人办理入住时,Coral Cloud 员工会通过在自定义对象 Guest Event 上创建记录来记录这一事件。目前,员工必须手动创建入住记录,但 Becca 看到了两个升级方向:

  1. 使用 Flow 基于 Data 360 中最新的预订数据自动创建 Guest Event 记录
  2. 教会 Agentforce 通过对话语言来启动该 Flow

最终效果:当 Sofia Rodriguez 到达时,前台人员只需对 Agentforce 说一句 "Check in Sofia Rodriguez",Agentforce 就会自动完成所有操作——查询 Unified Link 桥接、找到最新预订、创建 Guest Event 记录。这是 Data 360 和 Agentforce 协同工作的完美示范。

理解 Unified Link 桥接

身份解析自动创建了一个名为 Unified Link Individual ccid 的桥接对象,它连接了 Salesforce 中的 Sofia 和 Reserv-o-matic 中的 Sofia。以下是桥接数据的简化视图:

Full Name Data Source Source ID Unified ID
Sofia Rodriguez Salesforce 003bn000002FILwAAO [1] ca6369777b7dbca79215f46016e74dd6
Sofi Rodriguez Reserv-o-matic 10008155 [2] ca6369777b7dbca79215f46016e74dd6

注意两个 Sofia 的 Unified ID 是相同的。因此,如果你知道 Sofia 的 Salesforce ID [1],就可以通过 Unified ID 找到她的 Reserv-o-matic ID [2]。这一点至关重要,因为预订记录只通过 Reserv-o-matic ID 与客人关联。

Flow 的查询逻辑包含四个步骤

  1. 从 Salesforce Contact Record ID 出发 → 查询桥接表找到 Unified ID
  2. 使用 Unified ID → 再次查询桥接表找到 Reserv-o-matic 的 Source ID(添加条件:Data Source Object Starts With "External",以过滤掉 Salesforce 一侧的记录)
  3. 使用 Reserv-o-matic ID → 查询 ExternalReservation → 按 Check-in Date 降序排列,获取最新的预订
  4. 使用预订详情 → 构建 EventSummary 字符串:Check-in date of Ellipsis, check-out date of Ellipsis, for room type Ellipsis

💡 好消息:Trailhead 团队已经预先构建了 Flow 的大部分内容。你只需要完成那些引用了只有在设置数据流和身份解析后才存在的对象的步骤。

完成 Check-in Flow — 逐步操作

以下是完成 Flow 所需的四个元素的配置步骤:

🔹 Unified Link 1 元素

通过 Salesforce Contact ID 找到桥接表中的第一条记录。

  1. 点击 Unified Link 1 元素
  2. Data Source 选择 Data Cloud Object
  3. Data Space 选择 default
  4. Object 选择 Unified Link Individual ccid(注意选择正确的对象——有几个名称相似的)
  1. 在 Filter Records 部分,Field 选择 Individual Id(这是第一张表中 Source ID 列的实际名称)
  2. Value 选择变量 ContactRecordId(Trailhead 团队预先创建的变量,代表联系人记录的 Salesforce ID)
  1. 点击 Save

🔹 Unified Link 2 元素

使用第一个查询得到的 Unified ID,找到 Reserv-o-matic 的 Source ID。

  1. 点击 Unified Link 2 元素
  2. Data Source 选择 Data Cloud Object,Object 选择 Unified Link Individual ccid
  3. Filter 中 Field 选择 Unified Individual Id,Value 粘贴 {!Unified_Link_1.UnifiedRecordId__c}
  1. 点击 Add Condition:Field = Data Source Object, Operator = Starts With, Value = External
  2. 点击 Save

🔹 Reservation 1 元素

使用 Reserv-o-matic ID 查询最新预订。

  1. 点击 Reservation 1 元素
  2. Data Source 选择 Data Cloud Object,Object 选择 ExternalReservation
  3. Filter:Field = Contact ID, Value = {!Unified_Link_2.SourceRecordId__c}
  4. Sort Order = Descending, Sort By = Check_in_Date_c__c
  5. 点击 Save

🔹 Event Summary 赋值

  1. 点击 Event Summary 元素
  2. Value 粘贴:Check-in date of {!Reservation_1.Check_in_Date_c__c}, check-out date of {!Reservation_1.Check_out_Date_c__c}, for room type {!Reservation_1.Room_type_c__c}
  3. 点击 Save
  4. 点击 Activate 激活 Flow
  5. 关闭 Flow 标签页

完成!Flow 已经就绪,可以供 Agentforce 使用了。

创建 Check-in Agentforce 操作

现在来教会 Agentforce 通过对话语言使用这个 Flow。设置 Agentforce 使用 Flow 非常简单。

🔹 启用 Agentforce Studio

  1. 点击 Setup 图标 → 选择 Setup
  2. 在 Quick Find 中搜索并选择 Salesforce Go
  3. 在搜索框中输入并选择 Agentforce Studio
  1. 点击 Get Started → 点击 Turn On → 点击 Confirm

🔹 创建 Agent Action

  1. 从 App Launcher 搜索并选择 Agentforce Studio
  2. 点击 Connect Data 360 → 点击 New Version
  3. 在 Subagents 下,将鼠标悬停在 General CRM 上,点击 +
  1. 选择 New Action
  2. Action Name 输入 Create Check-in Guest Event
  3. Description 输入:This action creates a Guest Event record to capture when a contact completes check-in for a reservation.
  4. 点击 Create and Open
  5. Reference Action Type 选择 Flow
  6. Reference Action 选择 Create Check-in Guest Event
  7. Inputs 中,ContactRecordId 勾选 Require Input to execute action
  8. Outputs 中,EventSummary 勾选 Show in conversation
  9. 点击 Save → 点击 Commit Version(两次)→ 点击 Activate(两次)

🔹 测试 Agentforce 操作

  1. 在 Sales 应用中,点击 Contacts 选项卡
  2. 导航到联系人 Sofia Rodriguez
  3. 刷新浏览器窗口
  4. 点击 Agentforce 图标打开 Agentforce 面板
  5. 在 Agentforce 面板中输入 Check in Sofia Rodriguez,按 Enter

几秒钟后,Agentforce 代理应该回应入住已完成,并附带入住的详细信息。Guest Event 记录也已创建。

向下滚动找到 Guest Events 相关列表,点击新创建的 GE 记录查看详情。

Becca 的项目第二阶段取得了成功!度假村员工非常喜欢办理入住的便捷性,社交协调员已经开始询问 Becca 是否能教会 Agentforce 为他的活动创建 Guest Event 了。

Data 360 + Agentforce = 无缝智能自动化。Becca 对项目如何将 Data 360 和 Agentforce 结合以改善客人和员工体验感到非常满意。在短暂回顾项目的成功之后,Becca 出发去找社交协调员,开始他们的下一个 AI + 数据之旅。


文章来源:Trailhead - Connect Data 360 to Agentforce