我們在Sales Cloud中經常會創建顧客,如果針對TO C業務,會啟用個人顧客,比如針對車企行業,有一些場景是需要賣給個人的,而不只是企業采購。當通過打電話或者其他的場景有潛在客戶並且轉換成客戶以后,我們會為其創建業務機會(Opportunity),並且創建相關的 Event / Task去和客戶進行商談或者針對客戶的任務進行一些操作。我們在創建 Event / Task時,需要綁定的有 WhatId(相關項)以及 WhoId(名稱)。針對 WhoId,salesforce只允許選擇 Lead/ Contact。否則在save時會報錯:FIELD_INTEGRITY_EXCEPTION, Name ID: id value of incorrect type: xx account id: [WhoId]。

實際上,除了可以選擇 Lead / Contact,還可以選擇 Person Account。

然后我們新建一條test person account的個人顧客。

接下來我們重新的進行搜索,從下圖中我們可以看到當我們創建了 person account以后,我們重新去搜索contact,便可以搜索到這個名字作為who id,然后我們點擊Save。

創建以后我們去數據庫查看一下剛才的數據的who id。通過查詢我們看到,其實數據庫存的是Contact的數據,類型也是Contact。

當我們將這個contact id直接復制到鏈接處,會發現他會重定向到Person Account數據,我們在Contact列表中也確實可以搜索到這條Contact,並且綁定到 同樣名字的Account名稱中。所以我們可以理解成當我們創建一個person account時,會同時創建一個同樣名稱的person contact。當我們點擊這個person contact時會默認的重定向到person account,然后我們在創建Event選擇who id時,其實選的還是contact,別被表象欺騙。

問題可能來了,如果我們創建了兩個同樣名字的Person account,會發生什么?通過下圖我們會知道,如果創建同樣的名字的person account,會同樣創建相同名字的contact,所以當我們想通過 Account name去找到其對應的person contact行不通,只能通過Account Id去尋找其對應的Contact Id,如果通過Account Name則會有這種類似的問題。

總結:篇中簡單的講了一下針對Person Account為何可以在Event/Task的WhoId展示,盡管是一場烏龍,但是可以對 Person Account/Person Contact有一個概念,后期如果進行自定義開發時,注意此點,別入坑。
