重複管理はアドミニストレーターにとって永遠の課題です。
レコードの作成パターンを無闇に増やすと、重複が発生しがちなので、運用フローとシステム側でのチェック機能をしっかり整えておくことが重要ですが、それがフローでもより簡単にできるようになりそうな気配……。
該当のリリースノートのページはこちらです。
◇ SALESFORCE ヘルプ >ドキュメント >SALESFORCE リリースノート >Salesforce Summer'24 リリースノート >Salesforceフロー >Flow Builder の更新 >フローでレコードを作成する前の重複の確認フローでレコードを作成する前の重複の確認
重複レコードを回避するには、[レコードを作成] 要素で一連の条件に一致するレコードを確認します。また、一致レコードをスキップするのか、更新するかどうかを指定します。一致レコードをスキップする場合、フローでレコードの作成または変更は行われません。一致レコードを更新する場合、指定された値を使用してフローでレコードの変更が行われます。組織の項目レベルの設定や入力規則によって、[レコードを作成] 要素の設定が上書きされる場合があります。
対象: この変更は、Essentials Edition、Professional Edition、Enterprise Edition、Performance Edition、Unlimited Edition、および Developer Edition の Lightning Experience と Salesforce Classic に適用されます。
方法: Flow Builder で、[レコードを作成] 要素が含まれるフローを作成します。[レコードを作成] ペインで、[一致レコードを確認] を有効にします。1 つ以上の条件を追加します。一致レコードを更新するのか、スキップするのかを選択します。フローを保存します。
おさらい:これまでのフローと重複ルール(一致ルール)
認識が違っていたらぜひコメントでお知らせいただきたいのですが、重複ルールを設定しているオブジェクトに対してレコード作成のフローを設定したとき、重複ルールの「作成時のアクション」での設定により、フローがエラーになってしまうことがありました。
c)のところです。
※会員限定記事「
データ品質の管理 ⑧レコードの重複を防止する」から持ってきました。
作成時のアクションが「ブロック」、あるいは「許可」でもアラートやレポートを表示するように設定すると、フローがエラーになってしまいます。
そのため、レコード作成のフローで重複レコードをユーザーに確認させたい場合は画面フローで重複する(条件に一致する)レコードを表示したり、重複の判断はレコードの検索で行い、重複レコードの有無で分岐を作って処理を分けるなど、工夫が必要でした。
(私が当サイトで作ってるフローはシンプルなものばかりでそこまで丁寧に作りこんでおりません。すみません。)
レコード作成要素での重複レコードの処理の設定
さて、Summer’24から新しく追加される機能について、今回はこのような例で実験してみます。
(色々考えたのですがいい例が思い浮かばず、なので本当に機能を理解するための例としてご理解ください)
例
・商談レコードで、各項目が次の値になったとき、自動的に契約レコードを作成する。
フェーズ:Closed Won
初期保守契約有:チェック(カスタム項目)
保守サービス開始日:日付の入力あり(カスタム項目)
・「初期保守契約有」にチェックが入るときに提供される保守サービスについて、期間は6ヵ月と定められており、保守サービス名は「6ヵ月安心サポート」である。
・別ルートから「6ヵ月安心サポート」が提供されることがあるため、同じ取引先、同じ商談に紐づく同じ保守サービスで、サービス提供開始日が同じ契約レコードがあった場合、レコードが作成されないようにしたい。
フロー
というわけでフローを作ってみました。全体図はこちら。
①「開始」の設定内容です。
エントリ条件を商談レコードの値が次のようになったとき、に設定しています。
フェーズ:次の文字列と一致する|Closed Won
初期保守契約有:次の文字列と一致する|True(チェックあり)
保守サービス開始日:null |Flase(日付の入力あり)
②「レコードを作成」要素の設定内容です。
ここで重要なのは、
(a)「レコードの項目値の設定方法」です。こちらを「手動」にすることで、
(b)「一致レコードを確認」を有効にするトグルが表示され、
(C)で一致レコードの条件と重複レコードの処理を設定できるようになります。
なお、
作成する契約レコードの内容はこちらです。
取引先:もとの商談が参照している取引先
請求先住所:元の商談が参照している取引先の請求先住所
契約期間:6(月)
保守サービス名:6ヵ月安心サポート(カスタム項目)
契約開始日:もとの商談の保守サービス開始日
状況:Draft
関連商談:もとの商談(カスタム項目)
一致する(とみなす)レコードの条件はこのように設定しました。
取引先:もとの商談が参照している取引先
保守サービス名:6ヵ月安心サポート(カスタム項目)
契約開始日:もとの商談の保守サービス開始日
関連商談:もとの商談(カスタム項目)
重複レコードの処理条件に一致したレコードがあった場合の処理について、1件のレコードがあった場合と、複数のレコードがあった場合の両方について設定できるようになっています。
今回はいずれも「
一致レコードをスキップ」に設定し、条件に一致したレコードがあった場合は、あらたにレコードを作成しないようにしました。
テストします(一致レコードをスキップ=作成しない)
商談に紐づく契約レコードが1件すでに作成されています。
フローが起動するように、レコードを編集します。既存の契約レコードと一致とみなされる値を入力して保存します。
レコードは作成されず、既存のレコードが1件残ったままです。
「一致レコードを更新」バージョン
今度は、一致する契約レコードがあったら、「説明」項目の値を「キャンペーン適用」に更新するパターンを試してみます。
前述のフローに次の設定を追加します。
・「レコードを作成」要素の「契約の項目値を設定」で「説明」項目の値を「キャンペーン適用」に更新。
・「1件の一致レコードが存在する場合」で「一致レコードを更新」を選択。
既存の契約レコードの詳細です。
フローが起動するようにレコードを編集します。
レコードは新たに作成されていませんが、既存のレコードを確認すると指定したように更新されています。
重複ルールと競合するのか?
ここまでやりまして「わー、活用する場面が多そうだわ!」と思いましたが、いざ実装しようとして気になるのは重複ルールとの兼ね合いですよね。
というわけで、次の検証を行いました。
・リードに対し、同じメールアドレスを持つ場合、一致とみなす一致ルールを作成。
・重複ルールにて、重複する(同じメールアドレスである)リードがあった場合、リードの作成/編集をブロックするよう設定。
なお、この時点(一致ルールと重複ルールを有効化した後)でテストを行ったところ、同じメールアドレスを持つレコードを新規作成しようとするとブロックされました。
・簡易的なリード作成の画面フローを用意し、同じメールアドレスを持つ既存のリードレコードが確認された場合、リードを更新するよう設定。
では、こちらの既存リードレコードと同じメールアドレスを、リード新規作成画面に入力し、【作成】をクリックしてみます。
メールアドレスだけ同じにして……
作成されたリードに遷移するリンクをクリックすると……
今入力した値で既存のレコードが更新されております!
念のため、レポートやリストビュー、作成日や最終更新日、変更履歴などでも確認しましたが、名前が「てすとてつろう」のリードレコードは後から入力した値で更新され、名前も「夏日だって 大変だね」に変更されたようです。
今回の場合、
レコード作成要素での重複レコードの処理 >重複ルール
という結果になりましたが、フローや重複ルールの内容によって結果が異なるかもしれません。
検証を進めましたらあらためてご報告いたします。
ひとこと
カスタムエラーと組み合わせると、レコード生成をよりコントロールできるようになる新機能ですよね。重複ルールとの兼ね合いについては要検証ですが、重複ルール自体使用できるオブジェクトも限られていますし、大胆ではありますがいっそのこと新規作成画面をフローに寄せるという手もあるかも、と思ったりしました。処理の負荷等について考慮しなければなりませんが。
今回は本当にテストということで基本的な設定を試してみたのですが、更新履歴を残したり、更新があったときや処理がスキップされたときに画面やメールで通知するなど、作りこみが必要かもしれません。それでも、大量のマージ作業を引き取ってくれるかもしれないですし、工夫次第で大いに役立ってくれそうです。
Summer'24関連の記事
Summer'24のスケジュール(英語)が出てました!Salesforce Summer'24のプレリリース組織が取得できるよ&地味だけど大きな変化が⁉Summer'24 リリースノート(英語版)が公開されましたSummer'24 フローを把握できる新しいアプリケーションが追加されますSummer'24 画面フローの住所コンポーネントでGoogleマップ検索が使える⁉Summer'24 画面フローのAction Buttonコンポーネントでフローを呼び出す(ベータ)Summer'24 UIのアップデート:フォーカスしている場所(操作箇所)がよりわかりやすくなるSummer'24 ユーザーごとにアクセス権設定状況を確認できるようにSummer'24 カスタム項目作成時に動的フォームにも追加できる!