热门标签 | 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.

 


推荐阅读
  • 本文详细介绍了JQuery Mobile框架中特有的事件和方法,帮助开发者更好地理解和应用这些特性,提升移动Web开发的效率。 ... [详细]
  • 本文介绍了一个使用Spring框架和Quartz调度器实现每周定时调用Web服务获取数据的小项目。通过详细配置Spring XML文件,展示了如何设置定时任务以及解决可能遇到的自动注入问题。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • ImmutableX Poised to Pioneer Web3 Gaming Revolution
    ImmutableX is set to spearhead the evolution of Web3 gaming, with its innovative technologies and strategic partnerships driving significant advancements in the industry. ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 本文详细探讨了VxWorks操作系统中双向链表和环形缓冲区的实现原理及使用方法,通过具体示例代码加深理解。 ... [详细]
  • 本教程涵盖OpenGL基础操作及直线光栅化技术,包括点的绘制、简单图形绘制、直线绘制以及DDA和中点画线算法。通过逐步实践,帮助读者掌握OpenGL的基本使用方法。 ... [详细]
  • Scala 实现 UTF-8 编码属性文件读取与克隆
    本文介绍如何使用 Scala 以 UTF-8 编码方式读取属性文件,并实现属性文件的克隆功能。通过这种方式,可以确保配置文件在多线程环境下的一致性和高效性。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文探讨了一个Web工程项目的需求,即允许用户随时添加定时任务,并通过Quartz框架实现这些任务的自动化调度。文章将介绍如何设计任务表以存储任务信息和执行周期,以及如何通过一个定期扫描机制自动识别并加载新任务到调度系统中。 ... [详细]
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社区 版权所有