行动计划可帮助您的组织将最佳实践封装在易于共享的可重复使用的任务模板中。
您可以为以下对象创建行动计划:
行动计划不支持。有关行动计划的社区援助,请访问Salesforce开拓者社区。要提交想法或问题,请访问Github上的行动计划。
动作计划是开源软件。我们欢迎您的问题报告,想法,文档,代码调整和所有其他参与。了解更多。
入门很容易。对于每个对象,您需要在列表视图中添加一个按钮,将按钮添加到详细信息页面。对于帐户,请执行以下步骤:”
通过编辑操作计划设置来更改这些设置,并在组织级别,配置文件级别或用户级别上更新值。
导航到设置>开发>自定义设置。单击Action Plans Settings
旁边的“管理”。单击“默认组织级别值”附近的“新”按钮。检查您要启用的值。
Enable Chatter Post
将帖子放置在相关记录的Chatter Feed中(如果为该对象启用了chater)。如果未经检查,则行动计划不会创建供稿职位。Unassigned Task Defaults to Record Owner
可确保用空白为“分配给”字段的操作计划模板任务转到相关记录的所有者。如果未选中,则将空白为“分配给”字段的任务分配给正在运行的用户。可以将任务分配给行动计划模板上的特定人员,该模板覆盖了此设置。Default Object on Lead Conversion
指定,如果操作计划与铅相关,则在转换引线时,应将操作计划移至转换帐户,联系或机会。默认值是联系人。Action Plans Business Hours ID
和Use Business Hours
保留用于将来的功能。 修改自定义元数据Weekend Day
以指出周末的哪一天是周末的哪一天,以及向前或向后移动任务的几天,以将其移至上周结束或下周开始。这使您可以在一个不同的周末工作,或者避免在一周的任何特定日期分配任何任务。整个工作日在两个数字字段中都应有0。
对于每个对象,您需要在列表视图中添加一个按钮,对于帐户,请按照以下步骤:
重复其他标准对象行动计划支持的步骤:联系人,线索,机会等。
请按照此步骤进行行动计划对象:
可选地,将“行动计划任务”字段添加到您的任务页面布局中,但应仅阅读,因为清除此字段将破坏跟踪行动计划进度的能力。
行动计划包括两个可共享的对象: Action Plan
和Action Plan Template
。您可以以适合组织的任何方式配置共享设置。
Tasks
。可以将它们分配给任务,而不知道这些任务是行动计划的一部分。他们对任务状态的任何更改都将反映在相关的行动计划任务模板中自动记录。无需许可集。 为需要使用操作计划的每个用户分配适当的权限集:
Action Plans Admin:
行动计划,行动计划模板,AP任务和APT任务模板的完整权限。Action Plans Template Creator:
操作计划模板和AP模板任务的完整权限。没有行动计划访问。Action Plans Creator:
阅读,创建,编辑,删除操作计划和AP任务。仅阅读操作计划模板和APT任务模板。Action Plans Import/Export:
访问出口和进口行动计划模板记录。查看适当的输出按钮,并输入选项卡以进行导入。Action Plans User:
仅阅读行动计划和AP任务。编辑任务的权限应通过用户资料或其他权限集提供。每个权限集使用:
Action Plans User
权限集。它可提供仅阅读行动计划的访问。Action Plans Creator
权限集可让仅阅读访问操作计划模板,并读取,创建,编辑和删除对操作计划的访问。Action Plans Template Creator
权限集。这包括仅阅读,创建,编辑和删除所有操作计划模板的权限。它不包括任何行动计划或任务权限。如果这些用户需要采取行动计划访问权限,也应使用其他权限集。自定义许可允许导出行动计划模板。Action Plans Import/Export
权限集作为Action Plans Template Creator
的附加组件,允许查看模板详细信息页面上的导出按钮和“导入”选项卡。自定义许可Action Plan Template Export
允许导出操作计划模板和相关任务。谨慎使用此许可,因为它是您组织专有模板的潜在安全漏洞。这是将模板从沙箱转移到生产组织的好方法。Action Plans Admin
包括修改所有四个行动计划对象的所有权限(操作计划,操作计划任务模板,操作计划模板和操作计划模板任务模板)。自定义权限允许导出操作计划模板。注意:流中或通过触发器中使用的顶点不需要特殊的权限运行。
MyObject__c
自定义对象,则必须在Action Plan中名称字段MyObject__c
Related Objects
字段集中。before delete
对象触发器和after undelete
(如果您不使用托管软件包,则删除LabsActionPlans
名称空间): LabsActionPlans . ActionPlansTriggerHandlers . actionPlansSObjectTriggerHandler ( ' CustomObject__c ' );
不要忘记编写测试类以覆盖自定义对象触发器。如果您只是要进行覆盖范围(不是最佳实践!),只需插入测试方法,然后删除记录即可。不幸的是,此软件包中的代码并不能轻松为自定义对象制定动作计划。
Create Custom Object Action Plan
按钮添加到操作计划对象尽管动作计划已经覆盖了新的动作计划操作,但新按钮将显示一个新的动作计划屏幕,但不允许添加现有模板。 (也许这将在以后的版本中...安全港。)创建一个自定义按钮,并在操作计划对象上使用以下格式,并将其添加到“自定义对象”页面上的相关列表中:
LabsActionPlans__
{!URLFOR( $Action.LabsActionPlans__ActionPlan__c.New, null, [refType="CustomObject__c", refId=CustomObject__c.Id] )}
Create Action Plans
就像有一个用于创建多个操作计划的帐户列表视图的按钮一样,您也可以为自定义对象做同样的操作。使用以下代码创建一个Visualforce页面:
< apex : page standardController = " CustomObject__c " recordsetvar = " o "
extensions = " LabsActionPlans.ActionPlansCreateMultipleAPsExtension "
showHeader = " false " action = " {!doRedirect} " >
< apex : form >
< apex : actionFunction name = " jsCancel " action = " {!cancel} " immediate = " true " />
</ apex : form >
< script >
var oids = '{!JSENCODE(objIDs)}';
if (oids.length < 15) {
alert('{!$Label.LabsActionPlans__ap_Errors_selectOneRecord}');
jsCancel();
}
</ script >
</ apex : page >
然后为该对象创建列表视图按钮,然后将其添加到列表视图中。
例如,如果您不允许将诉讼计划与合同相关联,请从“与操作计划相关的对象”字段集中删除合同字段。无需从操作计划对象中删除字段。
现在,您可以创建第一个模板。导航到操作计划模板选项卡。单击“新操作计划模板”按钮。
模板屏幕看起来像这样:
名称 - 模板名称。
描述 - 应该如何使用模板的说明。
跳过周末 - 允许您自动重新安排一项任务,该任务将在周末前一天或周末之后的一天。检查时,会出现一个选择列表,允许您在周末之前或之后进行选择。
操作 - 单击“ X”以消除模板中的一步。
主题 - 任务要做什么。
任务依赖性 - 仅一旦完成任务完成,才能创建因任务。
几天后 - 此值决定任务的截止日期。
分配给 - 仰望用户。如果要动态分配任务,请留空。动态分配时,默认行为将是将任务分配给正在运行的用户。您还可以通过更改操作计划设置将系统分配给记录所有者。请参阅上面的“邮政安装配置”指南。
类别 - 什么类型的活动。
优先级 - 取自任务优先级和记录类型(如果适用)。
电子邮件 - 检查后发送标准的新任务电子邮件。对于任务,根据其他任务,将在创建任务时发送电子邮件。
提醒 - 此复选框将在应用模板创建动作计划时定义提醒的默认行为。
如果未选中,则在“行动计划创建”页面中,提醒将最初被禁用
如果已检查,将提供提醒。
评论 - 支持任务的评论。
添加新任务 - 在“任务”网格中添加另一个行。
保存 - 保存模板。
如果您的组织使用任务记录类型,则必须指定每个操作计划和模板记录中所有任务的记录类型。这将影响每个相关行动计划任务可用的状态值。创建动作计划或模板后,这将无法更改。该操作计划或模板上的所有任务只能指定一种记录类型。
导航到帐户列表视图。选择要创建行动计划的帐户。单击“创建帐户行动计划”按钮。
通过在查找中键入名称并单击它来选择要使用的模板。
输入该计划的特定信息。请注意,您之前选择的帐户是可见的。
保存行动计划。注意:创建行动计划是通过可划分(异步)过程来处理的。能够查看所有创建的记录可能需要几分钟。
验证行动计划和任务。
完成行动计划的第一个任务。请注意,行动计划现在在正确的相关列表中,并且该帐户有一个开放活动和一项封闭活动。模板中的第三个活动是依赖的,并且仅在完成其控制任务完成时才会创建。 (此处显示与联系人相关的列表,但这同样适用于帐户。)
要接收任务通知,如果在操作计划任务上选择了Send Email
,请确保已允许用户控制任务通知电子邮件(默认情况下是活动的),并且他们允许发送电子邮件通知(这也是默认启用)。有关更多信息,请参见Salesforce H&T。
必须检查“行动计划”任务上的Send Email
字段以发送电子邮件通知,并且设置Allow Flow to send delegated task notifications on records created through Apex
还必须启用。转到设置>“功能设置”>“销售”>“活动设置”以选中该框,并允许通过流量创建的操作计划发送电子邮件通知。
如果用户启用了任务通知,则在创建操作计划任务时将发送这些通知。
Send Email
框,则如果在其个人设置中,用户仍可能会收到任务通知。操作计划任务不能分配给队列,因此,如果父记录由队列所有,则每个AP任务将分配给运行的用户。可以通过使用Flow重新分配任务来分配从该操作计划生成的任务。由于可使APEX返回操作计划任务ID列表,因此可以在同一流中更新创建的任务(与操作计划任务有关系),因为它们是同步创建的,并且可以立即查询。另外,重新分配任务以排队您想要的任何其他方式;它不会违反行动计划,队列名称将在“动作计划详细信息”页面上显示。
动作计划包括一个可以包含在流程中的可独裁顶端类。需要触发记录的记录ID,以及所需模板的ID或名称。从触发到启动行动计划的天数是可选的(默认为0)。第一个任务是从开始日期开始的天数(在模板上指定)。这个日期可能会在一个周末落下,尽管可以在模板上设置的任务截止日期以避免周末。
Invocable Apex类返回所有创建的操作计划任务的Salesforce ID,可以在下一个流步骤中使用。
运行以下内容:
sf apex run --file ./data/sample-data.apex
要将此模板与随附的流一起使用,请参见New Customer Onboarding Activities
中的Create Action Plan From Template
创建一个帐户并将Type
设置为以“客户”开头的任何值
建议在创建流程构建器以使用行动计划时不要检查递归框。
还建议根本不使用Process Builder!
要从触发器或Apex类调用可使Apex,请调整以下示例代码:
String apTemplateName ;
ActionPlanTemplate__c apTemplate ;
List < SObject > toInsert ... // can use any object, such as Account, or the generic SObject class
List < ActionPlanCreateInvocable . CreateActionPlanRequest > requests = new List < ActionPlanCreateInvocable . CreateActionPlanRequest >();
for ( SObject a : toInsert ){
ActionPlanCreateInvocable . CreateActionPlanRequest req = new ActionPlanCreateInvocable . CreateActionPlanRequest ();
req . templateNameOrID = apTemplate . Id ;
req . relatedRecordID = a . Id ;
req . daysToActionPlanStart = 0 ;
req . actionPlanName = a . Name + ' - Onboarding ' ;
requests . add ( req );
}
List < Id > resultIDs = ActionPlanCreateInvocable . makeActionPlanFromTemplate ( requests );
String apTemplateName ;
LabsActionPlans__ActionPlanTemplate__c apTemplate ;
List < SObject > toInsert ... // can use any object, such as Account, or the generic SObject class
List < LabsActionPlans . ActionPlanCreateInvocable . CreateActionPlanRequest > requests = new List < LabsActionPlans . ActionPlanCreateInvocable . CreateActionPlanRequest >();
for ( SObject a : toInsert ){
LabsActionPlans . ActionPlanCreateInvocable . CreateActionPlanRequest req = new LabsActionPlans . ActionPlanCreateInvocable . CreateActionPlanRequest ();
req . templateNameOrID = apTemplateName ;
req . relatedRecordID = a . Id ;
req . daysToActionPlanStart = 1 ;
req . actionPlanName = a . Name + ' - Onboarding ' ;
requests . add ( req );
}
List < Id > resultIDs = LabsActionPlans . ActionPlanCreateInvocable . makeActionPlanFromTemplate ( requests );
变量:
templateNameOrID
(必需)名称不是唯一的,因此ID是首选relatedRecordID
(必需)必须具有一个关系字段,名为“行动计划对象”中的相关记录对象名称daysToActionPlanStart
(不需要)默认为0,即创建计划的那一天actionPlanName
(不需要)为操作计划提供自定义名称。如果未指定,则默认为{template name} - {父记录名称}。行动计划支持使用模板导出和模板导入的最佳实践的共享和发现。
导出很简单。导航到您希望导出的模板。单击“导出”按钮。
导出创建一个简单的XML文件,其中包含模板标头和任务信息。它还包括有关谁创建模板的信息。注意:它不包括有关您可能使用此模板的对象的用户信息或敏感数据。
如果您使用的是闪电经验,则导出的文件在您的文件选项卡中,在您的私人文件库中。如果您仍在使用Salesforce Classic,则在您的文档选项卡中,在您的私人文档文件夹中。
共享文件很容易。将文件发送给您要与之共享的任何人。您想与更广泛的受众分享吗?通过[email protected]将文件发送给Salesforce Labs。
导入也很简单。导航到“导入模板”选项卡。选择要使用“浏览”导入的文件,然后找到它后单击“导入模板”。
该存储库还包括示例操作计划模板文件,您可以在适当的选项卡上导入。您可以从GitHub下载新客户入职或贸易展览会,也可以在data
夹中的SFDX项目中找到它。