ToDoのアラーム通知をモバイルアプリでも通知させたい
デスクトップの機能がモバイルアプリだとサポートされていないことが結構あります。機能が実装されるまで待てない場合のフローでの実装方法を紹介いたします。
chirosuke
2022/12/27 15:39:19
モバイルアプリを使うことが少ないので、アプリに関するご質問や相談を受けると機能について改めて知ることが多いです。今回はそのご相談内容から記事にしてみました。
ご相談内容はタイトルのとおり、ToDoのアラームをプッシュ通知で通知させたいですが、こちらのSalesforceヘルプ「ToDo アラームが Salesforce アプリケーションに表示されない」にあるように、モバイルからToDoのアラームを設定することはできますが、「アラームの結果は、デスクトップブラウザでのみ表示されますのでご注意ください。モバイルデバイスではプッシュ通知として表示されません。」と記載されています。
今回は代替案として「ToDoのアラームで設定した日時にプッシュ通知を実行させるフロー」の設定方法をご紹介いたします。
モバイルからToDoのアラームを設定するには、活動設定の「簡単な新規 ToDo フォームをモバイルに表示」のチェックをオフにする必要があります。
[設定] →クイック検索で「活動設定」

2.アクションレイアウト、ページレイアウトに「アラーム設定」を追加
アラーム設定項目がレイアウトに配置されていない場合は、こちらも追加いたします。
ページレイアウトの項目の追加については、ご存じの方も多いと思いますので設定方法は割愛させていただきます。
カスタムアクションを作成した覚えがない場合は、ここ↓に配置されているアクションは大体グローバルアクションです。正確にはページレイアウトの「Salesforce モバイルおよび Lightning Experience のアクション」の名前から確認することができます。

[設定] → クイック検索で「グローバル」 → [グローバルアクション] → 該当アクションの[レイアウト]をクリックして「アラーム設定」項目を配置します。

すでにモバイルのみのカスタム通知がある場合は作成不要ですのでこの手順はスキップしてください。
1.[設定] → クイック検索で「通知」と検索 → 「カスタム通知」 →[新規]をクリックします。

2.「カスタム通知名」、「API 参照名」とサポートされるチャネルの「モバイル」にチェックを入れて[保存]をクリックします。

3.[設定]の「通知の配信設定」をクリックします。

4.上記2.2.で作成したカスタム通知の🔽から[編集]をクリックします。

5.通知をするモバイルアプリにチェックを入れて、[保存]します。


2.「レコードトリガフロー」を選択し、以下のように開始を設定します。
・オブジェクト:ToDo
・フローをトリガする条件:レコードが作成または更新された
・エントリ条件を設定:
[条件の要件] すべての条件に一致(AND)
・更新されたレコードでフローを実行するタイミング:条件の要件に一致するようにレコードを更新したときのみ
・フローを最適化:アクションと関連レコード

3.[開始]の「+スケジュール済みパスを追加(省略可能)」をクリックし、以下のように設定します。
・時間取得元:Task: アラーム日付/時間
・オフセット数:0
・オフセットオプション:オフセット数0の場合はどれでもOK

4.左側のマネージャの[新規リソース]をクリックし、以下のように設定します。
参考記事:フローコアアクション「カスタム通知を送信」の気になるところ
・リソース種別:変数
・データ型:テキスト
・小数点の位置:0
・複数の値を許可 (コレクション):チェックあり

・リソース種別:数式
・データ型:テキスト
・数式:"アラーム:"&{!$Record.Subject}
※こちらは自由にご入力ください。サンプルでは”アラーム”とToDoの件名が入るようにしています。
・リソース種別:数式
・データ型:テキスト
・数式:TEXT({!$Record.ActivityDate})
※こちらは自由にご入力ください。サンプルでは設定した「期日」が入るようにしています。

5.[アラーム日時](3.で設定したパスの表示ラベル)の下の⊕から[割り当て]を追加し、以下のように設定します。
・変数値を設定

6. [割り当て]要素の下の⊕から[アクション]を追加し、以下のように設定します。
・アクション:カスタム通知を送信
・カスタム通知種別 ID:2.で作成したカスタム通知のID
※IDは開発者コンソールなど、SOQLで取得できます。
SOQLはこちら
詳しい操作方法をお知りになりたい方は、こちらの記事をご覧ください。
・受信者 ID:{!var_Receiver} (4.で作成したコレクション変数を選択)
・通知タイトル:{!formula_subject} またはテキストを直接入力してください。
・通知本文:{!formula_body} またはテキストを直接入力してください。
・対象 ID:{!$Record.Id}

7.最後にフローを[保存]、 [有効化]にします。


ちなみに、[設定]の「時間ベースのワークフロー」からキューに入っているか確認することができます。
「予定日」列の日時がアラーム設定日時の「2022/12/27 13:30」になっていることが確認できます。

フローで設定した件名と本文で「2022/12/27 13:30」にスマートフォンへ通知が来ました。
余談ですが、iOS16から通知が下の方になったんですよね。う~ん…

ご相談内容はタイトルのとおり、ToDoのアラームをプッシュ通知で通知させたいですが、こちらのSalesforceヘルプ「ToDo アラームが Salesforce アプリケーションに表示されない」にあるように、モバイルからToDoのアラームを設定することはできますが、「アラームの結果は、デスクトップブラウザでのみ表示されますのでご注意ください。モバイルデバイスではプッシュ通知として表示されません。」と記載されています。
今回は代替案として「ToDoのアラームで設定した日時にプッシュ通知を実行させるフロー」の設定方法をご紹介いたします。
1.レイアウトの設定
1.活動設定を確認モバイルからToDoのアラームを設定するには、活動設定の「簡単な新規 ToDo フォームをモバイルに表示」のチェックをオフにする必要があります。
[設定] →クイック検索で「活動設定」
2.アクションレイアウト、ページレイアウトに「アラーム設定」を追加
アラーム設定項目がレイアウトに配置されていない場合は、こちらも追加いたします。
ページレイアウトの項目の追加については、ご存じの方も多いと思いますので設定方法は割愛させていただきます。
カスタムアクションを作成した覚えがない場合は、ここ↓に配置されているアクションは大体グローバルアクションです。正確にはページレイアウトの「Salesforce モバイルおよび Lightning Experience のアクション」の名前から確認することができます。
[設定] → クイック検索で「グローバル」 → [グローバルアクション] → 該当アクションの[レイアウト]をクリックして「アラーム設定」項目を配置します。
2.カスタム通知の設定
デスクトップは標準機能で表示されますので二重にならないよう、モバイルだけ通知させるカスタム通知を作成します。すでにモバイルのみのカスタム通知がある場合は作成不要ですのでこの手順はスキップしてください。
1.[設定] → クイック検索で「通知」と検索 → 「カスタム通知」 →[新規]をクリックします。
2.「カスタム通知名」、「API 参照名」とサポートされるチャネルの「モバイル」にチェックを入れて[保存]をクリックします。
3.[設定]の「通知の配信設定」をクリックします。
4.上記2.2.で作成したカスタム通知の🔽から[編集]をクリックします。
5.通知をするモバイルアプリにチェックを入れて、[保存]します。
3.フローの設定
1.[設定] から、[クイック検索] で「フロー」を検索し、[フロー]をクリックし[新規フロー]ボタンをクリック、または、設定ホームの[作成▼]の「フロー」をクリックします。2.「レコードトリガフロー」を選択し、以下のように開始を設定します。
・オブジェクト:ToDo
・フローをトリガする条件:レコードが作成または更新された
・エントリ条件を設定:
[条件の要件] すべての条件に一致(AND)
項目 | 演算子 | 値 |
IsReminderSet(アラーム設定) | 次の文字列と一致する | True |
・フローを最適化:アクションと関連レコード
3.[開始]の「+スケジュール済みパスを追加(省略可能)」をクリックし、以下のように設定します。
・時間取得元:Task: アラーム日付/時間
・オフセット数:0
・オフセットオプション:オフセット数0の場合はどれでもOK
4.左側のマネージャの[新規リソース]をクリックし、以下のように設定します。
【受信者を格納するテキストコレクション変数】
受信者が一人でもコレクション変数に格納する必要があります。参考記事:フローコアアクション「カスタム通知を送信」の気になるところ
・リソース種別:変数
・データ型:テキスト
・小数点の位置:0
・複数の値を許可 (コレクション):チェックあり
【通知のタイトルの数式】
レコードの情報を使用しない一律のタイトルで良い場合は、こちらのリソース作成は不要です。・リソース種別:数式
・データ型:テキスト
・数式:"アラーム:"&{!$Record.Subject}
※こちらは自由にご入力ください。サンプルでは”アラーム”とToDoの件名が入るようにしています。
【通知の本文の数式】
レコードの情報を使用しない一律の本文で良い場合は、こちらのリソース作成は不要です。・リソース種別:数式
・データ型:テキスト
・数式:TEXT({!$Record.ActivityDate})
※こちらは自由にご入力ください。サンプルでは設定した「期日」が入るようにしています。
5.[アラーム日時](3.で設定したパスの表示ラベル)の下の⊕から[割り当て]を追加し、以下のように設定します。
・変数値を設定
変数 | 演算子 | 値 |
var_Receiver (4.で作成したコレクション変数を選択) | 追加 | $Record > 割り当て先 ID |
6. [割り当て]要素の下の⊕から[アクション]を追加し、以下のように設定します。
・アクション:カスタム通知を送信
・カスタム通知種別 ID:2.で作成したカスタム通知のID
※IDは開発者コンソールなど、SOQLで取得できます。
SOQLはこちら
Select Id, MasterLabel, DeveloperName FROM CustomNotificationType |
・受信者 ID:{!var_Receiver} (4.で作成したコレクション変数を選択)
・通知タイトル:{!formula_subject} またはテキストを直接入力してください。
・通知本文:{!formula_body} またはテキストを直接入力してください。
・対象 ID:{!$Record.Id}
7.最後にフローを[保存]、 [有効化]にします。
【結果確認】
今回はモバイルユーザのための設定ですので、モバイルからアラーム設定付きのToDoを登録してみます。アラーム設定日時は「2022/12/27 13:30」です。ちなみに、[設定]の「時間ベースのワークフロー」からキューに入っているか確認することができます。
「予定日」列の日時がアラーム設定日時の「2022/12/27 13:30」になっていることが確認できます。
フローで設定した件名と本文で「2022/12/27 13:30」にスマートフォンへ通知が来ました。
余談ですが、iOS16から通知が下の方になったんですよね。う~ん…
おわり
コメント