构建活动报名应用

通过为 Dreamforce 构建活动报名应用,掌握托管包安装、自定义对象与主从关系、Roll-Up Summary 汇总字段、Data Import Wizard 数据导入,以及 Record-Triggered Flow 自动化的完整流程。...

📅 2026/10/4 ✍️ ponybai 🏷️ salesforce, admin, flow, headless

学习目标

slide_2

在本项目中,你将:

  • 在 Trailhead Playground 中安装一个包。
  • 为 Dreamforce 报名应用构建数据模型。
  • 使用 Data Import Wizard 将参会者记录导入应用。
  • 为报名流程创建自动化。

项目背景

slide_3

举办一场活动时,有很多事情需要追踪:物流(活动在哪里、何时举行)、已安排的场次(session)、以及谁报名了活动、他们计划参加哪些场次。

在本项目中,你构建一个活动报名应用。为了节省时间,我们用一个托管包(managed package)提供应用的基础,然后你再添加自定义内容,包括自定义字段、自定义对象和自动化。准备好了吗?开始吧。

启动 Playground 并安装包

slide_4

你将在自己的 Trailhead Playground 中完成本项目。登录 Trailhead 后点击页面底部 Launch,Playground 在新标签页打开。保持窗口打开,完成步骤后回到本页点击 Verify Step。

托管包为你的报名应用提供基础——Public Events、Sessions 等预构建对象,让你不必从零开始。

安装包

slide_5

打开 Trailhead Playground 安装包。如果 org 里有 Install a Package 选项卡,按以下步骤操作(否则通过 App Launcher 打开 Playground Starter):

  1. 点击 Install a Package 选项卡。
  2. 粘贴 04t0P000000JFs1。
  3. 点击 Install。
  4. 选择 Install for Admins Only,点击 Install。
  5. 安装完成后点击 Done。

安装完成后会看到确认页,并收到一封发往 Playground 关联邮箱的邮件。

继续!

slide_6

包已安装。接下来:创建自定义对象 Event Registration、添加自定义字段(Registration ID、Attendee、Event Name、Dietary Needs、Registration Fee、Type)、添加两个汇总字段(Registration Revenue、Number of Registrations)、创建 Dreamforce 活动与场次记录、通过 CSV 导入参会者数据,然后用 Flow 自动化场次报名。

更新数据模型并导入数据

slide_7

本单元创建 Event Registration 自定义对象,添加追踪参会者和活动详情的字段,在 Public Events 上创建汇总字段,添加示例记录并通过 CSV 导入参会者数据。

添加自定义对象

slide_8
  1. 点击 setup gear,选择 Setup。
  2. 点击 Object Manager 选项卡。
  3. 点击 Create,选择 Custom Object。
  4. 定义对象:Label=Event Registration、Plural Label=Event Registrations、Object Name=Event_Registration、Record Name=Event Registration Name、Data Type=Text。
  5. 其余保持默认,点击 Save。

这个对象存储每位参会者的报名——是谁、参加哪个活动、饮食需求、费用。

添加 Registration ID 字段

slide_9
  1. 从 Event Registration 对象点击 Fields & Relationships → New。
  2. 选 Text → Next。
  3. Field Label=Registration ID、Length=20、Field Name=Registration_ID。
  4. 其余默认,Next、Next、Save & New。

添加 Attendee 字段

slide_10

用标准 Contacts 对象存储参会者信息,通过主从关系追踪参会者:

  1. 选 Master-Detail Relationship → Next。
  2. Related To=Contact → Next。
  3. Field Label=Attendee、Field Name=Attendee、Child Relationship Name=Event_Registrations。
  4. 其余默认,Next、Next、Next、Save & New。

主从关系意味着:删除 Contact 时,其报名记录也会被删除——报名从属于某个具体的人。

添加 Event Name 字段

slide_11

用已安装包中的 Public Events 自定义对象存储活动名称,通过主从关系关联:

  1. 选 Master-Detail Relationship → Next。
  2. Related To=Public Events → Next。
  3. Field Label=Event Name、Field Name=Event_Name、Child Relationship Name=Event_Registrations。
  4. 其余默认,Next、Next、Next、Save & New。

现在每条报名同时关联到一个人(Contact)和一个活动(Public Events)。

添加 Dietary Needs 字段

slide_12

用 picklist 追踪参会者的饮食需求:

  1. 选 Picklist → Next。
  2. Field Label=Dietary Needs、Field Name=Dietary_Needs。
  3. 选 Enter values, with each value separated by a new line,逐行输入:Vegetarian、Gluten-free、Vegan、Diabetic、Other。
  4. 其余默认,Next、Next、Save & New。

添加 Registration Fee 字段

slide_13

用货币字段追踪参会费用:

  1. 选 Currency → Next。
  2. Field Label=Registration Fee、Field Name=Registration_Fee、Length=18、Decimal Places=0。
  3. 其余默认,Next、Next、Save & New。

这个字段之后会用于 Public Events 上的汇总字段,计算总收入。

添加 Attendee Type 字段

slide_14

用 picklist 追踪参会者类型(客户、合作伙伴、员工):

  1. 选 Picklist → Next。
  2. Field Label=Type、Field Name=Type。
  3. 逐行输入:Customer、Partner、Employee。
  4. 其余默认,Next、Next、Save。

七个自定义字段全部完成!

添加自定义选项卡

slide_15
  1. 从 Setup 点击 Home。
  2. Quick Find 输入 tabs,选择 Tabs。
  3. Custom Object Tabs 部分点击 New。
  4. Object=Event Registration。
  5. Tab Style 点放大镜选任意图片。
  6. 点击 Next、Next、Save。

导航到 Public Events 对象

slide_16

现在给包里的 Public Events 对象添加两个汇总字段:Registration Revenue(总收入)和 Number of Registrations(总人数)。

  1. 从 Setup 点击 Object Manager。
  2. Quick Find 输入 public,选择 Public Events。

添加 Registration Revenue 汇总字段

slide_17
  1. 从 Public Events 对象点击 Fields & Relationships → New。
  2. 选 Roll-Up Summary → Next。
  3. Field Label=Registration Revenue、Field Name=Registration_Revenue,Next。
  4. Summarized Object=Event Registrations、Roll-Up Type=SUM、Field to Aggregate=Registration Fee。
  5. 其余默认,Next、Next、Save & New。

现在 Public Events 会自动计算所有报名的总收入。

添加 Number of Registrations 汇总字段

slide_18
  1. 选 Roll-Up Summary → Next。
  2. Field Label=Number of Registrations、Field Name=Number_of_Registrations,Next。
  3. Summarized Object=Event Registrations、Roll-Up Type=COUNT。
  4. 其余默认,Next、Next、Save。

两个汇总字段完成——Public Events 现在能一眼看到收入(SUM)和人数(COUNT)。

创建活动与场次记录

slide_19

创建 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。

导入数据(设置)

slide_20

用导入向导添加参会者,而不是逐个输入。所需的 contacts 已在 Playground 里,只需上传报名记录并按姓名匹配到现有 contacts:

  1. 下载 CSV 文件。
  2. 点击 setup gear → Setup,Quick Find 输入 data import 选 Data Import Wizard。
  3. 点击 Launch Wizard!
  4. What kind of data:点 Custom Objects 选 Event Registrations。
  5. What do you want to do:Add new records。
  6. Match by:Name。
  7. Contact 的 Master/Detail 字段:Contact Name。
  8. Public Events 的 Master/Detail 字段:Public Events Name。
  9. 把下载的 CSV 拖到上传区,点击 Next。

导入数据(字段映射)

slide_21

映射 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 记录,汇总字段会显示活动收入和报名人数。

只差一步!

slide_22

数据模型已就位、数据已导入。你已完成:Event Registration 自定义对象、7 个自定义字段、2 个汇总字段、示例活动与场次记录、导入的参会者数据。最后一步添加自动化。

为应用添加自动化

slide_23

本单元用 Flow Builder 创建 Record-Triggered Flow:每当有参会者报名 Dreamforce 时,自动为其注册 Dreamfest 场次。

自动化 Dreamfest 记录创建

slide_24

报名流程已就绪,现在更进一步:每位报名 Dreamforce 的参会者都应自动注册 Dreamfest 场次。用 Flow Builder 实现:Record-Triggered Flow,当 Event Registration 创建或更新时触发;如果 Event Name = Dreamforce 2023,则创建 Dreamfest 的 Session Registration。

Flow 设置

slide_25
  1. 点击 App Launcher,搜索 auto 选 Automation。
  2. Flows 面板点击 New。
  3. 选 Record-Triggered Flow。
  4. Object=Event Registration。
  5. 选 A record is created or updated。
  6. Condition Requirements 保持 None。
  7. 确保选中 Actions and Related Records。

添加新资源

slide_26

创建一个公式资源,供本单元后续引用:

  1. 打开 Flow Builder Toolbox,点击 New Resource。
  2. Resource Type=Formula、API Name=sessionRegistrationName、Data Type=Text。
  3. Formula 输入:{!$Record.Attendee__r.FirstName} & " " & {!$Record.Attendee__r.LastName} & " - Dreamforce 2023"。
  4. 点击 Check Syntax,再点 Done。
  5. 关闭 Toolbox,点击右上角 Save,Flow Label=Dreamforce Event Registration、API Name=Dreamforce_Event_Registration,Save。

这个公式会生成类似「John Smith - Dreamforce 2023」的名称。

添加 Decision 元素

slide_27

添加 decision 元素,只让 Dreamforce 2023 的报名继续:

  1. Start 元素后点击 +,搜索并选 Decision。
  2. Label=Is the Event DF23?、API Name=Is_the_Event_DF23。
  3. 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。
  4. Default Outcome 的 Label 改为 No。
  5. 关闭 Decision 面板。

Yes 分支:Get Records

slide_28
  1. Yes 元素下点击 +,搜索并选 Get Records。
  2. Label=Get Dreamfest Session、API Name=Get_Dreamfest_Session。
  3. Object=Session,Field=Session Name、Operator=Equals、Value=Dreamfest 2023。
  4. Sort Order=Not Sorted、How Many Records=Only the first record、How to Store=Automatically store all fields。
  5. 点击 Save。

Get Records 检索 Dreamfest 场次记录,供下一步关联。

Yes 分支:Create Records

slide_29
  1. Get Dreamfest Session 后点击 +,搜索并选 Create Records。
  2. Label=Create Session Registration、API Name=Create_Session_Registration、How to Set the Record Fields=Manually、Object=Session Registration。
  3. 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

slide_30
  1. 点击 Save。
  2. 点击 Activate。
  3. 点击左上角返回 Automation 页面。

Flow 现在已上线。每当创建或更新 Dreamforce 2023 的 Event Registration,都会自动创建 Dreamfest 的 Session Registration。

试一试

slide_31

端到端测试:

  1. App Launcher → All Items 下选 Event Registrations → New。
  2. 给报名任意命名,Attendee 用你的名字新建一个 contact,Event Name 选 Dreamforce 2023,Save。
  3. 打开 App Launcher 选 Session Registrations(必要时把列表视图改成 All),查看自动创建的 Dreamfest 2023 记录。

你的 Flow 生效了——自动创建了一条关联你名字和 Dreamfest 2023 的 Session Registration。

你做到了!

slide_32

恭喜!你安装了托管包,然后通过添加自定义对象、自定义字段和自动化扩展了它,还添加了示例数据。你构建了一个完整的活动报名系统:托管包基础、Event Registration 自定义对象、7 个自定义字段、2 个汇总字段、示例记录、CSV 数据导入,以及带决策逻辑的 Record-Triggered Flow。从包安装到可用的自动化——全程纯配置、零代码。


文章来源:Trailhead - Build an Event Registration App