本篇参考: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. OpenHarmony SystemUI开发记录

    背景介绍 最近学习OpenHarmony应用开发, SDK版本是3.2.9.2 Beta4,IDE版本是3.1.0.200.参考官方文档,做了个Demo应用,调试.运行非常顺利.启动应用后,状态栏和导 ...

  2. gRPC 应用指引

    一.核心概念.架构及生命周期 1.服务定义 gRPC 默认使用 protocol buffers. service HelloService { rpc SayHello (HelloRequest) ...

  3. 笔记五:进程间的通信(IPC通信之共享内存)

    IPC通信 IPC通信(Inter-Process Communication) 三种: 共享内存.消息队列.信号灯 这个IPC对象,肯定是存在于内核中.而且用户空间的文件系统中有没有IPC的文件类型 ...

  4. vue2路由导航守卫(钩子函数)

    https://router.vuejs.org/zh/guide/advanced/navigation-guards.html#%E5%85%A8%E5%B1%80%E5%89%8D%E7%BD% ...

  5. Python-解三元一次方程

    需要解的方程组为: x + y + z = 26 x - y = 1 2x - y + z = 18 下面进入代码实现: 1.导入数学计算库 numpy import numpy as np 2.生成 ...

  6. [python] Python类型提示总结

    Python3.5 版本引入了类型提示(Type Hints),它允许开发者在代码中显式地声明变量.函数.方法等的类型信息.这种类型声明不会影响 Python 解释器的运行,但可以让 IDE 和静态分 ...

  7. 爬虫之浏览器指纹ja3_hash的更改

    浏览器指纹 反爬中会遇到浏览器指纹,它是不会随着你更换 IP 或者 User-Agent 而改变的.并且他们的指纹每次请求也是固定的.只要网站发现某个拥有特定指纹的客户端持续高频率请求网站,它就可以把 ...

  8. mac 如何快捷键打开当前文件夹对应的终端窗口

  9. Play to Earn Games

    什么是P2E游戏 P2E 游戏(Play to Earn Games)指的是在区块链游戏中,玩家可以通过完成任务.收获资源.挖矿或游戏中的其他活动以获得成就来赚取游戏内的资产(NFT)或代币(Toke ...

  10. 在 Transformers 中使用对比搜索生成可媲美人类水平的文本 🤗

    1. 引言 自然语言生成 (即文本生成) 是自然语言处理 (NLP) 的核心任务之一.本文将介绍神经网络文本生成领域当前最先进的解码方法 对比搜索 (Contrastive Search).提出该方法 ...