Salesforceにおける非法人顧客情報の管理と「個人取引先」のリスクについて

By | February 13, 2021

前書き

SalesforceにおけるBtoBビジネスの顧客管理では法人情報を「取引先(Account)」に格納し、担当者情報を「取引先責任者(Contact)」に格納するのが定石です。

一方、SalesforceにおいてCまたはSmallBの顧客情報を管理する場合、複数の方途が存在します。

代表的な管理法としては、以下が挙げられます。

  • 「個人取引先(PersonAccount)」を利用する
  • “個人”という名前の取引先レコードを作成したうえで、C(SmallB)の情報は取引先責任者に格納する
  • 取引先と取引先責任者が1:1になるよう、C(SmallB)の情報を保存する
  • 取引先や取引先責任者とは別に専用のカスタムオブジェクトを作成&利用する

このうち、本記事でピックアップしたいのは「個人取引先(PersonAccount)」です。

Salesforceの導入支援ビジネスを行っていると、「Cの情報管理やSmallB(個人事業主など)の情報管理では『個人取引先』機能の利用が鉄板」と思い込んでいる方を少なからず見かけます。

しかしながら、本記事の結論を先に述べると、CまたはSmallBの顧客情報管理だからといって必ずしも「個人取引先」がベストプラクティスになるわけではないです。

「個人取引先」を利用すると、通常の取引先や取引先責任者を念頭に用意された一部の標準機能やアップデートの恩恵を受けることができなくなる(=SaaSの恩恵を受けられなくなる)上に、一度有効化すると二度と無効化できないため、DBに回復不可能なダメージが与えられます。また将来使いたいAppExchangeが出てきたとしても、個人取引先に対応していないため利用できないといった可能性も存在します。加えて、法人に対しては通常の取引先・取引先責任者を利用し、個人事業主や個人に対しては個人取引先を利用するといった並行運用を行っている場合、DB構造が異なる両者に常に対応する必要があるためその後の管理・開発工数が増大します

しかし現状、「個人取引先」のこうしたリスクが十分に理解されないまま、当該機能の導入に至っているケースが少なくありません。

そこで本記事では、以下の手順に沿って「個人取引先」のメリットとデメリットについて紹介していきたいと思います。

  1. 「個人取引先」の仕様を詳細に把握する
  2. 「個人取引先」のメリットとデメリットを明確化する
  3. 「個人取引先」を導入すべきか否かの基準を明確化する

また記事の末尾では、補足として以下の二つについても簡単にご紹介致します。

  1. 「個人取引先」を有効化した後、事実上の無効化を行う方法
  2. ユーザがサポートに対してケースを上げていないにもかかわらず勝手に「個人取引先」が有効化されてしまった特殊な事例

※本記事における「個人取引先」のメリットとデメリットは専ら”個人取引先を利用した場合のメリットとデメリット”を意味し、”個人取引先を有効化した場合のメリットとデメリット”を指すわけではありません。

「個人取引先」の仕様(概要)

通常、取引先と取引先責任者はそれぞれ別々のレコードとして扱われます。

それに対し、個人取引先の場合、一対の取引先レコード・取引先責任者レコードがセットで一つの「個人取引先」として扱われます。

例えば、ある個人取引先のメールアドレスがtest@gmail.comである場合、裏側では取引先のPersonEmail項目と取引先責任者のEmail項目の双方にtest@gmail.comの値が入った状態になっています。

一つの「個人取引先」の裏側に同一の値を有した取引先と取引先責任者のレコードが一つずつ存在するという仕様はSOQLからも確認可能です。

以下のように、同一の「個人取引先」に関する同一の情報を、取引先(Account)に対するクエリからも取引先責任者(Contact)に関するクエリからも取得できます。

「個人取引先」の仕様(詳細)

■GUI上でのレコードの確認

(同一の)個人取引先レコードは、取引先のリストビューと取引先責任者のリストビューの双方に表示されます。

ただし、いずれの導線をクリックしても画面の遷移先は取引先としての個人取引先レコードです。

■ページレイアウトの編集

個人取引先のページレイアウトは、「設定>オブジェクトマネージャ>個人取引先>ページレイアウト」から編集します。

※取引先や取引先責任者ではありません。

■アクションの追加

個人取引先のアクションの追加は、「設定>オブジェクトマネージャ>取引先>ボタン、リンク、およびアクション」から行います。

※個人取引先や取引先責任者ではありません。

■カスタム項目の追加

個人取引先のカスタム項目の追加は、原則として「設定>オブジェクトマネージャ>取引先責任者>項目とリレーション」から行います。

※個人取引先や取引先ではありません。

取引先責任者にカスタム項目を追加すると、同一設定でAPI参照名のsuffixが__cではなく__pcのカスタム項目が取引先に自動生成されます。

■リードの取引開始

リードの取引開始の仕様は以下の通りです。

  • 取引開始の時点で「会社名(Company)」項目が空白→「個人取引先(PersonAccount)」に変換される
  • 取引開始の時点で「会社名(Company)」項目が空白でない→「法人(BusinnessAccount)」に変換される

以下のスクリーンショットからも読み取れる通り、個人取引先にコンバートする場合、「取引先責任者(Contact)」へのマッピング・マージ設定は不要です。

■名寄せ(マージ)

個人取引先は個人取引先とのみマージ可能です。

  • 個人取引先と取引先をマージすることはできません。
  • 個人取引先と取引先責任者をマージすることもできません。

■データインポート(データローダ)

データローダで個人取引先をインポートする場合、CSVのRecordTypeId列に個人取引先のレコードタイプIDを入力したうえで「取引先(Account)」に対してInsert/Upsertをかけます。

上記でレコードタイプIDを入力しない場合、デフォルトで法人取引先としてインポートが実行されます。

なお、「取引先責任者(Contact)」を狙うと「個人取引先は選択できません」エラーが発生します。

データインポート(データインポートウィザード)

データインポートウィザード起動後、標準オブジェクトの一覧から「個人取引先」を選択します。

以降、画面の案内に従えば問題ありません。

「個人取引先」のメリットとデメリット

■個人取引先のメリット

  1. 取引先向けと取引先責任者向けの双方の機能を利用できる
  2. (個人取引先を利用せずに上記を再現しようとした場合と比べて)開発の工数が減少する
  3. (個人の情報を取引先と取引先責任者で重複管理する場合と比べて)重複管理や同期、キーの問題を解決できる。

■個人取引先のデメリット

  1. システムが複雑化する:個人取引先向けの設定・ロジック・制御が増大する分、システムが複雑化します。
  2. (関連するロジックがある場合)開発の工数が増大する:通常の法人取引先向けの開発と個人取引先向けの開発を別々に行う必要があるため、開発工数が増大します。
  3. 保守の工数が増大する:通常の法人取引先向けの設定変更と個人取引先向けの設定変更を別々に行う必要があるため、保守運用の工数が増大します。
  4. 一部の標準機能が利用できない:取引先階層に入ることができない・取引先責任者を参照することができないなど。
  5. データ容量を倍消費する:1個人取引先辺り2レコード(取引先・取引先責任者)を消費するため、レコード数次第では組織のデータ容量制限を考慮に入れる必要があります。
  6. 個人取引先に対応していない(orしていても色々と面倒な)AppExchangeが一部存在する:例えば、AccountEngagementのスコアリングカテゴリは個人取引先をサポートしない
  7. 名寄せが困難:個人取引先は取引先や取引先責任者とマージできないため、それらとの名寄せは困難です。ここから、同一顧客に重複してアプローチしてしまう・複数レコードの情報を追いかける必要があるといった様々な問題が派生的に発生します。

「個人取引先」を利用すべき場合・避けるべき場合

■個人取引先を利用すべき場合

  1. 「法人取引先と個人取引先を利用するアクターが異なる」・「法人取引先と個人取引先でSF上の業務フローが異なる」など、法人取引先と個人取引先が同一の業務プロセスに載らない場合:法人と個人で業務プロセスが異なる場合、個人取引先の利用に関わらず結局それぞれの業務に応じた機能開発・保守を行うことが多い(=「個人取引先のデメリット」に挙げた問題がどの道発生する)ので、個人取引先を利用してそのメリットを享受した方がよいです。
  2. 個人別の数値集計を取引先責任者ではなく取引先単位で行う必要がある場合:“個人”という取引先を準備して、そこに各個人の情報を取引先責任者として紐づける構造の場合、個人単位での売上集計などは取引先責任者単位でしかできません。それで問題があるという場合は、個人取引先を利用した方がよいです。
  3. 個人取引先が別々の取引先として独立していないと何らかの不都合が生じる場合:取引先と取引先責任者の双方に関連するロジックを組んでいる場合など、異なる個人が同一の取引先に紐づいていると不都合が生じる場合は、問答無用で個人取引先を利用した方がよいです。過去に実際にあった事例としては、同じ取引先に紐づく(実際は別の会社に所属する)取引先責任者をコミュニティユーザとして有効化したところ、Portal User Implicit Sharingにより同じ取引先に所属する別の取引先責任者が全て参照できるようになってしまった、ということがありました。
  4. 自社顧客の大半が個人である場合:自社顧客の大半が個人である場合、「個人取引先のデメリット」に挙げたような法人顧客管理との競合リスクが存在しないため、個人取引先を利用した方がよいです。
  5. 扱う個人情報の数が多い場合:”個人”という取引先レコードに取引先責任者として個人を紐づける方法をとった場合、取引先責任者レコードの数が1万を超えるとパフォーマンスの懸念が出てきます。なお、”個人(東京都)”・”個人(神奈川県)”のように県単位で取引先レコードを分けたり、”個人(東京本社)”・”個人(大阪支部)”のように取扱支店単位で取引先レコードを分けるなどの回避策もあります。

■個人取引先を避けるべき場合

  1. 自社顧客の大半が法人で、個人取引先の顧客情報管理・営業管理の重要度が低い場合:自社顧客の大半が法人で、個人の取引先が少数である場合、「”個人”という名前の取引先レコードに各個人を取引先責任者として紐づける」手法を取ると、法人取引先と全く同様のDB構造・運用フローで個人を扱うことができます。逆にこのケースで個人取引先を利用すると、法人取引先と個人取引先の二重管理・二重運用・二重開発のコストが発生してしまいます。
  2. 法人取引先と個人取引先が同一の業務プロセスに載る場合(でなおかつ両者を切り分けるべき明確な要件が存在しない場合):「法人取引先と個人取引先の二重管理・二重運用・二重開発コスト」の問題から、積極的な理由がないのであれば、個人取引先を利用しない方がよいです。

「個人取引先」を有効化した後、事実上の無効化を行う方法

「個人取引先」の機能そのものは一度有効化すると二度と無効化することはできませんが、Salesforce上から「個人取引先」を利用するための導線を全て削除することで事実上の無効化を行うことが可能です。

各プロファイルの「レコードタイプの設定の編集」で”個人(Person Account)”の割り当てを外しましょう。

「取引先データのインポート時に、レコードタイプIDを入力しないとデフォルトで法人取引先としてインポートされる」などの仕様もあるため、基本的に導線さえ消してしまえばエンドユーザに個人取引先有効化の影響は残りません。

ユーザがサポートに対してケースを上げていないにもかかわらず勝手に「個人取引先」が有効化されてしまった特殊な事例

一般的に、Salesforceの本番組織はトライアル組織が存在する場合、そのトライアル組織のエディション拡張・ライセンス付加という手順で作成されます。

従って、以下のような場合、意図せず「個人取引先」が有効化されてしまう可能性があります。

  • 個人取引先が最初から有効化されている製品のトライアルを申し込み、その際に利用したメールアドレスと同一のメールアドレスで、Salesforceの初回製品購入の申し込みを行ってしまった場合
  • トライアル期間中に個人取引先を有効化してしまった場合

わたしが実際に見たことがあるのは以下のような事例です。

  1. 企業の決裁者が、自身の企業メールアドレスを利用してFinancialServiceCloudのトライアルを申し込む(※FinancialServiceCloudでは最初から個人取引先が有効化されている)
  2. Salesforceのライセンス契約が決まる
  3. 企業の決裁者の企業メールアドレス宛てに「Salesforceへようこそ」メールが届き、ログインしてみると、その組織には最初から契約していないFinancialServiceCloudの管理パッケージがインストールされ、個人取引先が有効化されていた

この記事を読まれている方には無縁の問題かと思いますが、将来もしかすると同様の問題で困るお客さまが出てくるかもしれないので気をつけましょうノ

Author: Regardie

Salesforce & AWS Enthusiast.