热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Salesforce中实施CampaignInfluence模型注意事项

【前言】:在19年8月份的时候,为地产行业客户实施了一套简要的CampaignInfluence模型,目的是帮助房产公司市场部同事了解什么类型的Campaign有助于产生新的商机,

前言】:在19年8月份的时候,为地产行业客户实施了一套简要的Campaign Influence模型,目的是帮助房产公司市场部同事了解什么类型的Campaign有助于产生新的商机,及最终成单(即了解客户成功购买归因,通过哪些市场活动触点最终进入销售关键节点),并最终计算ROI (Return On Investment)。项目落地后的一段时间工作重心放在了金融行业客户上,到21年回归地产项目数月后,在调查代码覆盖问题,及影响范围和程度时,偶然看到了相关代码的变动,因此重新测试发现确实存在一些亟待解决的问题。

模型简述】:

模型要素:这个模型涉及到4个要素
#1. Campaign Influence Model
#2. Contact
#3. Campaign
#4. Opportunity

从数据模型角度理解如下图(1)所示:

从画面角度理解如下图(2, 3)所示:

现存问题】:在下图(4)的Campaign Detail页面上,我们发现Opportunities in Campaign数量为1而实际根据4个要素,压根没找到对应数据。

问题归因】:

在Org迁移的时候,担当同学忘记在新Org配置自定义Campaign Influence Model,因此该业务模块中的数据是按照Salesforce初始化的标准Model处理数据的。

使用标准Model时,即便删除了图(3)中的Opportunity上的Primary Campaign Source,这时系统自动移除了图(2)中Camapign底下的Influenced Opportunities,但是图(3)中的Opportunity的Campaign Influence并未自动移除,而图(4)中的INFULENCED OPPORTUNITIES查询的是CampaignInfluence表,因此因并未移除造成rollup INFLUENCED OPPORTUNITIES值时,图(4)中的Opportunities in Campaign显示为1 -> 与事实不符。

最终,要让SF标准行为符合预期(清除primary campaign on opp -> 删除CampaignInfluence表记录),只需要创建自定义的Model即可,如下图(5)所示:

关于使用Model的一些考虑】:Implement Custom Campaign Influence Models with Apex Triggers

Considerations for Implementing Custom Campaign Influence Models

Note that the Primary Campaign Source model’s influence records are recalculated when any of these events occur.

Changing any Customizable Campaign Influence settingUpdating an opportunity’s Close DateAdding or removing members from campaignsDeleting or undeleting accounts or opportunities

During such a recalculation, some existing campaign influence records for the Primary Campaign Source model may be deleted and re-created. Because the approach described here creates records for your custom model whenever Primary Campaign Source records are created, it’s possible that duplicate influence records can be created against your custom model.

To avoid this duplicate record creation, include validation checks in your own Apex code to make sure you're not inserting a record with the same modelId + opptyId + campaignId + contactId into the same model. If you find that a record already exists, perform an update operation on the record instead.

 


推荐阅读
  • 对象自省自省在计算机编程领域里,是指在运行时判断一个对象的类型和能力。dir能够返回一个列表,列举了一个对象所拥有的属性和方法。my_list[ ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • 本文详细介绍了Java Web应用程序中的过滤器(Filter)功能,包括其作用、实现方式及配置方法。过滤器可以在请求到达目标资源之前对其进行预处理,并在响应返回给客户端之前进行后处理。 ... [详细]
  • 本文介绍了Android开发中Intent的基本概念及其在不同Activity之间的数据传递方式,详细展示了如何通过Intent实现Activity间的跳转和数据传输。 ... [详细]
  • 本文介绍了Linux系统中的文件IO操作,包括文件描述符、基本文件操作函数以及目录操作。详细解释了各个函数的参数和返回值,并提供了代码示例。 ... [详细]
  • 本题探讨了在一个有向图中,如何根据特定规则将城市划分为若干个区域,使得每个区域内的城市之间能够相互到达,并且划分的区域数量最少。题目提供了时间限制和内存限制,要求在给定的城市和道路信息下,计算出最少需要划分的区域数量。 ... [详细]
  • 本文探讨了在C++中如何有效地清空输入缓冲区,确保程序只处理最近的输入并丢弃多余的输入。我们将介绍一种不阻塞的方法,并提供一个具体的实现方案。 ... [详细]
  • 本文详细介绍了 org.apache.commons.io.IOCase 类中的 checkCompareTo() 方法,通过多个代码示例展示其在不同场景下的使用方法。 ... [详细]
  • 在网站制作中随时可用的10个 HTML5 代码片段
    HTML很容易写,但创建网页时,您经常需要重复做同样的任务,如创建表单。在这篇文章中,我收集了10个超有用的HTML代码片段,有HTML5启动模板、空白图片、打电话和发短信、自动完 ... [详细]
  • 本文详细介绍了 Java 中的 org.apache.hadoop.registry.client.impl.zk.ZKPathDumper 类,提供了丰富的代码示例和使用指南。通过这些示例,读者可以更好地理解如何在实际项目中利用 ZKPathDumper 类进行注册表树的转储操作。 ... [详细]
  • This pull request introduces the ability to provide comprehensive paragraph configurations directly within the Create Note and Create Paragraph REST endpoints, reducing the need for additional configuration calls. ... [详细]
  • 本问题探讨了在特定条件下排列儿童队伍的方法数量。题目要求计算满足条件的队伍排列总数,并使用递推算法和大数处理技术来解决这一问题。 ... [详细]
  • 本文详细介绍了如何在C#程序运行期间防止系统进入休眠模式以及显示器关闭,提供了具体的实现代码示例,并解释了其应用场景。这不仅有助于提高程序的稳定性,还能优化能源管理。适合需要处理长时间任务(如下载或批处理)的开发者参考。 ... [详细]
  • 异常要理解Java异常处理是如何工作的,需要掌握一下三种异常类型:检查性异常:最具代表性的检查性异常是用户错误或问题引起的异常ÿ ... [详细]
  • 本文探讨了Jsonapi-rb与ActiveModelSerializers (AMS)在性能上的差异,并分享了详细的基准测试结果。 ... [详细]
author-avatar
WingKeii-
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有