Salesforceの基本となるオブジェクトについてざっくりまとめる

[Ateam Finergy Inc. Advent Calendar 2021](https://qiita.com/advent-calendar/2021/ateam-finergy/)の12/24を担当します@Adacchi3です。事業としては[ナビナビ保険](https://www.navinavi-hoken.com/)を担当させていただいてます。

---

# はじめに

私は2021年9月からSalesforceの開発・運用にJOINさせていただきました。それまではあまり携わっておらず、Sandbox環境にアカウントを作成していただいていたので確認する機会があり、Leadっていうオブジェクトがあって、設定にいろいろな項目があるっていう認識でした。

そんな私がSalesforceの基本のキに当たるオブジェクトについて紹介していきます。

---

# そもそもSalesforceとは

Salesforceは、顧客に対するセールス、サービス、マーケティング、分析、つながりを促進するために設計されたカスタマーサクセスプラットフォームです。[^1]カスタマーリレーション管理（CRM）や営業支援（SFA）が主な機能であり、AppExchangeで必要なアプリケーションをインストールしたり、EinsteinやPardotなどを追加したりすることで、さらに機能を拡張できます。

[^1]: https://trailhead.salesforce.com/ja/content/learn/modules/lex_implementation_basics/lex_implementation_basics_welcome?trail_id=crm-essentials-lightning-experience&trailmix_creator_id=welcome20400&trailmix_slug=mastering-salesforce-for-finergy-engineer/

今回はカスタマーリレーション管理にフォーカスしていきます。カスタマーリレーション管理、略してCRMです。取引先やリードを管理し、どのような活動をしていて商談が進み、どのような商品を契約できたのかといった情報を管理しています。

---

# 標準オブジェクト

Salesforceでは、取引先やリード、商談、といったモノをオブジェクトと定義しています。データベースのテーブルのようなものです。取引先のAさんやAさんとの商談といったテーブルの行をレコード、名前や電話番号といったテーブル属性を項目と呼んでいます。

標準オブジェクトは、Salesforceが標準で用意してくれているビジネスで必要なオブジェクトのことを指します。下記に主な標準オブジェクトを紹介していきます。

---

## 取引先

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206630/024e5c8e-880d-70c8-5a60-2163a09b863a.png" width="50%" alt="account.png">

CRMで中核となるオブジェクトは取引先オブジェクト（Account）になります。取引先は個人取引先や法人があり、toC/toBに対応できます。取引先オブジェクトには、名前や電話番号、メールアドレス、住所といった項目を管理できます。取引先のレコードを作成する方法としては、フォームにデータを入力して作成する方法と、リードを取引先にコンバートする方法があります。

Salesforceを学習する教材にTrailheadがあり、そこで最も重要なオブジェクトであると示されています。[^2]

[^2]: https://trailhead.salesforce.com/ja/content/learn/modules/accounts_contacts_lightning_experience/accounts-and-contacts-lightning/

---

## 取引先責任者

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206630/48e98724-f4bd-cbbb-040f-1091191f83a6.png" width="50%" alt="contact.png">

取引先を法人でレコード作成していた場合、営業の方はいったい誰とやり取りすれば良いでしょうか。ここで登場するオブジェクトが取引先責任者（Contact）になります。文字通り、取引先の責任者になります。取引先と取引先責任者との間にリレーションを付けることで、法人取引先での担当者を確認できるようになります。

---

## 商談

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206630/c96e6ccc-2164-674d-410b-55d08215349f.png" width="50%" alt="opportunity.png">

商談（Opportunity）は販売または保留中の取引である商談を記録するオブジェクトになります。具体的には、誰とどの商品について商談して、どのフェーズでやり取りを終えたのかを記録します。商談が成立、または不成立フェーズ等になるまで1つのレコードで追跡していきます。

---

## リード

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206630/554c4c82-921c-2101-57fc-bf3fd83ff8aa.png" width="50%" alt="lead.png">

リードは、潜在層に当たる顧客や会社を記録するオブジェクトになります。リードに対してフォローアップしていき、商談できるステータスになったら、取引先にコンバートします。このとき、そのリードは取引開始済みリードとなり、権限を付与していない限りはリードとして検索できなくなるので、注意が必要です。

リードには状況という項目があり、商談のフェーズと同じように取引開始済みまでの状況を1つのレコードで追跡できます。

---

## オブジェクトの関連図

上記の標準オブジェクトの関連を図にざっくり表すと以下のようになります。取引先や取引先責任者、商談は他にもいろいろなオブジェクトと関連していきます。

![zu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206630/564bf85b-2ba1-a72b-9658-6c93301363b0.png)

---

# カスタムオブジェクトとカスタム項目

会社や業種によっては、標準オブジェクトだけでは管理できない情報があったりします。そうした場合に使うのがカスタムオブジェクトです。カスタムオブジェクトは、会社や業種に固有の情報を保存するために独自にカスタマイズできるオブジェクトになります。データベースでいうところのテーブル定義ができるものになります。

標準オブジェクトに項目だけ新規追加したいという案件もあるでしょう。そうした場合にはカスタム項目を使います。標準オブジェクトやカスタムオブジェクトに項目を容易に追加できます。

---

# オブジェクトの管理

標準オブジェクトにカスタム項目を追加したり、カスタムオブジェクトを作成したりする方法として、オブジェクトマネージャとスキーマビルダーの2つあります。

オブジェクトマネージャは、個々のオブジェクトを管理する際に使ったりします。オブジェクトのページレイアウト、コンパクトレイアウト、ボタンの作成等もオブジェクトマネージャからオブジェクトを選択して実施します。

それぞれのオブジェクトの関連を視覚的に把握したい場合にはスキーマビルダーがおすすめです。オブジェクトをER図のように表示し、編集ができるため、複雑なオブジェクトの設計・把握にうってつけです。

---

# SalesforceデータAPI

標準オブジェクトやカスタムオブジェクトのレコードの新規作成を機械的に行いたい、レコードの更新を機械的に行いたいといった案件があるでしょう。そうした際に役に立つのがSalesforceデータAPIです。SalesforceデータAPIはREST API、SOAP API、Bulk API、ストリーミングAPIをまとめた総称です。

契約しているライセンスごとにAPIの制限があったり、それぞれのAPIごとに特長があったりします。本番環境で実施する前に一度Sandbox環境やTailhead Playground等で試してみることをおすすめします。

[Lightning プラットフォーム API の基本](https://trailhead.salesforce.com/ja/content/learn/modules/api_basics/)のTrailheadのモジュールでは、Trailhead PlaygroundでWorkbenchやSoap UIを用いてREST APIやSOAP API、Bulk APIに手を動かしてレコードを新規作成するテストがあるので、より理解が深まると思います。

---

# おわりに

データモデルを制するものがすべてを制する。Salesforceの基本のキに当たるオブジェクトについて、ざっくりまとめました。

実業務では、カスタム項目の追加、レコードの参照権限の制御、ページレイアウトの変更等を対応していますが、Salesforceの基本を押さえておくことが大事なんだなぁと痛感しております。

引き続きTrailheadでSalesforceについて理解を深めていきたいと思っております。