学习目标
在本项目中,你将:
- 在 Trailhead Playground 中安装一个包。
- 为 Dreamforce 报名应用构建数据模型。
- 使用 Data Import Wizard 将参会者记录导入应用。
- 为报名流程创建自动化。
项目背景
举办一场活动时,有很多事情需要追踪:物流(活动在哪里、何时举行)、已安排的场次(session)、以及谁报名了活动、他们计划参加哪些场次。
在本项目中,你构建一个活动报名应用。为了节省时间,我们用一个托管包(managed package)提供应用的基础,然后你再添加自定义内容,包括自定义字段、自定义对象和自动化。准备好了吗?开始吧。
启动 Playground 并安装包
你将在自己的 Trailhead Playground 中完成本项目。登录 Trailhead 后点击页面底部 Launch,Playground 在新标签页打开。保持窗口打开,完成步骤后回到本页点击 Verify Step。
托管包为你的报名应用提供基础——Public Events、Sessions 等预构建对象,让你不必从零开始。
安装包
打开 Trailhead Playground 安装包。如果 org 里有 Install a Package 选项卡,按以下步骤操作(否则通过 App Launcher 打开 Playground Starter):
- 点击 Install a Package 选项卡。
- 粘贴
04t0P000000JFs1。 - 点击 Install。
- 选择 Install for Admins Only,点击 Install。
- 安装完成后点击 Done。
安装完成后会看到确认页,并收到一封发往 Playground 关联邮箱的邮件。
继续!
包已安装。接下来:创建自定义对象 Event Registration、添加自定义字段(Registration ID、Attendee、Event Name、Dietary Needs、Registration Fee、Type)、添加两个汇总字段(Registration Revenue、Number of Registrations)、创建 Dreamforce 活动与场次记录、通过 CSV 导入参会者数据,然后用 Flow 自动化场次报名。
更新数据模型并导入数据
本单元创建 Event Registration 自定义对象,添加追踪参会者和活动详情的字段,在 Public Events 上创建汇总字段,添加示例记录并通过 CSV 导入参会者数据。
添加自定义对象
- 点击 setup gear,选择 Setup。
- 点击 Object Manager 选项卡。
- 点击 Create,选择 Custom Object。
- 定义对象:Label=
Event Registration、Plural Label=Event Registrations、Object Name=Event_Registration、Record Name=Event Registration Name、Data Type=Text。 - 其余保持默认,点击 Save。
这个对象存储每位参会者的报名——是谁、参加哪个活动、饮食需求、费用。
添加 Registration ID 字段
- 从 Event Registration 对象点击 Fields & Relationships → New。
- 选 Text → Next。
- Field Label=
Registration ID、Length=20、Field Name=Registration_ID。 - 其余默认,Next、Next、Save & New。
添加 Attendee 字段
用标准 Contacts 对象存储参会者信息,通过主从关系追踪参会者:
- 选 Master-Detail Relationship → Next。
- Related To=Contact → Next。
- Field Label=
Attendee、Field Name=Attendee、Child Relationship Name=Event_Registrations。 - 其余默认,Next、Next、Next、Save & New。
主从关系意味着:删除 Contact 时,其报名记录也会被删除——报名从属于某个具体的人。
添加 Event Name 字段
用已安装包中的 Public Events 自定义对象存储活动名称,通过主从关系关联:
- 选 Master-Detail Relationship → Next。
- Related To=Public Events → Next。
- Field Label=
Event Name、Field Name=Event_Name、Child Relationship Name=Event_Registrations。 - 其余默认,Next、Next、Next、Save & New。
现在每条报名同时关联到一个人(Contact)和一个活动(Public Events)。
添加 Dietary Needs 字段
用 picklist 追踪参会者的饮食需求:
- 选 Picklist → Next。
- Field Label=
Dietary Needs、Field Name=Dietary_Needs。 - 选 Enter values, with each value separated by a new line,逐行输入:
Vegetarian、Gluten-free、Vegan、Diabetic、Other。 - 其余默认,Next、Next、Save & New。
添加 Registration Fee 字段
用货币字段追踪参会费用:
- 选 Currency → Next。
- Field Label=
Registration Fee、Field Name=Registration_Fee、Length=18、Decimal Places=0。 - 其余默认,Next、Next、Save & New。
这个字段之后会用于 Public Events 上的汇总字段,计算总收入。
添加 Attendee Type 字段
用 picklist 追踪参会者类型(客户、合作伙伴、员工):
- 选 Picklist → Next。
- Field Label=
Type、Field Name=Type。 - 逐行输入:
Customer、Partner、Employee。 - 其余默认,Next、Next、Save。
七个自定义字段全部完成!
添加自定义选项卡
- 从 Setup 点击 Home。
- Quick Find 输入
tabs,选择 Tabs。 - Custom Object Tabs 部分点击 New。
- Object=Event Registration。
- Tab Style 点放大镜选任意图片。
- 点击 Next、Next、Save。
导航到 Public Events 对象
现在给包里的 Public Events 对象添加两个汇总字段:Registration Revenue(总收入)和 Number of Registrations(总人数)。
- 从 Setup 点击 Object Manager。
- Quick Find 输入
public,选择 Public Events。
添加 Registration Revenue 汇总字段
- 从 Public Events 对象点击 Fields & Relationships → New。
- 选 Roll-Up Summary → Next。
- Field Label=
Registration Revenue、Field Name=Registration_Revenue,Next。 - Summarized Object=Event Registrations、Roll-Up Type=SUM、Field to Aggregate=Registration Fee。
- 其余默认,Next、Next、Save & New。
现在 Public Events 会自动计算所有报名的总收入。
添加 Number of Registrations 汇总字段
- 选 Roll-Up Summary → Next。
- Field Label=
Number of Registrations、Field Name=Number_of_Registrations,Next。 - Summarized Object=Event Registrations、Roll-Up Type=COUNT。
- 其余默认,Next、Next、Save。
两个汇总字段完成——Public Events 现在能一眼看到收入(SUM)和人数(COUNT)。
创建活动与场次记录
创建 Dreamforce 2023 活动:
- Public Event Name=
Dreamforce 2023、Start Date=9/12/2023 8:00 AM、End Date=9/14/2023 4:00 PM、Event Type=Dreamforce、Region=AMER、Venue=Moscone Center、Venue State=CA、Venue Address=747 Howard St、Venue City=San Francisco、Venue Postal Code=94103,Save。
再在 Related 选项卡创建 Dreamfest 2023 场次:
- Session Name=
Dreamfest 2023、Public Event Name=Dreamforce 2023、Date=9/13/2023、Time=7:00 PM、Level=Beginner,Save。
导入数据(设置)
用导入向导添加参会者,而不是逐个输入。所需的 contacts 已在 Playground 里,只需上传报名记录并按姓名匹配到现有 contacts:
- 下载 CSV 文件。
- 点击 setup gear → Setup,Quick Find 输入
data import选 Data Import Wizard。 - 点击 Launch Wizard!
- What kind of data:点 Custom Objects 选 Event Registrations。
- What do you want to do:Add new records。
- Match by:Name。
- Contact 的 Master/Detail 字段:Contact Name。
- Public Events 的 Master/Detail 字段:Public Events Name。
- 把下载的 CSV 拖到上传区,点击 Next。
导入数据(字段映射)
映射 CSV 列到 Salesforce 字段:
- Attendee → CSV:Attendee
- Event Name → CSV:Event Name
- Registration Fee → CSV:Registration Cost
- Registration ID → CSV:Registration ID
- Event Registration Name → CSV:Registration Name
First Name 和 Last Name 两个未映射字段保持原样(用于 Contact 匹配,不存到 Event Registration)。点击 Next → Start Import → OK。导入完成后,查看 Dreamforce 2023 记录,汇总字段会显示活动收入和报名人数。
只差一步!
数据模型已就位、数据已导入。你已完成:Event Registration 自定义对象、7 个自定义字段、2 个汇总字段、示例活动与场次记录、导入的参会者数据。最后一步添加自动化。
为应用添加自动化
本单元用 Flow Builder 创建 Record-Triggered Flow:每当有参会者报名 Dreamforce 时,自动为其注册 Dreamfest 场次。
自动化 Dreamfest 记录创建
报名流程已就绪,现在更进一步:每位报名 Dreamforce 的参会者都应自动注册 Dreamfest 场次。用 Flow Builder 实现:Record-Triggered Flow,当 Event Registration 创建或更新时触发;如果 Event Name = Dreamforce 2023,则创建 Dreamfest 的 Session Registration。
Flow 设置
- 点击 App Launcher,搜索
auto选 Automation。 - Flows 面板点击 New。
- 选 Record-Triggered Flow。
- Object=Event Registration。
- 选 A record is created or updated。
- Condition Requirements 保持 None。
- 确保选中 Actions and Related Records。
添加新资源
创建一个公式资源,供本单元后续引用:
- 打开 Flow Builder Toolbox,点击 New Resource。
- Resource Type=Formula、API Name=
sessionRegistrationName、Data Type=Text。 - Formula 输入:
{!$Record.Attendee__r.FirstName} & " " & {!$Record.Attendee__r.LastName} & " - Dreamforce 2023"。 - 点击 Check Syntax,再点 Done。
- 关闭 Toolbox,点击右上角 Save,Flow Label=
Dreamforce Event Registration、API Name=Dreamforce_Event_Registration,Save。
这个公式会生成类似「John Smith - Dreamforce 2023」的名称。
添加 Decision 元素
添加 decision 元素,只让 Dreamforce 2023 的报名继续:
- Start 元素后点击 +,搜索并选 Decision。
- Label=
Is the Event DF23?、API Name=Is_the_Event_DF23。 - Yes outcome:Label=
Yes、API Name=Yes、Condition Requirements=All Conditions Are Met (AND)、Resource=Triggering Event_Registration__c → Event Name → Public Event Name、Operator=Equals、Value=Dreamforce 2023、When to Execute Outcome=Only if the record that triggered the flow to run is updated to meet the condition requirements。 - Default Outcome 的 Label 改为
No。 - 关闭 Decision 面板。
Yes 分支:Get Records
- Yes 元素下点击 +,搜索并选 Get Records。
- Label=
Get Dreamfest Session、API Name=Get_Dreamfest_Session。 - Object=Session,Field=Session Name、Operator=Equals、Value=
Dreamfest 2023。 - Sort Order=Not Sorted、How Many Records=Only the first record、How to Store=Automatically store all fields。
- 点击 Save。
Get Records 检索 Dreamfest 场次记录,供下一步关联。
Yes 分支:Create Records
- Get Dreamfest Session 后点击 +,搜索并选 Create Records。
- Label=
Create Session Registration、API Name=Create_Session_Registration、How to Set the Record Fields=Manually、Object=Session Registration。 - Set Field Values 里点三次 +Add Field(共四个字段):
- Attendee ← Triggering Event_Registration__c → Attendee → Contact ID。
- Session Registration Name ←
sessionRegistrationName(刚创建的公式)。 - Public Event Name ← Triggering Event_Registration__c → Event Name。
- Session Name ← Session from Get Dreamfest Session → Record ID。
Create Records 插入一条新的 Session Registration,关联参会者、活动和 Dreamfest 场次。
保存并激活 Flow
- 点击 Save。
- 点击 Activate。
- 点击左上角返回 Automation 页面。
Flow 现在已上线。每当创建或更新 Dreamforce 2023 的 Event Registration,都会自动创建 Dreamfest 的 Session Registration。
试一试
端到端测试:
- App Launcher → All Items 下选 Event Registrations → New。
- 给报名任意命名,Attendee 用你的名字新建一个 contact,Event Name 选 Dreamforce 2023,Save。
- 打开 App Launcher 选 Session Registrations(必要时把列表视图改成 All),查看自动创建的 Dreamfest 2023 记录。
你的 Flow 生效了——自动创建了一条关联你名字和 Dreamfest 2023 的 Session Registration。
你做到了!
恭喜!你安装了托管包,然后通过添加自定义对象、自定义字段和自动化扩展了它,还添加了示例数据。你构建了一个完整的活动报名系统:托管包基础、Event Registration 自定义对象、7 个自定义字段、2 个汇总字段、示例记录、CSV 数据导入,以及带决策逻辑的 Record-Triggered Flow。从包安装到可用的自动化——全程纯配置、零代码。






























