変数とデータ要素を組み合わせる
学習の目的
この単元を完了すると、次のことができるようになります。
- 一部の要素によって生成される変数を使用する。
- フローで使用するために Salesforce レコードからデータを取得する。
- [レコードを作成] 要素と [レコードを更新] 要素でレコード変数を使用する。
要素によって生成される変数
フローにおいて変数は非常に有用ですが、フロー内の個々のデータ値に対して変数を作成しなければならなかったら、変数の作成にうんざりするに違いありません。幸い、一部のフロー要素では固有の変数が作成されるため、ユーザーが作成する必要はありません。このような変数には、作成元要素に対応して [Record type] from [API name]
という表示ラベルが付けられているため、常にその変数がどこで作成されたものかがわかります。
たとえば、取引先レコードを取得する [Get Records (レコードを取得)] 要素があり、その API 参照名が Get_Latest_Contact の場合、その要素で作成されるレコード変数の表示ラベルは Contact from Get_Latest_Contact
となります。
[Get Records (レコードを取得)] 要素とそのしくみ、さらに変数がどのように作成されるかを見ていきましょう。
1 つのレコードから値を取得する
Flow Builder で行うほぼすべてのことにデータが必要です。フローは Salesforce レコードデータにアクセスできますが、どのデータを取得するかを指定する必要があります。レコードの値は一時的に保存され、それ以降のフロー内で使用できます。
Salesforce レコードからデータを取得するには [Get Records (レコードを取得)] 要素を使用します。[Get Records (レコードを取得)] 要素のしくみについての次の動画をご覧ください。
レコード値を取得するときには、1 つのレコードまたはレコードのコレクション全体からのすべての項目値を取得できます。取得した値は 1 つの変数に保存されます。
例を見てみましょう。Pyroclastic, Inc. では、商談に関する重要な取引先責任者を、関連する [商談取引先責任者の役割] オブジェクトで追跡しています。営業部門は、商談が不成立だったときに商談所有者が、意志決定者の役割を持つ取引先責任者に連絡するようにしたいと考えています。Flo はあなたに重要商談が不成立になった場合に ToDo を生成するフローの作成を任せました。意思決定者は商談とは別の [商談取引先責任者の役割] オブジェクトに保存されています。あなたはフローで ToDo を作成する前に、商談取引先責任者の役割から意思決定者を取得する必要があります。
フローを作成する前に、その概要を確認しましょう。
第一に、このフローは金額が 100,000 を超える商談が不成立になったときに実行されます。(これは、商談が更新され、StageName = Closed Lost の条件が満たされた場合に実行されるレコードトリガーフローで実現します。)
第二に、このフローは、役割が意思決定者である [商談取引先責任者の役割] レコードを取得します。(これは、[商談取引先責任者の役割] オブジェクトに対する [Get Records (レコードを取得)] 要素によって実現します。[Get Records (レコードを取得)] 要素では、次の 2 つの検索条件を定義します。(1) [商談取引先責任者の役割] の [商談] = トリガー商談の ID、(2) [商談取引先責任者の役割] の [役割] = 意思決定者)。
第三に、最新の意思決定者のみを保存する必要があります。(これは、[Get Records (レコードを取得)] 要素の次の 3 つの設定によって実現します。(1) 保存するレコード数: 最初のレコードのみ、(2) 並び替え: CreatedDate、(3) 並び替え順: 降順。)
最後に、このフローは商談所有者が意思決定者へのフォローアップを忘れないようにするための ToDo を作成します。(これは、ToDo オブジェクトに対する [レコードを作成] 要素によって実現します。ToDo の項目値を商談の所有者 ID、商談の ID、[商談取引先責任者の役割] の取引先責任者 ID を使用して設定します。)
これで、フローを作成する準備が整いました。
- レコードトリガーフローを作成します。
- オブジェクト: 商談
- フローをトリガーする条件: レコードが更新された
- Condition Requirements (条件の要件): [All Conditions Are Met (AND) (すべての条件に一致 (AND))]
- 条件:
- Field (項目): StageName
- Operator (演算子): Equals (次の文字列と一致する)
- Value (値): Closed Lost (不成立)
- Field (項目): StageName
-
[+ 条件を追加] をクリックします。
- Field (項目): 金額
- Operator (演算子): 以上
- Value (値):
100000
- Field (項目): 金額
- 更新されたレコードでフローを実行するタイミング: 条件の要件に一致するようにレコードを更新したときのみ
- フローを最適化: アクションと関連レコード
- オブジェクト: 商談
- フローキャンバスで、[Start (開始)] 要素の後のパス上で をクリックします。[Get Records (レコードを取得)] を選択します。
- [Label (表示ラベル)] に
Get Decision Maker
(意思決定者を取得) と入力します。
この名前は生成された変数の表示ラベルに使用されるため、内容を示す名前にすることをお勧めします。
- [オブジェクト] で [商談取引先責任者の役割] を選択します。
- [Condition Requirements (条件の要件)] で [All Conditions Are Met (AND) (すべての条件に一致 (AND))] を選択します。
- [レコードを絞り込む] セクションで、この要素でどのレコードを取得するかを指定する条件を定義します。
- 最初の条件:
- Field (項目): OpportunityId
- Operator (演算子): Equals (次の文字列と一致する)
- Value (値): $Record> Id
- Field (項目): OpportunityId
- 2 番目の条件:
- Field (項目): Role (ロール)
- Operator (演算子): Equals (次の文字列と一致する)
- Value (値): Decision Maker (意思決定者)
- Field (項目): Role (ロール)
- 最初の条件:
- [並び替え順] で [降順] を選択します。
- [並び替え] で [CreatedDate] を選択します。
- [How Many Records to Store (保存するレコード数)] で [Only the first record (最初のレコードのみ)] を選択します。
[Only the first record (最初のレコードのみ)] を選択すると、要素の出力変数には 1 つのレコードのみが保存されます。
[All records (すべてのレコード)] を選択すると、検索条件を満たすすべてのレコードが出力されます。
- [How to Store Record Data (レコードデータの保存方法)] で [Automatically store all fields (すべての項目を自動的に保存)] を選択します。
このオプションはデフォルトで、それには妥当な理由があります。このオプションが有効な場合、レコード変数が自動的に作成され、そこにデータが保存されます。ご安心ください。レコード全体が 1 つの変数に保存されていても、必要に応じて個別の項目値を取得できます。
- フローを保存します。[Flow Label (フローの表示ラベル)] に
Create Follow-Up with Decision Maker
(意思決定者へのフォローアップの作成) と入力します。
保存するレコード数と並び替え設定の組み合わせ
[Get Decision Maker (意思決定者を取得)] 要素では 1 人の意思決定者を見つけることが目的であったため、最初のレコードのみを保存することを選択しました。複数のレコードが検索条件に一致した場合、どのようにして保存するレコードを決定するのでしょうか? [並び替え順] と [並び替え] の設定を使用することで、どのレコードが最初になるかを決定できます。ここでは作成日の降順で並び替えたため、フローは最後に作成された意思決定者ロールを返します。
これで、フローでリマインダー ToDo を作成するのに必要な情報を取得できます。次は、その ToDo を作成するために [レコードを作成] 要素を追加します。
取得した値を使用する
[Get Records (レコードを取得)] 要素が実行されると、変数にはデータが保存されます。これでそのデータをフローの要素で必要に応じてあらゆることに使用できます。
例に戻りましょう。フローで意思決定者の取引先責任者の役割のデータを取得しましたが、まだ ToDo を作成する必要があります。[レコードを作成] 要素を作成しましょう。[Get Records (レコードを取得)] 要素で作成された変数 ([Get Decision Maker (意思決定者を取得)] の [Opportunity Contact Role (商談取引先責任者の役割)]) を使用して ToDo の取引先責任者 (Name ID (名前 ID)) を作成します。
- [Create Follow-Up with Decision Maker (意思決定者へのフォローアップの作成)] フローで、[Get Decision Maker (意思決定者を取得)] 要素の後に [レコードを作成] 要素を追加します。
- Label (表示ラベル):
Create Task
(ToDo の作成) - How to set record field values (レコードの項目値の設定方法): Manually (手動)。
- オブジェクト: ToDo
- Label (表示ラベル):
- 新しい ToDo レコードの項目値を定義します。
- Field (項目): Assigned To ID (割り当て先 ID)、Value (値): Triggering Opportunity (トリガー商談) > Owner ID (所有者 ID) (下にスクロールして、行末に > がない Owner ID (所有者 ID) 項目を選択します。)
- Field (項目): Priority (優先度)、Value (値): Normal (通常)
- Field (項目): Status (状況)、Value (値): Not Started (未開始)
- Field (項目): Subject (件名)、Value (値):
Closed Lost Follow-Up
(不成立フォローアップ)
- Field (項目): Related To ID (関連先 ID)、Value (値): Opportunity ID (商談 ID)
- Field (項目): Name ID (名前 ID)、Value (値): Get Decision Maker (意思決定者を取得) の Opportunity Contact Role (商談取引先責任者の役割) > Contact ID (取引先責任者 ID) (下にスクロールして、行末に > がない [Contact ID (取引先責任者 ID)] 項目を選択します。)
- Field (項目): Assigned To ID (割り当て先 ID)、Value (値): Triggering Opportunity (トリガー商談) > Owner ID (所有者 ID) (下にスクロールして、行末に > がない Owner ID (所有者 ID) 項目を選択します。)
- フローを保存します。
フローが有効化された後に、商談が [不成立] に設定されると、このフローによってフォローアップ ToDo が商談と、意思決定者ロールを持つ最後の取引先責任者に対して作成されます。
次の単元では、ユーザーとコミュニケーションを行うその他の要素について学習します。
リソース
- フロー動画Resource (リソース): Get Records (レコードの取得)
- Trailhead: Lightning Experience のカスタマイズ
- Trailhead: Lightning Experience のレポートおよびダッシュボード