1. 程式人生 > >Salesforce Admin篇(一)Duplicate Management

Salesforce Admin篇(一)Duplicate Management

參考資料:https://help.salesforce.com/articleView?id=managing_duplicates_overview.htm

Salesforce 很重要的一個平臺是Sales Cloud,涉及到的流程是Lead-Cash。銷售團隊跟進潛在的客戶,爭取讓他們變成自己的客戶並創造機會購買他們的產品。有時,銷售人員可能會電話或者其他方式聯絡不屬於他own的Account或者Lead,由於系統中存在著重複的Account/Lead資料,導致銷售人員做了很多無用功,同時被電聯的客戶也會被浪費時間以及認為公司團隊辦事混亂。所以重複的資料造成的影響特別大,針對這種重複資料的管理也特別有必要。

Salesforce提供了一套針對針對Duplicate資料的管理方式,Duplicate Management可用於以下的object的資料: Account(business & person) / Contact / Lead / 自定義物件。Sales force針對重複資料的管理基於兩個Rule: Matching Rule & Duplicate Rule。

通過下面的截圖可以看到, Matching rule是用來識別兩條記錄是否是重複資料的,當我們用Matching Rule確定是否重複以後,通過Duplicate Rule的配置方式來進行後續的操作。

 當我們進行一條Contact插入時,Duplicate Management會進行以下的步驟:

1. 一個Contact 建立;

2. 通過Matching Rule規則去檢視有哪些匹配到的重複的Contact資料;

3. 通過不同的Duplicate Rule會有不同的操作,比如可以block住建立的操作,也可以彈出alert提示框然後允許其繼續建立,針對繼續建立也可以做到將潛在的重複記錄生成report傳送給他的經理郵件。下面分別講一下Matching Rule以及Duplicate Rule的使用。

Mattching Rule 以及 Duplicate Rule可在Set Up中搜索Duplicate,在Duplicate Management下進行訪問,下面針對這兩個規則進行詳細的說明。

一. Matching Rule

 Salesforce預設提供了關於Account / Contact / Lead的標準的Matching Rule,針對這三種Matching Rule的詳細使用如下連結所示:

Account Standard Matching Rule:https://help.salesforce.com/articleView?id=matching_rules_standard_account_rule.htm&type=0

Contact Standard Matching Rule:https://help.salesforce.com/articleView?err=1&id=matching_rules_standard_contact_rule.htm&type=5

Lead Standard Matching Rule: https://help.salesforce.com/articleView?err=1&id=matching_rules_standard_leads_on_accounts_rule.htm&type=5

 我們下面的內容講的是如何建立自定義的Matching Rule,以及建立好以後如何判斷兩條記錄是Matching的還是不同的。

1. 首先我們在系統中新建一個Matching Rule,管理員需要設定Matching Criteria。我們在demo中設定了4列,並且設定他們的邏輯為(1 OR 2) AND (3 OR 4).

 通過上圖自定義Matching Rule我們可以看到Matching Criteria有三列,這三列的含義如下:

Field: 用來指定哪個欄位用來做比較,支援的比較型別包括email, lookup relationship, master-detail relationship, number, phone, standard picklists, custom picklists (single-select only), text, and URL。

Matching Method: 定義Field如何進行比較的方法。有兩種型別可供選擇: Exact / Fuzzy。 Exact大部分欄位都可以選擇,Fuzzy針對常用的欄位可以選擇。針對Exact以及Fuzzy選擇如何影響匹配規則會在下面說明。

Match Blank Fields: 指定在欄位比較時,空字串是否被用於比較。如果沒有勾選,則如果兩條記錄的比較的欄位都是空的也會被認為是不一致的。如果勾選的情況下,如果兩個記錄的比較的欄位均為空,則認為是一致,如果一個為空,一個不為空也不認為是一致的。

 當我們選擇了上面的邏輯進行操作以後,Salesforce適用了一系列的運算邏輯和運算演算法來實現匹配。這裡涉及到幾個關鍵的概念。

1. Matching equation:

我們在Matching Criteria 選擇了欄位以及匹配了規則以後,我們便知道了 Matching equation。通過下圖可以知道,當前的匹配規則為:
(Field1 OR Field2) & (Field3 OR Field4)。Matching Equation知道以後,我們需要變形,括號內適用AND連結,括號外適用OR連結。

所以 (Field1 OR Field2)AND (Field3 OR Field4) =

(Field1 AND Field3) OR
(Field1 AND Field4) OR
(Field2 AND Field3) OR
(Field2 AND Field4)

我們通過解析成OR的形式便可以知道當前的 matching key的個數,即一個OR的group對應一個 matching key. demo中總共有4個matching key

matching key 由兩部分進行自動生成,一個是matching equation,一個是matching method(exact/fuzzy)。當Matching Rule執行時,實際上是根據matching key是否匹配來判斷兩條資料是否為重複資料,如果matching key匹配,則認為是潛在的匹配資料進行評估,如果matching key不匹配,則認為兩條資料不是重複資料。

上面的matching equation已經可以通過Matching Criteria確定出來,matching method可以由管理員勾選選項確定下來。matching method兩種方式的詳細區別以及用途如下:

exact:顧名思義,精確匹配,用來匹配字串完全一樣的資訊。如果你使用的是國際化的資料,建議使用exact模式,大部分欄位都支援此種類型匹配,包括自定義欄位;

fuzzy: 模糊匹配,尋找與目標字串近乎匹配的字串。此種方式匹配不是所有的欄位都可以使用,通常使用者Account/Contact/Lead的標準欄位。
看到上面的兩個宣告方式,可以看到exact需要完全匹配,fuzzy可以模糊匹配,那針對匹配兩個值的準確率是多少,運用什麼規則匹配,我們還要針對fuzzy方式提出另外幾個概念。

2. Matching Algorithm

定義兩個欄位是否匹配的邏輯的演算法。針對exact模式,則自動使用精確匹配的演算法。針對模糊匹配的演算法,官方提供了各種模糊匹配的演算法。每個欄位都是根據匹配程度來評分,用來記錄當前的兩個欄位的匹配分值。針對fuzzy方式可能會有各種評分的匹配值,針對exact只有0和100。Salesforce提供了以下的匹配演算法,各個匹配演算法描述如下所示。

MATCHING ALGORITHM DESCRIPTION
Acronym 判斷一個公司的名稱是否和他的縮寫名稱一致。比如上面例子中的International Business Machines和IBM會被認為是一致的。
Edit Distance

通過兩個字串之間的刪除,新增,字元的替換來決定兩個字串的相似度。比如

VP Sales 和 VP Of Sales匹配分數為73%

Initials                                                                   

比較兩個名字的首字母是否相同。比如First Name: Jane 和首字母為J的匹配相似度為100.

需要注意的一點是,如果我們在match rule中配置了First Name為 Fuzzy方式的匹配,設定Last Name為Exact方式的匹配,則我們的match key應該是First Name的首字母加上First Name的最後一個字母加上Last Name全部作為match key。比如Jane Smith,Jane作為First Name使用了Fuzzy方式,Smith作為Last Name使用了Exact方式。則匹配的key應該為 jesmith.

Jaro-Winkler Distance 比較一個字串轉換成另外一個字串所需要的替換的數量的相似度。通常用於短的字串的比較。比如Johnny和Johny匹配分數為97
Keyboard Distance 比較一個字串通過刪除,新增,字元替換轉換成另外一個字串的(由鍵盤的鍵的位置加權)來確定兩個字串的相似度。
Kullback Liebler Distance 根據兩個欄位中的相同的單詞所佔的比例來確定相似度。比如Director of Engineering 和 Engineering Director  有2個單詞匹配,匹配分數為65%
Metaphone 3 根據兩個字串發音來確定兩個單詞的相似度,這個針對First Name和Last Name都有效。比如Joseph和Josef兩個單詞發音一樣,所以匹配程度為100.
Name Variant 根據兩個單詞是否為相互之間的變形來確定兩個單詞的相似度,官方給的單詞為Bob是Robert的變形,所以返回100, Bob不是Bill的變形,所以返回0
Syllable Alignment 根據兩個單詞的發音來確定兩個單詞的相似度,首先先將單詞轉換成音節的字串,然後使用Edit Distance algorithm比較相似度。

 3. Threshold

當我們使用了Fuzzy的匹配方法以後,我們需要知道針對每個欄位的匹配相似度最低在多少情況下,salesforce才認為是匹配的。下面的表例舉了針對Fuzzy的各個標準欄位適用的匹配演算法以及匹配的權重的最小值。

Matching Method MATCHING ALGORITHMS SCORING METHOD THRESHOLD SPECIAL HANDLING
Exact Exact      
Fuzzy: First Name

Exact

Initials

Jaro-Winkler

Name Variant

Maximum 85

如果Middle Name欄位用來作為matching rule的比較欄位,則根據Fuzzy:First Name matching method比較

Fuzzy: Last Name

Exact

Keyboard Distance

Metaphone 3

Maximum 90  
 Fuzzy: Company Name  

Acronym

Exact

Syllable Alignment

 Maximum  70  在比較欄位以前需要先移除inc, corp等詞。除此之外,公司名稱也遵循規範化的。比如IBM會先規範化成International Business Machines
 Fuzzy: Phone  Exact  Weighted Average  80

 電話號碼會分成多個部分進行比較。每個部分都有自己的匹配方法和匹配分數。部分分數經過加權後得出該欄位的一個分數。這個計算過程最適合北美的資料。

International code (exact, 10% of field’s match score)
Area code (exact, 50% of field’s match score)
Next 3 digits (exact, 30% of field’s match score
Last 4 digits (exact, 10% of field’s match score)

當我們比較這兩個號碼:1-415-555-1234 and 1-415-555-5678.

1      1

415     415

555      555

1234    5678

前三個部分都匹配,最後一個不匹配,最後一個佔的權重為90%超過了80,所以我們認為這兩個號碼是匹配的。

 Fuzzy: City  

Edit Distance

Exact

 Maximum 85   
 Fuzzy: Street Exact  Weighted Average   80  街道欄位的比較方式和上面的電話號碼類似,差分成多個比較,不同模組會有不同的權重。這個也是最適合北美的資料。
 Fuzzy: ZIP  Exact Weighted Average  80   ZIP code也拆分成多個模組比較

First five digits (Exact, 90% of field’s match score)

Next four digits (Exact, 10% of field’s match score)

因為前5個匹配便已經90超過80,所以前5位匹配即認為相同

 Fuzzy: Title  

Acronym

Exact

Kullback-Liebler Distance

 Maximum  50  

 4. Matching Key

上文也提到了,我們在有了Matching equation 以後,需要變形成指定的格式,目的就是為了生成 Matching Key。Matching Key有助於提高匹配演算法的效能。我們可以根據生成的Matching Key來比較兩個欄位的相似度,從而可以知道權重是否滿足在salesforce規定的範圍內。那Matching Key需要如何生成?有哪些要求?

1. 將匹配的方程式從 OR語句格式轉換成AND語句格式
2. 匹配規則中的欄位的值是規範化的
3. 一個matching rule最多隻能有10個matching key,也就是說OR語句轉成AND後的數量必須在10個以內,否則會報錯。
4. match key用於針對每條記錄將規範化的值組合。

第一個我們在前面已經瞭解了,第二個規範化有什麼意義?salesforce又是如何設計的?

意義: 在我們比較兩個欄位相似度時,不同的欄位型別,不同銷售人員填的內容可能是不一樣的。比如針對名稱,可能有些人添加了稱呼語(Mr./Mrs),針對公司名稱,有些人可能填寫的時縮寫,有些人可能在名稱中添加了 and,the這種連線詞等,大大的增加了匹配的難度以及準確性,所以針對部分欄位,我們將其按照某種規則在比較以前進行規範化,可以大幅度的增強匹配的準確性以及匹配的效率。

salesforce針對主要欄位的規範化如下表所示:

FIELD NORMALIZATION DETAILS APPLIES TO STANDARD AND CUSTOM MATCHING RULES? EXAMPLES
City                                                           將所有字元小寫。刪除非字母和非數字字元,包括空格也要刪掉。最多保留6位字元 如果適用自定義Match Rule,City的match method需要是fuzzy

San Francisco = sanfra

首先先將空格去掉,然後全部小寫,最後保留前6個字串

Rome = rome

如果不到6位的字串則完全保留

Company 針對縮寫的公司名稱先變成全稱,將所有的字元小寫,刪除字尾字串,比如Corporation, Incorporated, Inc, Limited, and Ltd等。移除and, the , of這種單詞。移除特殊字元和accent. 同上。

IBM = international business machines

Intel Corp. = intel

First Name 如果適用的情況下,將名字替換成別名。移除dear,sir這種稱呼語,移除特殊字元。只保留第一個單詞的第一個字母並且將字母小寫。 同上。

Dr. Jane = j

Dr是稱呼語,所以刪掉,Jane的首字母是J小寫以後為j

Mr. Bob= robert = r

Mr是稱呼語,Bob是robert的變形,可以理解成別名,所以Bot替換成Robert首字母為R小寫成r

Last Name  刪除特殊字元和字尾,將連續的相同的子音字母替換成單個的子音字母(b,c,d,f等)。將第一個字母小寫。在上述操作標準化以後,使用雙變音演算法(double metaphone)用來規避拼寫錯誤和拼寫變體情況。  同上。  

O’Reilly, Jr. = oreily (without double metaphone)

O’Reilly, Jr. = oreily = arl (with double metaphone)

Email  刪除部分字串。例如下劃線和點(.),保留@字串  只適用於標準的Match Rule  [email protected] = johndoe@salesforcecom
Phone  刪除所有的非字母和非數字字元,針對美國的電話號碼,將字母字元轉換成數字字元並刪除國際電碼。刪除後4位小數。  如果適用自定義的Phone,match method需要Fuzzy  

1-800-555-1234 = 800555

44 20 0540 0202 = 44200540

Street Address  刪除所有的字元除了連線符。刪除所有的禁用詞,比如Avenue和Street等。取前兩個單詞(token)的前5個字串  同上  

123 Ocean View Avenue = 123ocean

567 Fifty-fourth St. = 567fifty

Website  刪除協議名稱(http/https),刪除子域(www),刪除檔案路徑。取2個或者3個的單詞(token)  只適用於標準的Match Rule  

http://www.us.salesforce.com/product = salesforce.com

http://www.ox.ac.uk/ = ox.ac.uk

 當我們規範化完以後,我們將根據規則來確定哪些欄位和哪些字串用於match key裡面。

1代表在match key裡面的欄位。

2代表在match key裡面的單詞或者token的數量,沒有單詞數量則所有單詞全新增。

3代表在match key裡面的單詞的字元數,沒有單詞則字元全算。

4代表著在match key裡面的其他的欄位。

下面可以通過1個例子直觀的展示match key如何操作以及如何生成。

FIELDS Matching Method Match Blank Fields
Company Fuzzy(Company) Yes
Email Exact Yes
Phone Fuzzy(Phone) Yes

Matching equation為(Company OR Email) ANDPhone這邊有兩條資料:

Company  Email Phone
 Elite Sport  [email protected] 1-415-555-1235
 Elite Sports  [email protected] 1-415-555-1234

第一步,轉換成AND模式: (Company OR Email) AND Phone = (Company AND Phone) OR (Email AND Phone)第二步,規範化需要匹配的欄位的值。針對第一條:company: Elite Sport -> elite sportEmail: [email protected]Phone: 415555針對第二條:company: Elites Sports -> elites sportEmail: [email protected]

Phone: 415555

第三步,生成matching key.

針對第一條會生成兩個matching key

Company(2,5) Phone = elitesport415555

Email Phone = [email protected]

針對第二條會生成兩個matching key

Company(2,6) Phone = elitessport415555

Email Phone = [email protected]

這兩條資料儘管第一個key不完全匹配,但是第二個匹配,salesforce會認為這兩條時潛在的重複資料。

 

二. Duplicate Rule

 我們第一步用了大量的內容去描述Matching Rule的規則,其實Matching Rule一大部分作用是為了Duplicate Rule去服務。使用者更關心的是如果出現了Duplicate 資料要如何去處理。我們可以配置自定義的Duplicate Rule去配置給使用者關於重複資料的後續處理方式。

從下圖中我們可以看到Duplicate Rule配置時可以控制的選項。

1. Record Level Security: matching rule比較的範圍,是比較當前使用者有許可權的記錄還是所有的記錄;

2. Action區域可以選擇使用者基於Create / Edit操作時,針對Duplicate是要block建立還是在提出資訊情況下允許建立並且允許report;

3.Matching Rules選擇我們如何來確定兩條資料時matching的;

4. Conditions可以限制某些條件下才執行當前的Duplicate Rule,比如某些profile或者某些role才需要執行。

 效果展示:當我們active 針對lead的duplicate rule以後,修改了 lead1的資料,會提示以下的內容告訴你有重複的資料。

總結:本篇淺入淺出的講了以下salesforce中關於Duplicate的資料的管理方式。關於Matching Rule / Duplicate Rule的相關的limitation以及深層次的用法沒有涉及。感興趣的可以自行檢視。篇中有錯誤的地方歡迎指出,有問題歡迎留