変数とデータ要素を組み合わせる
学習の目的
この単元を完了すると、次のことができるようになります。
- 一部の要素によって生成される変数を使用する。
- フローで使用するために Salesforce レコードからデータを取得する。
- [レコードを作成] 要素と [レコードを更新] 要素でレコード変数を使用する。
要素によって生成される変数
フローにおいて変数は非常に有用ですが、フロー内の個々のデータ値に対して変数を作成しなければならなかったら、変数の作成にうんざりするに違いありません。幸い、一部のフロー要素では固有の変数が作成されるため、ユーザーが作成する必要はありません。このような変数には、作成元要素に対応して [Record type] from [API name]
という表示ラベルが付けられているため、常にその変数がどこで作成されたものかがわかります。
たとえば、取引先レコードを取得する [レコードを取得] 要素があり、その API 参照名が Get_Latest_Contact の場合、その要素で作成されるレコード変数の表示ラベルは Contact from Get_Latest_Contact
となります。
[レコードを取得] 要素とそのしくみ、さらに変数がどのように作成されるかを見ていきましょう。
1 つのレコードから値を取得する
Flow Builder で行うほぼすべてのことにデータが必要です。フローは Salesforce レコードデータにアクセスできますが、どのデータを取得するかを指定する必要があります。レコードの値は一時的に保存され、それ以降のフロー内で使用できます。
Salesforce レコードからデータを取得するには [レコードを取得] 要素を使用します。[レコードを取得] 要素のしくみについての次の動画をご覧ください。
レコード値を取得するときには、1 つのレコードまたはレコードのコレクション全体からのすべての項目値を取得できます。取得した値は 1 つの変数に保存されます。
例を見てみましょう。Pyroclastic, Inc. では、商談に関する重要な取引先責任者を、関連する [商談取引先責任者の役割] オブジェクトで追跡しています。営業部門は、商談が不成立だったときに商談所有者が、意志決定者の役割を持つ取引先責任者に連絡するようにしたいと考えています。Flo はあなたに重要商談が不成立になった場合に ToDo を生成するフローの作成を任せました。意思決定者は商談とは別の [商談取引先責任者の役割] オブジェクトに保存されています。あなたはフローで ToDo を作成する前に、商談取引先責任者の役割から意思決定者を取得する必要があります。
フローを作成する前に、その概要を確認しましょう。
第一に、このフローは金額が 100,000 を超える商談が不成立になったときに実行されます。(これは、商談が更新され、StageName = Closed Lost の条件が満たされた場合に実行されるレコードトリガーフローで実現します。)
第二に、このフローは、役割が意思決定者である [商談取引先責任者の役割] レコードを取得します。(これは、[商談取引先責任者の役割] オブジェクトに対する [レコードを取得] 要素によって実現します。[レコードを取得] 要素では、次の 2 つの検索条件を定義します。(1) [商談取引先責任者の役割] の [商談] = トリガー商談の ID、(2) [商談取引先責任者の役割] の [役割] = 意思決定者)。
第三に、最新の意思決定者のみを保存する必要があります。(これは、[レコードを取得] 要素の次の 3 つの設定によって実現します。(1) 保存するレコード数: 最初のレコードのみ、(2) 並び替え: CreatedDate、(3) 並び替え順: 降順。)
最後に、このフローは商談所有者が意思決定者へのフォローアップを忘れないようにするための ToDo を作成します。(これは、ToDo オブジェクトに対する [レコードを作成] 要素によって実現します。ToDo の項目値を商談の所有者 ID、商談の ID、[商談取引先責任者の役割] の取引先責任者 ID を使用して設定します。)
これで、フローを作成する準備が整いました。
- レコードトリガーフローを作成します。
- オブジェクト: 商談
- フローをトリガーする条件: レコードが更新された
- 条件の要件: [すべての条件に一致 (AND)]
- 条件:
- 項目: StageName
- 演算子: 次の文字列と一致する
- 値: Closed Lost
-
[+ 条件を追加] をクリックします。
- 項目: 金額
- 演算子: 以上
- 値:
100000
- 更新されたレコードでフローを実行するタイミング: 条件の要件に一致するようにレコードを更新したときのみ
- フローを最適化: アクションと関連レコード
- フローキャンバスで、[Start (開始)] 要素の後のパスにある にカーソルを合わせて をクリックします。[レコードを取得] を選択します。
- [Label (表示ラベル)] に
Get Decision Maker
(意思決定者を取得) と入力します。
この名前は生成された変数の表示ラベルに使用されるため、内容を示す名前にすることをお勧めします。 - [オブジェクト] で [商談取引先責任者の役割] を選択します。
- [Condition Requirements (条件の要件)] で [All Conditions Are Met (AND) (すべての条件に一致 (AND))] を選択します。
- [レコードを絞り込む] セクションで、この要素でどのレコードを取得するかを指定する条件を定義します。
項目 演算子 値 OpportunityId 次の文字列と一致する $Record> Id Role 次の文字列と一致する 意志決定者
メモ: 照会するオブジェクトに多数のレコードがある場合、可能であればすべてのレコードを取得することは避けます。そうしないと、変更すべきでないクローズ済みのレコードを編集することになったり、実行制限に達してフローが失敗したりする可能性があります。 - [並び替え順] で [降順] を選択します。
- [並び替え] で [CreatedDate] を選択します。
- [保存するレコード数] で [最初のレコードのみ] を選択します。[最初のレコードのみ] を選択すると、要素の出力変数には 1 つのレコードのみが保存されます。[すべてのレコード] を選択すると、検索条件を満たすすべてのレコードが出力されます。
- [レコードデータの保存方法] で [すべての項目を自動的に保存] を選択します。このオプションはデフォルトで、それには妥当な理由があります。このオプションが有効な場合、レコード変数が自動的に作成され、そこにデータが保存されます。ご安心ください。レコード全体が 1 つの変数に保存されていても、必要に応じて個別の項目値を取得できます。
メモ: [すべての項目を自動的に保存] は多くの場合に最適なオプションです。作業が減り、データが 1 つの変数に簡略化されるためです。レコードから 1 つの値を取得する必要があるだけの場合でもレコード全体を保存することでフローの制限を超えることはあまりありません。一方、オブジェクトに数百個のカスタム項目がある場合には、負荷が増えることでパフォーマンスに影響が出る可能性があります。その場合には、[項目を選択して後は Salesforce に任せる] を選択して、必要な項目のみを取得します。
- フローを保存します。[フローの表示ラベル] に「
Create Follow-Up with Decision Maker
」と入力します。
保存するレコード数と並び替え設定の組み合わせ
[Get Decision Maker (意思決定者を取得)] 要素では 1 人の意思決定者を見つけることが目的であったため、最初のレコードのみを保存することを選択しました。複数のレコードが検索条件に一致した場合、どのようにして保存するレコードを決定するのでしょうか? [並び替え順] と [並び替え] の設定を使用することで、どのレコードが最初になるかを決定できます。ここでは作成日の降順で並び替えたため、フローは最後に作成された意思決定者ロールを返します。
これで、フローでリマインダー ToDo を作成するのに必要な情報を取得できます。次は、その ToDo を作成するために [レコードを作成] 要素を追加します。
取得した値を使用する
[レコードを取得] 要素が実行されると、変数にはデータが保存されます。これでそのデータをフローの要素で必要に応じてあらゆることに使用できます。
例に戻りましょう。フローで意思決定者の取引先責任者の役割のデータを取得しましたが、まだ ToDo を作成する必要があります。[レコードを作成] 要素を作成しましょう。[レコードを取得] 要素で作成された変数 (Get_Decision_Maker の [商談取引先責任者の役割]) を使用して ToDo の取引先責任者 (WhoId) を作成します。
- [Create Follow-Up with Decision Maker (意思決定者へのフォローアップの作成)] フローで、[Get Decision Maker (意思決定者を取得)] 要素の後に [レコードを作成] 要素を追加します。
- 表示ラベル:
Create Task
- レコード項目の設定方法: 個別のリソースおよびリテラル値を使用
- オブジェクト: ToDo
- 表示ラベル:
- 新しい ToDo レコードの項目値を定義します。
項目 値 OwnerId $Record > OwnerId Priority 標準 Status 未開始 Subject Closed Lost Follow-Up
WhatId $Record > Id WhoId Get_Decision_Maker 商談取引先責任者の役割 > ContactId
- フローを保存します。
フローが有効化された後に、商談が [不成立] に設定されると、このフローによってフォローアップ ToDo が商談と、意思決定者ロールを持つ最後の取引先責任者に対して作成されます。
次の単元では、ユーザーとコミュニケーションを行うその他の要素について学習します。