Salesforceの標準オブジェクト・カスタムオブジェクト・リレーションを分かりやすく説明します

こんにちは

今回はSalesforceを勉強する人がおそらく一度は訪れるであろう疑問
「標準オブジェクトってなんだ？」
「リレーションってなんだ？」
「カスタムオブジェクトってなんだ？」
について解説します

今回の内容は動画でも公開しています

https://youtu.be/uNY3KWWVaxY

## そもそもオブジェクトってなんだ？

オブジェクトとはデータの箱　とよく色々な記事で書いてあります
サクセスナビの記事でもこのように書いてありますね

＞オブジェクトとは、"データを蓄積するための箱"を指します。会社情報や人情報など様々な顧客情報を格納することができます。

https://successjp.salesforce.com/article/NAI-000453

（いやいやデータを蓄積するための箱って結局なんだよ。と思う方いるかと思います（私も以前はそうでした。。）
（もしもオブジェクトって何だろう？という方がいらっしゃれば、私なりにSalesforce をエクセルで例えた記事がありますので、そちらもご参考いただければと思います。）

https://qiita.com/Takaa/items/fa7db2456889c3ce76c1

さて、そんな「データを蓄積するための箱」オブジェクトですが
・標準オブジェクト
・カスタムオブジェクト
の大きく２種類があります

### 標準オブジェクトってなんだ？
標準オブジェクトとは、「もともとSalesforceで用意されているオブジェクト」です
Salesforceは
・顧客管理
・商談管理
などに使われていますね
そのため、もともとSalesforceには
・顧客管理をする専用の標準オブジェクト(取引先オブジェクト)
・商談管理をする専用の標準オブジェクト（商談オブジェクト）
というオブジェクトが用意されています

この標準オブジェクトは（画面から極力見せなくすることは可能ですが）削除することはできません
つまり、どのSalesforce環境を見ても（使ってるや使ってないにこだわらず）
顧客管理をする専用の標準オブジェクト「取引先オブジェクト」はあります


### 主な標準オブジェクトの種類

主な標準オブジェクトを一覧にしました

![管理001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/8abdcb52-6799-8eb1-c82d-292985c36fe4.png)

商談＝商談情報　ということはだいたいイメージできるかと思いますが、
よく話題に上がるけど文字をみてもよく分からなさそうなのは「取引先」「取引先責任者」だと思います

### 標準オブジェクトの取引先と取引先責任者って何だろう？

取引先は
・取引先の企業情報
取引先責任者は
・取引先の担当者情報
というのはどういうことでしょうか

分かりやすいようにあなたはお客様訪問をして名刺情報を得たとしましょう

今回は「株式会社テスト」にあなたの会社は初めて訪問して田中太郎さんの名刺をゲットしたと想定しましょう
![名刺001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/b6a8ee5a-e3ad-82b9-58a0-838c0cfaff3a.png)

この場合、名刺情報を入力する際、あなたは
・取引先オブジェクトのレコードの作成（※新規取引先の場合のみ）
・取引先責任者オブジェクトのレコード作成

を行います
今回の名刺でいうと、赤字部分が
・取引先オブジェクトに入力する情報（会社「株式会社テスト」情報）
青字部分が
・取引先責任者オブジェクトに入力する情報（田中太郎の情報）
となります


![名刺002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/8585a2cd-95de-df8b-97e2-fd3003f62755.png)

これはSalesforceに入力すれば以下のようになります

![取引先.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/d90cce02-8eda-e49b-e552-c0fe97667687.png)

これを見ると
・なんで１つの名刺情報をSalesforceでは取引先と取引先責任者に分けて管理するのか
と疑問がわくかと思いますが、この疑問は後ほど説明します



そして、もしも次に株式会社テストに訪問をして鈴木次郎さんの名刺をもらったとしましょう
あなたは鈴木次郎さんの情報もSalesforceに入力したいですね

![鈴木次郎.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/5d66fc4e-2809-ede3-b5b9-fa27702c159e.png)

この場合、既に取引先には株式会社テストがあるので取引先責任者に鈴木次郎を作成します

作成後はこのようになります

![会社２.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/ad8d8968-f48d-fbb0-b33f-31a04fd7f95f.png)


### オブジェクトのリレーションについて確認しよう

よく見ると、
このように、Salesforceでは
・取引先と取引先責任者はつながっている
ことが分かります
このような設定だと「株式会社テストの情報を見ただけでどんな担当者がいるのか」がすぐに分かりやすいですね

参考としてエクセル管理方法だとこのような表になるので
「株式会社テストの担当者はだれがいるんだろう」というのはパット見て分かりにくいですね
![エクセル管理.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/82cd4de1-94c1-ce49-3215-0efc77498306.png)

しかしながらSalesforceは
・顧客の企業情報取引先に入力
・顧客の担当者情報は取引先責任者に入力
・取引先と取引先責任者にはつながりがある（リレーションがある）
ことから、取引先を見るだけでその取引先の担当者が確認することが容易です


そのため
「とりあえず株式会社テストの担当者に片っ端からメールしよう」
と思った場合、Salesforceで確認するとすぐに担当者の確認ができますね


なお、このようにSalesfroceでは標準オブジェクト同士つながりがあります
このつながりのことを「リレーション」と呼びます


※つながりっていうと分かりにくいのですが、スキーマビルダーという場所から確認すると取引先と取引先責任者では実際に腺で繋がっていることが分かります

![つながり.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/81126dc2-4f5f-cd1d-61f0-53eccc21d47b.png)


ちなみに他の標準オブジェクトでもデフォルトでリレーションがあるのが分かります

リレーションで分かりにくいのが
・どっちが親オブジェクトでどっちが子オブジェクトか
問題ですね

子オブジェクト側の特徴としては虫眼鏡のような項目があり親レコードを捕まえることができます
この虫眼鏡項目のことを「ルックアップ項目」と呼びます

親オブジェクト側の特徴としては「関連リスト」というものが表示され、そこに子レコードを確認することができます


リレーションは新しく作成することも可能です

リレーションには２つの種類のリレーションがあります
・主従関係
・参照関係
です
主従関係と参照関係の違いはこちらの記事や動画をご確認ください

https://youtu.be/cvMkX-L01b0

https://qiita.com/Takaa/items/67b7c837992074489f06


### カスタムオブジェクトについて

さきほど、いくつか標準オブジェクトを確認したと思います
企業情報の管理は一般的に取引先。
商談の管理は一般的に商談
と、特定の情報は標準オブジェクトで管理する　ということが分かったはずです

しかしながら、Salesfroceを使っていると、その会社特有の情報を入力オブジェクトが無い　という場合が発生します

例えばあなたの会社が不動産会社だった場合、「物件」情報をSalesforce
で管理したい　という悩みが出てくるかもしれません

もしもあなたが人事の採用担当者だったらSalesforceで「求人掲載」情報をSalesforceで管理したい　と思うかもしれないですね

その他、色々なデータをSalesforceで管理したくなるはずです

先ほど例を挙げたような「物件」を管理する標準オブジェクトや「求人掲載」を管理するオブジェクトは残念ながら標準オブジェクトには無いです
しかしながら、Salesforceでは新規でカスタムオブジェクトを作成することが可能です
また、カスタムオブジェクト同士でリレーションを作成することも、もちろん可能です

もしもSalesforceで管理したいデータが増えた場合、カスタムオブジェクトの作成も検討しましょう