本篇参考:https://help.salesforce.com/s/articleView?id=000382564&type=1

Lead Convertion 是salesforce中sales cloud的一个很好用的功能。sales cloud流程可以简单的理解成 lead to cash。当对lead进行打分以及不断的孵化以后,优质lead会转成 Account & Contact & Opportunity。

背景: Lead / Contact / Opportunity 都创建了自定义的Picklist字段 Primary,包含的值为True以及false。并且做了Convert的field mapping。

后来需求变化,Opportunity的Primary字段变成了Checkbox类型,并且UI上来看,Map Lead Fields区域匹配关系已经自动消失。

我们来做一下lead convert的实验。

1. 被validation rule拦截:这种报错的好处是特别好定位到错误的位置,系统会提示哪个表被触发了validation rule导致失败。

2. 未知错误。There was an error converting the lead. Please try again. If the problem persists, please contact your administrator:发生这种问题以后,即使查看debug log也很难查出来问题,下方demo中的debug就没有特别多的信息,那么如何去处理这种问题呢?

我们看到文档中主要包含4种定位的错误:

  • Converting Lead into Existing Opportunity:多货币情况下,如果lead的货币(currency)和已有的Opportunity的货币不同,转换时会出现这种报错,这种情况下保证两边货币相同即可;
  • Field mapped to package that is expired:如果有一个自定义字段被映射到Account或Contact Object,而该字段是已过期或已禁用的托管包的一部分,那么线索转换可能会失败。这种情况下检查为组织安装的软件包,找到任何接触到 Lead的软件包,并检查作为该软件包一部分的任何自定义字段,确保在该软件包过期或禁用的情况下,它们不会仍被用于映射;
  • Discrepancy in the mapped picklist field:针对picklist类型字段,如果两边picklist value不同,可能会导致失败,这种情况下检查两者的value值;
  • Flow Error related to automation:当Lead Convertion时,相关目标表的automation flow有bug导致的问题。这种情况下可以打一个debug log去诊断。

切回到上方的问题,如何来快速定位到呢? 下面是我当时的一个经历,说不上最优,仅供参考。

1. 首先定位到哪个表发生的问题,通过debug log发现日志已经走了 Account以及Contact并且没有报错,说明大概率是Opportunity出现了问题,导致了这个未知错误,在诊断时,先不选择Opportunity看是否转换成功,如果成功则证明Opportunity问题,否则重新定位。

2. 既然确定是Opportunity的问题,则优先调查process automation相关,即Workflow / Process Builder / Flow。通过日志我们发现没有Opportunity的报错,说明大概率不是automation导致的问题,保险起见,我们可以在测试环境关闭所有的automation,测试是否由这个引起。

3. 如果不是2引起的,大概率是picklist匹配问题导致,两种情况:

  1. picklist value不匹配;
  2. picklist类型变了其他的类型,导致类型不匹配。

类型不匹配比较较快,这里推荐一个简单的方法。我们把lead field mapping资源通过metadata 检索下来,再重新部署,如果不报错证明配置没问题,如果报错证明出现问题,则可以快速定位到问题。

xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>*</members>
<name>LeadConvertSettings</name>
</types>
<version>56.0</version>
</Package>

效果如下:

通过这种方式就可以快速的定位到了问题,这个问题令人挺疑惑的,因为从最开始的gif可以看到,UI上来看,这个mapping已经解除了,但其实没有,metadata层面还保留,只有UI点击了save以后才生效。

总结:篇中主要介绍了针对Lead Convertion制定错误的思考,篇中不一定是最优解,仅供参考,有错误地方欢迎指出,有不懂欢迎留言。

salesforce零基础学习(一百二十九)Lead Convertion 有趣的经历的更多相关文章

  1. salesforce 零基础学习(二十九)Record Types简单介绍

    在项目中我们可能会遇见这种情况,不同的Profile拥有不同的页面,页面中的PickList标签可能显示不同的值.这个时候,使用Record Types可以很便捷的搞定需求. Record Types ...

  2. salesforce零基础学习(八十九)使用 input type=file 以及RemoteAction方式上传附件

    在classic环境中,salesforce提供了<apex:inputFile>标签用来实现附件的上传以及内容获取.salesforce 零基础学习(二十四)解析csv格式内容中有类似的 ...

  3. salesforce 零基础学习(二十二)Test简单使用

    本篇内容只是本人简单的mark开发中常出现的一些疑问,方便后期项目使用时奠定基础,如果对Test零基础童鞋,欢迎查看Test官方的使用介绍: https://help.salesforce.com/a ...

  4. salesforce 零基础学习(二十)简单APP制作

    本篇参考链接:https://developer.salesforce.com/trailhead/project/salesforce_developer_workshop 本篇讲述的是最简单的AP ...

  5. salesforce 零基础学习(三十九) soql函数以及常量

    在salesforce中,我们做SOQL查询时,往往需要用到计算式,比如求和,求平均值,或者过滤数据时,往往需要通过时间日期过滤,SOQL已经封装了很多的函数,可以更加方便我们的sql查询而不需要自己 ...

  6. salesforce 零基础学习(二十八)使用ajax方式实现联动

    之前的一篇介绍过关于salesforce手动配置关联关系实现PickList的联动效果,但是现实的开发中,很多数据不是定死的,应该通过ajax来动态获取,本篇讲述通过JavaScript Remoti ...

  7. salesforce 零基础学习(二十四)解析csv格式内容

    salesforce中支持对csv格式的内容批量导入,可以使用dataloader,然而有些情况下,当用户没有相关权限使用dataloader导入情况下,就的需要使用VF和apex代码来搞定. 基本想 ...

  8. salesforce 零基础学习(六十九)当新增/修改一条记录以后发生了什么(适合初学者)

    salesforce开发中,我们会对object进行很多的操作,比如对object设置字段的必填性唯一性等,设置validation rule实现一下相关的字段的逻辑校验,设置workflow实现某个 ...

  9. salesforce零基础学习(七十九)简单排序浅谈 篇一

    我们在程序中经常需要对数据列表进行排序,有时候使用SOQL的order by 不一定能完全符合需求,需要对数据进行排序,排序可以有多种方式,不同的方式针对不同的场景.篇一只是简单的描述一下选择排序,插 ...

  10. salesforce 零基础学习(五十九)apex:param使用以及相关的疑惑

    做web项目难免要从一个页面传参数,解析参数中的值进行相关处理以后跳转到其他页面,VF中也不例外.使用传参的标签为apex:param. apex:param标签不可以单独使用,需要作为子标签嵌套在相 ...

随机推荐

  1. 探索FSM (有限状态机)应用

    我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值.. 本文作者:木杪 有限状态机(FSM) 是计算机科学中的一种数学模型 ...

  2. 音视频通讯QoS技术及其演进

    利用多种算法和策略进行网络传输控制,最大限度满足弱网场景下的音视频用户体验. 良逸|技术作者 01 什么是QoS?音视频通讯QoS是哪一类? QoS(Quality of Service)是服务质量的 ...

  3. canvas-绘制3D金字塔

    var canvas1 = document.getElementById("canvas1"); var context = canvas1.getContext("2 ...

  4. 「学习笔记」重修 FHQ-treap

    无旋 treap 的操作方式使得它天生支持维护序列.可持久化等特性. 无旋 treap 又称分裂合并 treap.它仅有两种核心操作,即为 分裂 与 合并.通过这两种操作,在很多情况下可以比旋转 tr ...

  5. OpenFec介绍

    官网: http://openfec.org/accueil.html   1.提供的编解码器 Reed-Solomon stable codec over GF(28)                ...

  6. 深度学习-07(图像分类、常用数据集、利用CNN实现图像分类、图像分类优化)

    文章目录 深度学习-07(PaddlePaddle图像分类) 图像分类概述 概述 什么是图像分类 图像分类粒度 图像分类发展历程 图像分类问题的挑战 常用数据集介绍 MNIST数据集 CIFAR10数 ...

  7. ACID和CAP特性

    文章目录 ACID和CAP理论 ACID CAP ACID和CAP理论 ACID **atomicity(原子性):**所有的事务要么都成功要么都失败, **consistency(一致性):**执行 ...

  8. 基于create-react-app构建静态博客

    前言: 用过hexo后,我被其强大的功能惊艳到了,于是便想自己也写一个静态博客生成器,并且可以发布到GitHub托管. 首先我们来看下效果图: 具体是怎么实现的呢? 我们通过create-react- ...

  9. 关于Mybatis

    一:Mybatis的优缺点 优点: 1.与JDBC相比,减少了百分之五十的代码量. 2.Mybatis是最简单的持久层框架,简单易学. 3.Mybatis灵活,不会对应用程序和现数据库设计强加任何影响 ...

  10. 2022-01-31:迷宫 III。 由空地和墙组成的迷宫中有一个球。球可以向上(u)下(d)左(l)右(r)四个方向滚动,但在遇到墙壁前不会停止滚动。当球停下时,可以选择下一个方向。迷宫中还有一个洞

    2022-01-31:迷宫 III. 由空地和墙组成的迷宫中有一个球.球可以向上(u)下(d)左(l)右(r)四个方向滚动,但在遇到墙壁前不会停止滚动.当球停下时,可以选择下一个方向.迷宫中还有一个洞 ...