重複レコードとSalesforce同期

重複レコードの問題

Salesforce側の同期でもPendo側の同期でも、重複したレコードが見つかった場合は、インテグレーションでどの重複レコードを更新し、どのレコードをスキップするかを決定する必要があります。重複レコードが確認された場合でも、同期は実行されますが、一部のレコードは更新され、他のレコードはスキップされます。一部のレコードが更新されたり、されなかったりすることで生じる混乱は、PendoとSalesforceのレコード間で1対1で完全に一致することを確保することによってのみ解消されます。

1対1の照合の例

最初にインテグレーションをセットアップするときに、PendoのどのフィールドをSalesforceの対応するフィールドと照合させるかを選択できます。

sfdc-integration-mapping.png

上記の例では、PendoのVisitor ID(訪問者ID)とSalesforceの[Contact Object]のreal visitor idフィールドの値を照合しようとしています。この例では、Pendoの訪問者ID(Visitor ID)が1234の場合、SalesforceのContactには、real visitor idフィールドの値として1234を持つレコードが1つ必要になります。

重複照合の例

以下の例では、Pendoの訪問者のメールアドレスとSalesforceのContactのメールアドレスを照合しています。Pendoでは、メールフィールドは一意である必要はありません。つまり、Pendoの複数の訪問者に同じEメールアドレスが関連付けられている可能性があるということです。Salesforce側でも同様です。

SFDC-email-mapping.png

重複レコードのエラーメッセージ

インテグレーションをセットアップするときに、重複レコードが見つかったことを示す通知が表示される場合があります。これは、マッピングに使用するために選択したフィールドに同じ値を持つレコードが、Pendo側、Salesforce側、またはその両方に複数存在することを意味します。重複レコードがあっても、同期が完全に失敗するわけではありませんが、一部のレコードが同期でスキップされます。

スキップされるレコード

同期を実行すると、Pendoはレコードが重複する2つのテーブルを作成します。1つのテーブルにはPendoで見つかった重複レコードが含まれ、1つのテーブルにはSalesforceで見つかった重複レコードが含まれます。同期は重複レコードを比較して、最も小さい番号のレコード(フィールドが整数の場合)を選択して更新します。他の重複レコードはスキップされます。フィールドが整数でない場合は、「文字列比較」と呼ばれるプログラミング技法を使用して、どのレコードが「下位」かを判別します。比較しているIDが数値でない場合、どれが更新され、どれがスキップされたかの結果が、ランダムに見えることがあります。

この問題の解決方法

重複する値の問題を解決するためにできる最善の策は、両方のシステムで重複が最小限に抑えられるようにすることです。そのためには、一意性が要求されるフィールドでの同期を選択します。Pendo側では、Account ID(アカウントID)フィールドとVisitor ID(訪問者ID)フィールドの両方で一意性が要求されます。つまり、重複して作成することはできません。Salesforceでも、一意性を要求しているフィールドを選択できる場合があります。また、PendoおよびSalesforceの管理者と協力して重複を特定し、削除することもできます。