
Salesforceで商品管理をされている皆さん、こんなお悩みはありませんか?
- 商談と商品、価格表エントリ、価格表など多くのオブジェクトがあるのでわかりにくい
- オブジェクトの関係性が理解できていないことからエラーが起きてしまう
- 複数のオブジェクトに同じ数値を何度も登録するなど手間がかかっている
本ブログでは、商談商品のオブジェクトの関係性をわかりやすく解説していきます。
商談商品の項目を使いこなせるようになることで、以下のメリットがあります。
- レコード登録時の必須項目がわかりやすくなり、作業がスムーズになる
- 誤入力が減り、確認作業や再入力による時間を削減できる
また商談商品の管理でMashmatrix Sheetを活用することで、以下のメリットが生まれます。
- 一括でのメンテナンスがしやすくなり、さらに効率化がはかれる
- 複数のオブジェクトに同じ数値を何度も登録するなどの手間が省ける
- すでに Mashmatrix Sheet をお使いの方は、連動シートやフィルタ機能の使い方テクニックも身につく
少し長めの記事となりますが、ぜひ最後までご覧ください。
そもそも商談商品オブジェクトとは?
Salesforceの商談商品(API名:Opportunity Product)オブジェクトは、商談(Opportunity)に関連する具体的な商品情報を管理するためのオブジェクトです。主に商談プロセスで販売される商品やサービスを追跡し、商談の収益を計算する重要な役割を果たします。
Salesforce上の商談のレコード詳細画面から関連リストを確認すると、商品が表示されていますが、実はこちらは『商談商品オブジェクト』のことで、『商品オブジェクト』のレコードとは異なります。
実際、商談商品と商品とでオブジェクトのアイコンの種類も異なります。
とても紛らわしいですね…。


オブジェクトマネージャーから確認すると、商談商品オブジェクトと商品オブジェクトがそれぞれ異なるオブジェクト名やAPIで存在することがわかります。

商品オブジェクト:商品そのものの情報
商談商品オブジェクト:商談のレシート
のような存在だと考えると、違いや役割を想像しやすいと思います。
実際にMashmatrix Sheet上でもシートの作成画面から確認してみると、商談商品と商品とで、それぞれにオブジェクトが存在することがわかります。


ただ、商談からの連動シートで商談商品を選択しようとすると商談商品であるのにSalesforceのレコード詳細同様、商品と表示されています。

これはSalesforce側に準じた仕様になっているためで、API名の違いで判断する必要があります。
スキーマビルダーから、Salesforce上でのオブジェクトの位置づけを確認しよう
スキーマビルダーとは?
Salesforce内にあるオブジェクトやそのなかの項目、そしてそのオブジェクト同士の関連性を視覚的に描写して理解するためのツールです。
オブジェクトをドラッグ&ドロップで配置し、どのようにリンクされているかを視覚的に確認することができます。これにより、データ構造の全体像が見やすく、必要な情報の流れを構築することが可能です。
※Salesforceのヘルプページ:
https://help.salesforce.com/s/articleView?id=sf.schema_builder.htm&type=5
商談と商談商品と商品の関係性は?
スキーマビルダー上で商談と商談商品と商品の関連性を表示します。

商談と商品の間を取り持つ役割を果たすのが商談商品オブジェクトです。Salesforce上やMashmatrix Sheet上では、商品として表示されるオブジェクトが実際に商談商品オブジェクトであるということがあります。
異なる表記やシステム上の表示名の違いがある場合でも、商談商品オブジェクトは商談と商品を適切に関連付けるための中間オブジェクトとして機能し、データの一貫性や統合性を確保します。
価格表と価格表エントリとの関連性は?
商品価格を管理するために、価格表オブジェクト、そして価格表の種類を管理する価格表エントリオブジェクトがあります。
ここで、スキーマビルダーでオブジェクト同士の関連性を確認してみましょう。

価格表は価格表エントリと紐づいているのはもちろん、商談にも紐づいています。
また、価格表エントリは商品と紐づいています。
以上のようなオブジェクト同士の関係性を理解することで、それぞれのレコードを適切に管理し、効果的に取り扱うことが可能となります。
この関係性をより簡単に表現し、関係性を活用して一覧表示や一括更新ができるのが、Mashmatrix Sheetの機能です。さっそく活用例を見ていきましょう。
Mashmatrix Sheetで商談商品オブジェクトを活用しよう
ケース1:商談に紐づく商品の一覧を確認する
Salesforceの標準オブジェクトで一つの商談レコードに対して紐づく商談商品を確認することができます。
しかし、他の商談レコードに紐づく商談商品を確認するには、一からレコード一覧や検索窓から商談の情報を探さなくてはなりません。
Mashmatrix Sheetの連動シート機能を活用すると、レコードの一覧からワンクリックで別の商談レコードに紐づく商談商品を確認することができるため、確認作業が驚くほど効率的になります。
それでは実際に設定方法を確認しましょう。
※参考:Salesforceの複数オブジェクトのデータを連動表示しよう!「連動シート」の利用シーンと活用法
https://www.mashmatrix.co.jp/blog/20200619-relatedsheet/
設定方法
1.商談オブジェクトのシートを作成する

2.1.で作成した商談オブジェクトシートの連動シートとして、商談商品のシートを作成する


<動画>
これで商談に紐づく商談商品を閲覧することができました。
活用Tips 1:シートの閲覧者が所有者になっている商談と関連する商談商品だけを確認できるようにする
閲覧者が所有者でフィルタをかけたり、ビューを設定して保存することなく、シート上でレコード情報を確認することができます。
設定方法
1.上記で作成した商談シートの「▼」マークを押して設定を開きます

2.フィルタタブに移動し、表示するレコードを『すべてのレコード』から『私のレコード』に変更してから保存をクリック

3.所有者がシートの閲覧者であるレコードのみが表示されます
※シート及びブックの設定は作成者のみが可能ですので作成者が設定等の作業を行ってください
ケース2:商談に紐づく商品を追加しよう
設定方法
1.商談シートと商談商品シートでPrice Bookを表示し、商談側でPrice Bookを登録する
価格表オブジェクト、価格表エントリオブジェクトでも説明したように、
商談オブジェクトにあるレコードの詳細に登録されている情報は、様々なオブジェクトの関連した情報が連携された上で成り立っています。
Salesforceから商談商品のレコードを登録する際、はじめに必ず価格表を選択する流れがあるため、作業をするうえで意識はされませんが、Mashmatrix Sheetからのレコード登録を実施するとなると、より一層意識する必要があります。

<動画>
(a)Mashmatrix Sheet 商談シートの項目追加で、Price Bookを選択します

(b)商談商品シート側では、価格表エントリの中にPrice Bookが入っているので、選択して追加します


【注意!】
商談シートの価格表名が、Typical Price Bookと入力されているレコードを選択したまま商談商品を登録してみます。そうすると登録ができません。
<動画>
また、試しにPrice Bookが登録されていない商談を選択し、商談商品を登録すると問題なく登録ができ、価格表エントリ:Price BookにStandard Price Bookが表示されました。
<動画>
原因は、連動シートの作成時に商談商品側のデフォルトで価格表が自動的に標準価格表(Standard Price Book)で設定されており、商談に紐づく価格表と連動していないからです。
<動画>
この現象は、商談シート側のレコードで価格表を登録することに加え、Mashmatrix Sheetのルックアップ検索の機能を活用することで解決することができます。
2.連動シートの商談商品シート側の商品列「▼」ボタン→設定を開く

3.ルックアップ検索条件の一番下
「Price Book」 「次と等しい」
「シート」「 商談」 「列」「 Price Book」 の「選択されたレコードの値」
を設定して保存をクリック
<動画>

価格表エントリで検索を選択し、その中で実際に価格表項目が対応しているか、列を追加して確認します。



すべてTypical Price Bookと表示されましたので、登録したい商品にチェックを入れて、選択ボタンをクリックします。

そして、数量と販売価格を入力して保存ボタンを押すと…

無事に価格表エントリにも対応した商品を、該当の商談に追加することができました。
<動画>
活用Tips 2:取引先のLightningレコードページに先ほど作成したMashmatrix Sheetのブックを埋め込む
商談や商談商品を登録できるようにすることで、商談の詳細レコードページを一つ一つ開くことなく、商談や商談商品を一気に登録することができます。
設定方法
1.商談オブジェクトシート側で取引先IDの項目を追加し、フィルタをかけて『関連したレコード』に設定します

2.ブックの設定を開いてIDをコピーします

3.取引先オブジェクトのLightningレコードページを編集し、カスタムコンポーネントとしてブックを埋め込んでください
<動画>
これで、取引先のLightningレコードページに、Mashmatrix Sheetのブックを埋め込むことができました。
※参考:Salesforce Lightning Experience 環境の方にオススメ!
「Sheet コンポーネント」でレコードページから関連レコードを一括編集しよう
https://www.mashmatrix.co.jp/blog/20210422_sheetcompornent/
まとめ
今回は、Salesforceの商談商品に関連するオブジェクト構造を解説するとともに、Mashmatrix Sheetと商談商品オブジェクト、オブジェクト同士の関連性を活用して、商談に商品を新規で登録する方法をご説明しました。
各機能に関する詳細は、ユーザーガイド(参照値/フィルタ/連動シートの作成の項)もご参照ください。
それでは最後までご覧いただき、ありがとうございました。
次回の【商談商品マスター その2】では以下の内容をお届けする予定です!
- 販売価格と数量を入力した時点で合計価格を表示させる方法
- 価格表エントリに登録している販売価格を商談商品にも自動入力する方法
これらの方法をマスターすることで、さらなる業務効率がはかれます。
どうぞお楽しみに!
ーーーーーーーーーーーーーーーーーーーーー
SalesforceをExcelライクに快適データ入力しませんか?
ーーーーーーーーーーーーーーーーーーーーー