Classicでは送信できたのに、LEXでは送る方法がわからないとご相談を受けましたので、調べてみましたが
ヘルプにあるように、Einstein活動キャプチャを設定しないと被招集者へメール通知することができません。
そのため、今回はEinstein活動キャプチャを設定できない組織向けの対応方法を紹介いたします。
被招集者項目に人を追加すると・・・
設定の前に仕組みを少し説明いたします。
被招集者を含む行動を作成した場合に、主行動(主催者)と子行動(被招集者)の行動レコードがそれぞれシステム側で作成されます。
被招集者のデータは行動リレーション(EventRelation)オブジェクトに保存されますが、今回はメールアラートを使用したいので、行動リレーションオブジェクトではなく子行動を以下の識別する方法で取得して子行動に対してメールを送信する仕組みで設定していきます。
サンプルのレコードを例に見ていきます。
最初に被招集者を追加しないで行動レコードを作成しました。次に被招集者に一人ユーザを追加して保存しました。最後にもう一人被招集者へユーザを追加しました。
作成されたレコードはこのようになります。
①主催者の行動レコード
②最初に追加した被招集者の行動レコード
③最後に追加した被招集者の行動レコード
①の主催者の行動レコードは「IsChild」がFALSEですが、②③の被招集者の行動レコードはTRUEです。「IsChild」で主行動と子行動の識別ができます。「IsGroupEvent」ではグループ行動との識別ができますので、「IsChild」がFALSEで「IsGroupEvent」がTRUEの場合は、主催の主行動となります。
被招集者に追加した時に子行動は作成されますので、作成日はバラバラですが、最終更新日は同じになります。
⚠️注意
サンプルでは被招集者を削除した場合の設定は含まれていません。
サンプルで紹介する設定のみですと、被招集者を削除し、また同じ人を追加してもメールは再送信されません。被招集者を追加した際の一度きりのメール送信になります。
再送信したい場合は削除時のフローの設定も必要になります。
メールテンプレートの作成
被招集者へ送信するメールテンプレートを作成します。
サンプルでは「Classic メールテンプレート」で作成いたしますが、「Lightningメールテンプレート」で作成いただいても問題ありません。
1.[設定] から、[クイック検索] で「メールテンプレート」を検索し、[Classic メールテンプレート]をクリックし[新規テンプレート]ボタンをクリックします。
2.「テンプレートの種別」を選択します。サンプルでは「テキスト」で作成します。
3.メールテンプレートの必須項目を入力し、「有効」にチェックを入れて[保存]をクリックします。
「メール内容」に行動レコードの項目を差し込む場合は差し込み項目ルックアップで
[行動の項目]」から差し込みたい項目を選択します。
サンプルでは「件名」に主催者(作成者)と開始の差し込み項目を追加しています。
開始は日付/時間項目ですが、「+0」を追加しないと日付しか表示されませんので、「+0」を追加しています。(この対処法については
過去の記事で紹介されています)
メールアラートの作成
1.[設定] から、[クイック検索] で「メールアラート」を検索し、[メールアラート]をクリックし[新規メールアラート]ボタンをクリックします。
2.メールアラートの必須項目を以下のように入力し[保存]をクリックします。
説明:メールアラートの説明
一意の名前:英数字のみ
オブジェクト:行動
メールテンプレート:上記手順で作成したメールテンプレートを選択
受信者種別:所有者
メール受信者:割り当て先
差出人メールアドレス:「現在のユーザのメールアドレス」
カスタム項目の作成
メール通知を送信済みの被招集者へ何度もメールが送信されないようにするために、送信済みの被招集者のIDを格納するテキスト項目を活動オブジェクトに作成します。
※行動、ToDoのカスタム項目は活動オブジェクトで作成します。
フローで使用する項目のため、ページレイアウトへの配置は不要ですが、サンプルではわかりやすくするためにページレイアウトに配置いたします。
フローの作成
1.[設定] から、[クイック検索] で「フロー」を検索し、[フロー]をクリックし[新規フロー]ボタンをクリックします。
2.「レコードトリガフロー」を選択し、以下のように開始を設定します。
・
オブジェクト:行動
・
フローをトリガする条件:レコードが作成または更新された
・
エントリ条件を設定:
[条件の要件] すべての条件に一致(AND)
項目 | 演算子 | 値 |
IsChild(子) | 次の文字列と一致する | False |
IsGroupEvent(グループの行動) | 次の文字列と一致する | True |
Notified_invitees_ID__c (上記の「カスタム項目の作成」で作成した項目) | 変更済み | False |
・
更新されたレコードでフローを実行するタイミング:レコードを更新し、条件の要件に一致するたび
・
フローを最適化:アクションと関連レコード
3.[開始]の下の⊕から[レコードを取得]を追加し、以下のように設定します。
・
オブジェクト:行動
・
レコードを絞り込み:[条件の要件] すべての条件に一致(AND)
項目 | 演算子 | 値 |
IsChild(子) | 次の文字列と一致する | True |
LastModifiedDate(最終更新日) | 次の文字列と一致する | $Record > 最終更新日 |
WhatId(関連先ID) | 次の文字列と一致する | $Record > 関連先 ID |
WhoId(名前ID) | 次の文字列と一致する | $Record > 名前 ID |
StartDateTime(開始日時) | 次の文字列と一致する | $Record > 開始日時 |
EndDateTime(終了日時) | 次の文字列と一致する | $Record > 終了日時 |
・
レコードを並び替え:[並び替え順] 並び替えなし
・
保存するレコード数:すべてのレコード
・
レコードデータの保存方法:すべてのデータを自動的に保存
4.[開始]の下の⊕から[ループ]要素を追加し、以下のように設定します。
・コレクション変数:{!get_Event_Children}(上記3.で取得したレコードコレクション変数)
5.左側のマネージャの[新規リソース]をクリックし、以下のように設定します。
・リソース種別:数式
・データ型:Boolean
・数式:OR(ISBLANK({!$Record.Notified_invitees_ID__c}), NOT(CONTAINS({!$Record.Notified_invitees_ID__c},{!loop.OwnerId})))
※上記の「カスタム項目の作成」で作成した項目が空白の場合か、ループしているレコードの割り当て先が、作成した項目の値に含まれていない場合に「True」となる数式にしています。
6.[ループ]の「項目ごと」下の⊕から[決定]要素を追加し、以下のように設定します。
・表示ラベル:未送信
・結果を実行する条件の要件:すべての条件に一致(AND)
リソース | 演算子 | 値 |
formula_Notified_invitees_ID (5.で作成した数式を選択) | 次の文字列と一致する | True |
・結果を実行するタイミング:条件の要件を満たす場合
7.「未送信」(6.で入力した表示ラベル)の下の⊕から[メールアラートを送信]を追加し、以下のように設定します。
・アクション:上記で作成したメールアラート
・カスタムオブジェクト ID:{!loop.Id}
(上記4.で設定したループ)8.左側のマネージャの[新規リソース]をクリックし、以下のように2つ設定します。
【送信済みユーザのIDを格納する変数】
・リソース種別:変数
・データ型:テキスト
・デフォルト値:{!$Record.Notified_invitees_ID__c} (上記の「カスタム項目の作成」で作成した項目)
【この処理でメール送信した件数を格納する変数】
・リソース種別:変数
・データ型:数値
・小数点の位置:0
9.[メールアラート]の下の⊕から[割り当て]を追加し、以下のように設定します。
・変数値を設定変数 | 演算子 | 値 |
var_sentId (8.で作成したテキスト変数を選択) | 追加 | ,(カンマ) |
var_sentId (8.で作成したテキスト変数を選択) | 追加 | ループ loop の現在の項目 > 割り当て先 ID |
var_counter (8.で作成した数値変数を選択) | 追加 | 1 |
最初のカンマの追加は、調査時などに見やすいように入れています。必須ではありません。
10.[ループ]の「最後の項目の後」下の⊕から[決定]要素を追加し、以下のように設定します。
・表示ラベル:1件以上送信
・結果を実行する条件の要件:すべての条件に一致(AND)
リソース | 演算子 | 値 |
var_counter (8.で作成した数値変数を選択) | 以上 | 1 |
・結果を実行するタイミング:条件の要件を満たす場合
11.「1件以上送信」(10.で入力した表示ラベル)の下の⊕から[レコードを更新]を追加し、以下のように設定します。
・
更新するレコードを検索してその値を設定する方法:フローをトリガした行動レコードを使用
・
レコードを更新する条件の要件:なしー常にレコードを更新
・
項目値をレコードに設定:
項目 | 値 |
Notified_invitees_ID__c (上記の「カスタム項目の作成」で作成した項目) | var_sentId (8.で作成したテキスト変数を選択) |
12.最後にフローを[保存]しデバッグで確認後、 [有効化]にします。
【結果確認】
営業一郎さんが、「営業 佑樹」さんを被招集者項目に追加して新規行動を登録します。
作成された行動レコードを開くと、「通知済み被招集者のID」に営業 佑樹さんのユーザIDが挿入されています。
営業 佑樹さん宛てにメールの通知も届きました。
新たに「営業 ゆう子」さんを追加してみます。
保存後のレコードの「通知済み被招集者のID」に営業 ゆう子さんのユーザIDが追加挿入されています。
営業 ゆう子さん宛てにメールの通知も届きました。
最後に
注意事項を改めて。
今回のフローの設定は被招集者を削除した場合の設定を含んでいません。
そのため「営業 佑樹」さんを被招集者項目から削除しても、「通知済み被招集者のID」には営業 佑樹さんのユーザIDは残ったままです。
そのため、また「営業 佑樹」さんを被招集者項目に追加しても、フローの分岐で送信済みとなりますので、メールは再通知されませんのでご注意ください。