Salesforceレコードトリガーフロー「ScanToSalesforce由来で取引先責任者が新規作成された時、姓&メールまたは姓&携帯番号が重複する既存取引先責任者が存在した場合、マージ対象に割り当ててメール通知する」方法
※ ScanToSalesforceは2024年5月31日にサービス終了します。 https://scantosalesforce.zendesk.com/hc/ja
例えばこんな状況で使う
ScanToSalesforceを使っての「名刺のスキャン→取引先責任者への変換」を各営業担当が手元で実施しているが、既存の取引先責任者がいるいないに関わらず取引先責任者の新規作成が行われ、各営業担当が名刺をスキャンするたびに発生する重複を瞬時に検知し解消したいときに使います。
姓&メール、姓&携帯番号で重複ルールを有効化しておきます。
実装方法
レコードトリガーフローの設定(開始条件)
「今日」を取得する数式リソースを作成しておきます。
フローの開始条件を編集します。
ScanToSalesforce由来で取引先責任者が新規作成されたときにフローが開始するようにします。
フローに「レコードを取得」要素を追加します。
「レコードを取得」要素を下記のように編集します。
まず姓&メールが等しい既存(今日より過去に作成)の取引先責任者が存在した場合、その取引先責任者レコードを取得できるように条件を設定しています。
次にフローへ「決定」要素を追加します。
「決定」要素を下記のように編集します。
結果を実行する条件の要件
リソースには、先ほど「レコードを取得」要素で取得したレコードデータを設定します。
レコードトリガーフローの設定(メール重複レコードが存在した場合)
決定要素では結果によりフローを分岐します。
まず重複が存在した場合の要素を設定していきます。
要素「レコードを更新」を追加します。
要素「レコードを更新」を下記のように編集します。
重複項目というカスタム項目に重複理由を明示する値を入れておき、重複発生通知メールを送る際に、メールに表示してマージ作業時に重複の理由を確認できるようにします。
要素「ループ」をフローに追加します。
要素「ループ」を下記のように編集します。
コレクション変数には、先ほど「レコードを取得」要素で取得したデータを入力します。
要素「コレクション検索条件」を選択します。
要素「コレクション検索条件」でループで取得したデータのうち、取り出したいデータの条件を指定します。
今回は、特定のレコードタイプのレコードだけ取り出したいのでそのように指定します。
要素「レコードを更新」を追加します。
要素「レコードを更新」を下記のように編集します。
ループから取り出した既存の取引先責任者レコードの方も、「重複理由」項目を更新します。
絞り込み条件は、取引先責任者ID = {!currentItem_LoopPick.Id}として、ループ内の取引先責任者IDと一致する取引先責任者IDを指定しています。
currentItem_LoopPickは、先ほどコレクション検索条件で取得したループ内のデータです。
要素「メールアラートを送信」を選択します。
メール通知用のメールテンプレートを作成しておき、有効化します。
そのメールテンプレートをもとに、メールアラートを作成します。
要素「メールアラートを送信」を編集します。
カスタムオブジェクトID = {!$Record.Id}として、フローがトリガーされた取引先責任者IDをメールアラートに渡します。
レコードトリガーフローの設定(メール重複レコードが存在しない場合)
決定要素では結果によりフローを分岐します。
次にメール重複が存在しない場合の要素を設定していきます。
要素「レコードを更新」を追加します。
要素「レコードを更新」を下記のように編集します。
メール重複レコードは存在しなかったので、今度は姓&携帯番号が等しい既存(今日より過去に作成)の取引先責任者が存在した場合、その取引先責任者レコードを取得できるように条件を設定しています。
以降の要素の設定は、メール重複の場合と同様です。
レコードトリガーフローの設定(携帯重複レコードが存在しない場合)
決定要素では結果によりフローを分岐します。
次に携帯重複が存在しない場合の要素を設定していきます。
要素「レコードを更新」を追加します。
要素「レコードを更新」を下記のように編集します。
メール・携帯番号重複レコードは存在しなかったので、今度は姓&取引先名が等しい既存(今日より過去に作成)の取引先責任者が存在した場合、その取引先責任者レコードを取得できるように条件を設定しています。
以降の要素の設定は、メール・携帯番号重複の場合と同様です。
レコードトリガーフロー全体
フロー全体が完成です。