こんにちは、にいるです。
なかなか、フローの記事が書けていなかったため、今回は「フロー」を使用してレコードを更新するプログラムを作ってみました。
・【ヘルプ】フローの作成
・【ヘルプ】フローのベストプラクティス
1.フローとは
フローとは、コーディングなくプログラムを作成できるSalesforceの標準機能です。
コンポーネントをドラッグ&ドロップするだけで、プログラムを視覚的に作成できます。
フローにも画面フロー、レコード更新フロー、スケジュール済みフロー、プラットフォームイベントフローなどの種類があります。
今回はその中から「レコード更新フロー」を使用して、「商談がクローズ(Closed WonかClosed Lost)されたら、クローズ済みのチェックボックスをTrueにする」というプログラムを作ってみたいと思います。
2.フローの設定手順
まず、商談オブジェクトにカスタム項目「クローズ済み(IsClosed)」のチェックボックスを作成しておきます。
ここからフローを設定していきます。
2-1.トリガの設定
作成するフローの種別で「レコード更新フロー」を選択します。
すると、開始のコンポーネントだけ設置されたページに遷移します。
ここでフローが起動する条件「トリガ」を設定します。
パラメータは、
- フローをトリガする条件:レコードが作成または更新された
- フローを実行:レコードが保存された後
にします。
この設定で、「商談がクローズで作成された場合」、「すでに存在している商談レコードがクローズに変更された場合」の両方を検知してフローが実行されます。
オブジェクトは「商談」に設定しておきます。
2-2.決定コンポーネントで判定
次にフローを開始したレコードのフェーズがクローズされた商談かを判定します。
分岐はいくつか作れるんですが、ここではTrueとFalseだけを作成します。
Trueのルートは下記で作成します。
- 結果を実行するタイミング:いずれかの条件に一致
- リソース:{!$Record.StageName}がClosed Wonと一致する
- リソース:{!$Record.StageName}がClosed Lostと一致する
Falseの作成はデフォルトの名称を変更するだけで大丈夫です。
あとは、Flow Bulder上で後続のコンポーネントには何も設置しないようにしておきます。
これで決定コンポーネントの設定は完了です。
2-3.新規割り当てで値を代入
次に「新規割り当て」コンポーネントを設置します。
※感覚としては「レコードを更新」コンポーネントを使用するイメージですが、これはデータベースにコミットするために使用するので最後に使用します。
そして、表示ラベル、API名、変数を入力します。
この変数の割り当てにある{!Record.項目名}というのは、フローを開始したレコードのことでこのフローでは商談レコードになります。
チェックボックスのデータ型なので、Trueを代入しておきます。
2-4.レコードを更新
最後にレコードを保存するコンポーネント「レコードを更新」を設置します。
表示ラベルとAPI名を入力します。
他の値は、
- 更新するレコードを検索してその値を設定する方法:レコードまたはレコードコレクションからの ID およびすべての項目値を使用
- レコードまたはレコードコレクション:{!$Record}
にします。
今回、更新するレコードの条件は特にないため、全てのレコードを更新するように設定します。
完成形はこんな感じになっています。
シンプルでいいですね。
3.検証
最後に検証してみたいと思います。
忘れずに有効化しておかないといけないので、フロー右上のメニューで保存→有効化をしておきます。
フェーズを変更する商談はクローズされていない商談で、カスタム項目「IsClosed」もFalseになっています。
この商談をクローズ(Closed Lost)にしてみると、、、
できました!
IsClosedにチェックが入っていますね!
想定通りの動きですね!
4.まとめ
いかがでしたでしょうか。
フローはプロセスビルダー以上に幅広く使用することができます。
今回はレコード更新フローでしたが、画面フローでユーザが使用するページを作成することもできます。
{!$Record}やグルーバル変数など他の機能であまり見慣れない記号や数式が出てくるので最初は馴染みにくいかもしれません。
また。開発が難しい方でもフローとプロセスビルダーのスキルがあれば、ほぼ大抵のことはまかなえると思うので習得しておきたいスキルですね。
皆さんもぜひ色々と試してみてください。
他にも色々と標準機能やSalesforce機能について紹介していますので、ご覧ください。
ではでは!