salesforce零基礎學習(一百二十九)Lead Conversion 有趣的經歷

2023-07-23 18:00:36

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

Lead Conversion 是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制定錯誤的思考,篇中不一定是最優解,僅供參考,有錯誤地方歡迎指出,有不懂歡迎留言。