Salesforceの主要な標準オブジェクト

# これは何？
この記事は「[24日後に立派なSalesforceエンジニアになるWEBエンジニア Advent Calendar 2022](https://qiita.com/advent-calendar/2022/kakakaori)」の２日目の記事です。
23日後に立派なSalesforceエンジニアになるために今日は主要な標準オブジェクトについて学びます。

# SalesCloud周り
![sales-cloud-overview-data-model.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200812/f163c934-ba61-6b04-311f-1c96737b2c57.png)
参考：[セールスアプリケーションに関するオブジェクト](https://developer.salesforce.com/docs/atlas.ja-jp.240.0.object_reference.meta/object_reference/sforce_api_erd_majors.htm)

## 取引先（Account）
自社と取引をする企業情報。
法人だけではなく個人事業主やBtoCの顧客も「個人取引先」として取り扱うことができる。ただしこの個人取引先については「個人取引先」という別オブジェクトがあるわけではなくて取引先と取引先責任者が1対1で紐づいた状態を指している。なので個人取引先を生成すると取引先に１レコードと取引責任者に１レコード生成される。個人取引先については詳しくは[こちら](https://help.salesforce.com/s/articleView?id=sf.account_person_behavior.htm&type=5)に記載あり。

## 取引先責任者（Contact）
取引先に所属する従業員の属性情報。
[取引先責任者-to-複数取引先](https://help.salesforce.com/s/articleView?id=sf.shared_contacts_set_up.htm&type=5)の設定をオンにすることで1人の取引先責任者を複数の取引先に紐づけることも可能。今まではサポートに問い合わせないとこの設定を有効化できなかったけど、Salesforce Summer '22のアップデートで[設定画面から設定](https://help.salesforce.com/s/articleView?id=release-notes.rn_sales_accounts_enable_person_accounts.htm&type=5&release=238)ができるようになった。からちょっと試してみやすい気がする。

## リード（Lead）
見込み顧客に関する情報。
リードが取引開始されるとリード非表示になって新たにリードの時の情報を継承した取引先・取引先責任者・商談レコードが作成される。一度取引開始すると元に（リードに）戻せない。
標準項目はそれぞれの項目ごとに取引先・取引先責任者・商談のどの項目になるのかマッピングされているが、リードに作成したカスタム項目は事前にどのオブジェクトのどの項目に持っていくかのマッピングを行なっておく必要がある。このマッピングを行っていないとリードが取引開始された時に情報が継承されないので注意。

## キャンペーン（Campaign）
イベントや展示会などのマーケティング活動に関する情報。
キャンペーンごとにかかった費用や、発生したリードの数、商談数、商談成立数などを管理することができる。
またキャンペーンは階層化することができ、階層内の統計情報を表示してマーケティング活動をより効率的に行うことができる。

## キャンペーンメンバー（CampaignMember）
そのキャンペーンに参加するリード、取引責任者、個人取引先をキャンペーンの参加者としてキャンペーンメンバーへ登録ができる。

## ケース（Case）
お客さんからの問い合わせや、それに対してどういう対応を行なったかの情報をもつ。
Web-to-ケースやメール-to-ケースの機能を使うことで、フォームやメールからの問い合わせを自動的にケースとして起票することができる。

# 商品と価格表
![sales-cloud-product-price-book-data-model.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200812/c756a2e7-e5c5-9032-7373-0c63a6a8af26.png)
参考：[商品と価格表オブジェクト](https://architect.salesforce.com/diagrams/template-gallery/sales-cloud-product-price-book-data-model)

## 商談（Opportunity）
取引先、販売商品、商談成立時の売上予定額などの情報を持つ。
商談には複数見積もりを紐づけることができる。紐づけた見積もりのうち1つを同期見積もりとすることができ、同期することで見積もりに紐づいた商品や価格の情報が商談に紐づいた商品や価格の情報と連動するようになる。
また商談には複数の商品を紐づけられるが、同じ価格表の商品でなければいけない。

## 見積もり（Quote）
商談の見積もり情報で[見積もり機能を有効化](https://help.salesforce.com/s/articleView?id=sf.quotes_enable.htm&type=5)しなきゃ使えない。
見積もりを出すときには価格表を選び、その中から商品を選んで追加する。見積もり段階でさらに商品ごとにディスカウントすることもできる。
見積もりはPDFとして出力してメール送信でき、PDFのフォーマットはカスタマイズも可能。

## 見積品目名（QuoteLineItem）
見積対象の商品情報。

## 商品（Product2）
販売する商品のマスタとなる情報。商品には商品ファミリを設定することができて商品の分類ができる。
商品自体には価格を持っておらず価格表に紐づけることで価格を管理する。

## 価格表（Pricebook2）
価格表には標準価格表とカスタム価格表がある。
- 標準価格表：すべての商品とそのデフォルト標準価格のマスタリスト
- カスタム価格表：リスト価格と呼ばれるカスタム価格を含む、個別の商品のリスト

カスタム価格表は「エンタープライズ版価格表」「トライアル価格表」とかそういう使い方に良さそう。
また価格表と商品・商談・通貨の関係は
- １商品：N価格表
- １商談：１価格表
- １価格表：N通貨

## 価格表エントリ（PricebookEntry）
価格表と商品をつなぐのが価格エントリ。価格表を選んでそこに商品と価格を登録していくと自動的に価格エントリレコードが生成される。単価を管理している。

## 契約（Contract）
２社以上の書面合意を管理する。
契約終了日の自動計算や、契約終了通知メールを取引先と契約所有者に送信する、契約状況の履歴が確認できる機能がある。商談などに比べると標準で用意されている機能は少なめな印象。

# ToDoと行動
![platform-tasks-events-data-model.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200812/c2c35d42-70a9-4873-578b-31c764eaa914.png)
参考：[ToDo オブジェクトと行動オブジェクト](https://developer.salesforce.com/docs/atlas.ja-jp.240.0.object_reference.meta/object_reference/sforce_api_erd_activities.htm)

## 活動（Activity）
電話や対面アポイントなどの顧客接点におけるさまざまな営業活動情報を記録する。
上記の図を見るとわかる通り、活動には ToDo（Task）・行動（Event）が含まれている。ToDoや行動にカスタム項目を追加する場合は、活動オブジェクトに追加をする。
また活動の中には「活動予定」と「活動履歴」があるがこれはActivityDate（ToDoでいう「期日」、行動でいう「開始日時」）が過去か未来かで分類される。つまり未来の行動は「活動予定」、過去の行動は「活動履歴」と呼ばれる。
ちょっと特殊なオブジェクト。

## ToDo(Task)
活動のうち、期日や進捗管理管理があるもの。ToDoは期日を過ぎても自動的に完了にならず、担当者が明示的に完了にする必要がある。

## 行動（Event）
活動のうち、開始日と終了日があるもの。行動は期日（終了日）を過ぎたら、自動的に完了になる。

# まとめ
今日はSalesforceを扱う上でよく出てくる標準オブジェクトについて学びました。
明日はBigObjectsについて学んでいきます。