Salesforce カスタム通知の設定方法 ~フローとApex~

  • URLをコピーしました!

Salesforceには通知という機能があります。
これには標準機能として自動実行されるものと、任意で設定できるカスタム通知があります。
今回はカスタム通知の設定方法について解説します。

目次

カスタム通知とは

通知とはSalesforceで特定のイベントが発生した場合にユーザに知らせることができる機能です。
自動で通知されるものの例としては、ユーザが承認申請を受信した場合や
Chatter でメンションされた場合などです。
この通知を任意の内容、タイミングで行うように設定できます。それがカスタム通知です。

Salesforce公式HELP:
通知の有効化または無効化
通知に関する考慮事項

カスタム通知種別の作成 ※必須

カスタム通知はフローやApexでも実行できますが、
最初に「カスタム通知種別」を作成する必要があります。
Salesforce公式HELP:デスクトップまたはモバイル通知の作成

STEP
Salesforceの設定からカスタム通知を開く

Salesforceの設定から検索ボックスに「カスタム通知」と入力し、
「カスタム通知」をクリックします。
「新規」ボタンをクリックします。

STEP
カスタム通知種別を設定する

カスタム通知名、API参照名を入力します。
サポートされるチャネルを選択します。 ※必ずどちらかは選択します。
入力が完了したら「保存」ボタンをクリックします。

STEP
カスタム通知種別が登録されます

入力したカスタム通知種別が登録されます。
API参照名はカスタム通知の設定で使用します。

フローの設定方法

フローからカスタム通知を設定します。
なお、カスタム通知種別を作成していない場合は、こちらを参照してください。

例としてレコードを更新したときに通知されるように設定します。
オブジェクトはカスタムオブジェクトの「商談(カスタム)」を使用します。

Salesforce公式HELP:
フローコアアクション: カスタム通知を送信
カスタム通知をフローで送信する方法

①フローの新規作成、オブジェクトの設定

STEP
新規フローを作成する

Salesforceの設定からプロセスの自動化 > フロー をクリックします。
「新規フロー」ボタンをクリックします。

または、アプリケーションランチャーから「自動化」アプリケーションを開き、
ホーム、またはフロー タブから「新規」ボタンをクリックします。

STEP
テンプレートを使用するかどうかを選択

テンプレートを使用してフローを作成するかどうか選択できます。
ここでは「最初から開始」を選択して、次へをクリックします。

STEP
フロー種別を選択

フロー種別を選択します。
例ではレコードを更新した時にカスタム通知を行うために、
「レコードトリガフロー」を選択して、次へをクリックします。

STEP
開始を設定する

例としてカスタムオブジェクト「商談(カスタム)」を設定します。
 ・オブジェクトを選択:「商談(カスタム)」
 ・トリガーを設定:「レコードが更新された」
 ・エントリ条件を設定:「なし」
 ・フローを最適化:「アクションと関連レコード」
 ・外部システムにアクセス…:「チェックなし」

②通知先の設定

STEP
要素を追加

開始の下、即時実行と終了の間にある◯にカーソルを近づけると+マークになります。
これをクリックして要素を追加していきます。

STEP
割り当て を選択

要素の中から「割り当て」を探してクリックします。

STEP
設定①

表示ラベルとAPI参照名を入力します。
変数値を設定の「変数」入力欄をクリックして、「+新規リソース」をクリックします。

STEP
変数の設定

新規リソースでは、リソース種別に「変数」を選択します。
API参照名を入力し、データ型は「テキスト」を選択します。
複数の通知先を設定する場合は「複数の値を許可 (コレクション)」にチェックします。
入力が完了したら「完了」をクリックします。

Salesforce公式HELP:フローのリソース: 変数

STEP
設定②

変数に新規作成した変数のAPI参照名を指定します。
変数に値を登録するために演算子は「追加」を選択します。
値にはユーザーIDやレコードのユーザIDを持つ項目を指定します。
Salesforce公式HELPには公開グループのメンバーを設定する手順があります。

Salesforce公式HELP:カスタム通知をフローで送信する方法

③カスタム通知種別の取得

STEP
レコードを取得 を選択

要素の中から「レコードを取得」を探してクリックします。

STEP
設定①

表示ラベルとAPI参照名を入力します。
オブジェクトは「カスタム通知種別」と入力します。
レコードの絞り込みは項目に「DeveloperName」、演算子に「次の文字列と一致する」を選択、
値には作成したカスタム通知種別のAPI参照名を指定します。

なお、例ではDeveloperNameで絞り込む値はカスタム表示ラベルに設定しています。
カスタム表示ラベルやカスタムメタデータ型などに登録して参照すると、
別環境に反映させるときにフローをリリースしなくて済みます。

STEP
設定②

今回はDeveloperNameで一意に絞り込んでいるため、デフォルト値のままにします。

④カスタム通知の設定

STEP
アクションの要素を追加

要素を追加から「アクション」を探してクリックします。

STEP
カスタム通知を送信 を選択

表示されるアクションの種類だけでも数が多いので、「カスタム通知」と検索します。
「カスタム通知を送信」が表示されたらクリックします。

STEP
設定①

表示ラベルとAPI参照名を入力します。

STEP
設定②

カスタム通知種別 IDは「レコードの取得」で取得したカスタム通知種別 IDを選択します。
受信者 IDは「割り当て」で作成した変数を指定します。
通知タイトル、通知本文を入力します。

STEP
設定③

対象 IDを設定すると通知をクリックしたときにレコードを開くことができます。

選択時に全体が見えないのですが、「トリガー {オブジェクト名}」をクリックし、
オブジェクトIDを選択します。
※2つ同じ「トリガー {オブジェクト名}」があり、一方は変更前の値を持っています。
 「{!$Record__Prior.}」は変更前です。念のため。

Salesforce公式HELP:フローコアアクション: カスタム通知を送信

STEP
フローを保存して有効化します

フローが完成したら保存して「有効化」します。

実行結果

レコードを更新すると通知が届きました。

Apexの設定方法

Apexからカスタム通知を送信することもできます。
(環境に合わせて黄色背景を修正してください)
カスタム通知種別の作成が必要です。こちらを参照してください。

Apex開発者ガイド:CustomNotification クラス

// 作成したカスタム通知種別を取得
CustomNotificationType notificationType =
            [SELECT Id, DeveloperName FROM CustomNotificationType
            WHERE DeveloperName='TestNotification'];

// CustomNotificationクラスをインスタンス化
Messaging.CustomNotification notification = new Messaging.CustomNotification();

// 通知内容を設定
notification.setTitle('ここはタイトルです');
notification.setBody('ここは本文です');

// カスタム通知種別とオブジェクトレコードIDを指定
notification.setNotificationTypeId(notificationType.Id);
notification.setTargetId(record.Id); // レコードID

// 通知を送信
notification.send(strSendUserSet); // 通知先ユーザIDのセット(String)

Apex、フローどちらからも届いています。

まとめ

カスタム通知の設定方法について解説しました。
メール通知だけでなく、Salesforceプラットフォーム上でも通知をしたい場合は
参考にしてみてください。
もし参考になれば幸いです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次