Salesforce 客户日历:所有相关记录尽在一个视图
客户的联系人上的任务,业务机会上的里程碑,项目上的拜访。只需一项设置,就能把它们全部放到客户的日历上,层级再深也没问题,无需编写 Apex。
“怎样查看这个客户的所有任务,包括记录在其联系人上的那些?”“客户页面能不能也显示业务机会的里程碑?”“怎样在记录页面上显示孙记录?”同一个客户的工作分散在许多条记录上,而客户页面应该把它们集中显示在一处。
MultiDatePick 用 Rollup Field(汇总字段)做到这一点。客户页面上的日历会加载直接关联到该客户的记录,以及从更远处指向该客户的每一条记录:经由联系人、业务机会、项目,或一条最多五层的查找链。只需在设置向导中填一个字段。无需 Apex。
客户页面上能得到什么
完整的客户关系
客户、其联系人和业务机会上的任务和记录,打开页面就显示在同一个日历上。
任意对象,任意层级
标准对象或自定义对象,可直接关联,也可通过最多五层的查找路径关联。
保存依然简单
新日期通过常用的关系字段保存到页面记录上。相关记录保留各自的父记录。
状态颜色
每条记录,无论直接关联还是汇总而来,都会显示其状态颜色,日历上方的状态标签可按状态筛选。
悬停查看详情
指向某一天,就能看到是哪次通话、哪个里程碑或哪次拜访,并打开背后的记录。
按每个用户自己的权限
记录以查看页面的用户身份加载,因此共享和字段级安全性照常生效。
为什么客户页面只显示了一部分日程
记录页面上的日历通常只加载查找到该记录的记录。在带有任务日历的客户页面上,就是相关项为该客户的任务。但大部分工作记录在别处:联系人上的一次回访电话,业务机会上的一次试点启动会,项目上的一次现场拜访。这些记录都属于该客户,只是相隔一层或多层,而只看一层的日历会把它们漏掉。
Rollup Field 正好补上这一块。它指定第二个字段,或一条经过查找关系的路径,同样指回页面记录。日历会显示与其中任意一个匹配的所有记录。在上面的 Northwind Logistics 示例中,客户自己的拜访占了 11 月的四天;把 Rollup Field 设为 AccountId 后,联系人的通话和业务机会的里程碑也加入进来,这个月显示了十一天。
Rollup Field 的工作原理
两个字段,各司其职。关系字段决定新记录保存到哪里:在客户页面上选择一天,记录就会关联到该客户。Rollup Field 是第二种匹配方式:汇总值等于页面记录的任何记录也会显示在日历上。以下几种设置都是这样运作的:
| 页面 | 日历记录 | 关系字段(Relationship Field) | Rollup Field 及其新增的内容 |
|---|---|---|---|
| 客户 | 任务 | WhatId | AccountId:客户的联系人和业务机会上的任务 |
| 客户 | 事件 | WhatId | AccountId:与客户的联系人举行的会议,以及业务机会上的会议 |
| 客户 | 项目任务(自定义) | Account__c | Project__r.Account__c:该客户名下每个项目的任务 |
| 客户 | 现场拜访(自定义) | Account__c | Location__r.Region__r.Account__c:对该客户每个区域中每个地点的拜访 |
| 业务机会 | 里程碑(自定义) | Opportunity__c | Quote__r.OpportunityId:记录在该业务机会的报价上的里程碑 |
路径的写法与 Salesforce 写关系的方式相同:每个查找的关系名称加一个点,最后是字段。自定义查找在中间以 __r 结尾(Project__r),标准查找则去掉 Id(Contact.AccountId)。最多五层,与 Salesforce 查询允许的深度相同。
在设置向导中完成设置
Rollup Field 位于向导的“字段”屏幕上,就在您已选字段旁边的另外框中:
- 选择日历放在哪里。打开 MultiDatePick 设置向导选项卡,选择客户记录页面和保存方式(Dates 日历选每个日期一条记录)。
- 选择每天保存为什么。在“字段”屏幕上选择任务,然后选择 相关项 ID(WhatId) 作为关系字段,仅到期日期(ActivityDate) 作为日期字段。
- 填写 Rollup Field。输入
AccountId,自定义对象则输入Project__r.Account__c这样的查找路径。用Account_Visits这样的名称保存配置。 - 把组件放到客户页面上。在 Lightning App Builder 中添加 MultiDatePick Dates 组件,并在 Config Name 中输入配置名称。现在每个客户都会显示完整的日程。
页面上已经有日历了?在向导中打开它的配置,加上 Rollup Field 并保存。所有使用该配置的页面在下次加载时都会生效。Lightning App Builder 中的组件上也有同一个 Rollup Field 属性。
谁需要把记录汇总到父记录上
凡是一条记录的工作分散记录在周围记录上的场景都适用:
决定其行为的设置
以下每一项都是设置向导中的一个字段,也是组件上的一个属性,因此这里没有任何内容需要代码:
| 设置项 | 作用 | API 名称 |
|---|---|---|
| 相关对象(Related Object) | 日历显示和保存的对象,例如任务或自定义的现场拜访对象。 | relatedObjectApiName |
| 关系字段(Relationship Field) | 指向页面记录的查找字段。新记录通过它保存。 | relationshipFieldApiName |
| 汇总字段(Rollup Field) | 同样指向页面记录的第二个字段或查找路径。匹配的记录也会显示在日历上。 | rollupField |
| 日期字段(Date Field) | 把每条记录放到日历上的日期字段,例如 ActivityDate。 | dateFieldApiName |
| 状态字段和状态颜色(Status Field and Status Colors) | 状态选项列表以及每个值对应的颜色,例如 Completed:#22C55E。 | statusField、statusColors |
| 悬停字段 | 指向某一天时显示的字段,例如主题和状态。 | hoverFields |
| 配置名称(Config Name) | 设置向导保存的配置。设置这一项,其余留空即可。 | configName |
常见问题
如何在 Salesforce 客户日历上显示联系人和业务机会的任务?
把 MultiDatePick Dates 组件放到客户记录页面上,相关对象选任务,关系字段选 WhatId,然后在 Rollup Field 中输入 AccountId。Salesforce 会在记录到客户的联系人和业务机会上的任务里自动存储所属客户,因此这些任务会和客户自己的任务一起显示在客户日历上。
Salesforce 日历能显示孙记录吗?
能。Rollup Field 接受一条经过查找关系的路径,例如 Project__r.Account__c,因此客户页面上的日历会显示该客户名下每个项目的记录。路径最多可以有五层,这正是 Salesforce 查询沿查找关系所能达到的最大深度。
设置了 Rollup Field 后,新记录保存到哪里?
和以前完全一样,通过关系字段保存。Rollup Field 只会增加日历显示的记录。在客户页面上选择的日期会保存为一条关联到该客户的记录,相关记录则保留各自的父记录。
汇总显示会遵守共享规则和字段级安全性吗?
会。日历以查看页面的用户身份加载记录,因此记录共享和字段级安全性都照常生效。用户看到的是自己在 Salesforce 中本就有权访问的相关记录,仅此而已。
哪些 MultiDatePick 组件支持 Rollup Field?
Dates 和 Date Time 组件都支持,无论保存到标准对象还是自定义对象。Booking 组件在 This Record Only 模式下使用同一个 Rollup Field,因此它的时间轴、周、使用率和日程视图会显示通过查找路径关联到页面记录的预订。
客户的全部工作,都在客户上。
在在线演示中随意点点看,或从 Config Library 中的现成配置开始。
- $20/用户/月,全部功能
- 30 天免费试用,无需信用卡
- 100% Salesforce 原生
- 无需 Apex
- 即将登陆 Salesforce AppExchange