Salesforce】カスタム通知の基本|Apexやメタデータ付き

※本サイトにはプロモーション・広告が含まれています。

(最終更新月: 2024年1月)

✔以下の疑問をお持ちの方へ向けた記事です

「Salesforce Apexでカスタム通知をどのように作成するのか?」
「カスタム通知の設定と送信のプロセスは?」
「Apexを使用したカスタム通知の効果的な活用方法は?」

✔当記事を読むことで得られる知識

  • Salesforce Apexでカスタム通知を作成する方法
  • カスタム通知の設定、カスタマイズ、送信の手順
  • Apexを用いたカスタム通知の実用的なシナリオとベストプラクティス

当記事では、Salesforceの開発環境であるApexを使用してカスタム通知を作成し、特定のイベントや条件に基づいてユーザーに通知を送信する方法について解説します。

カスタム通知は、重要なビジネスイベントやデータの変更をリアルタイムでユーザーに知らせるのに役立つもの。

Salesforceの開発者や管理者にとって、ユーザーエンゲージメントを高め、迅速な対応を促す通知システムを構築するためのガイドとなるでしょう。

ぜひ最後までご覧ください。

Salesforce

定義や属性などは公式ガイドを必ず参考にしましょう。

当記事では、主にその使い方を具体例とともに解説します。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

プロダクトマネージャーとして、Apex・Visualforceの開発エンジニアとして、以下のようなプロジェクトに従事してきました

  • 新規事業の立ち上げに伴うビジネスプロセス構築とSalesforceのカスタマイズ
  • SFDXを活用した大規模リリース
  • Visualforce等による一般ユーザー向けサイト・アプリケーションの構築

相談・業務の依頼も承ります。ご質問・ご希望をお問い合わせください。

カスタム通知の基本

Salesforceにおけるカスタム通知は、個々のビジネス要件に合わせた柔軟な情報伝達手段を提供します。

この概念とその構成について学ぶことで、情報を効率的に伝え、ユーザーの反応を促すことが可能です。

  • Salesforceのカスタム通知とは何か
  • カスタム通知の役割と利点
  • 標準通知とカスタム通知の違い

Salesforceのカスタム通知とは何か

Salesforceでのカスタム通知とは、特定のイベントが発生した際に指定したユーザーまたはグループに対して通知を送るための機能のこと。

例えば、プロセスビルダーやフローを使用して、新しい案件が作成された時にカスタム通知を送信することが可能です。

通知はアプリケーション内で表示されるだけでなく、メールやモバイルデバイスにも配信できます。

カスタム通知の役割と利点

カスタム通知は、速やかな情報伝達が求められる際に重要な役割を果たします。

その理由は以下のとおり。

  • 即時性や関連性を持った通知をユーザーに提供
  • 手動で確認する手間を軽減
  • レスポンスタイムを向上

また、特定の情報だけをターゲットに絞った通知が可能なため、情報の過負荷を防ぐことにも繋がります。

標準通知とカスタム通知の違い

標準通知はSalesforceが予め用意した通知で、以下のような汎用的な用途に使用されます。

  • 「任務のアサイン」
  • 「イベントのリマインダー」

一方で、カスタム通知は特定の複雑なビジネス要件やワークフローをカバーするためにユーザーカスタムで作成できる通知です。

カスタム通知は、通知のトリガーや受信者を細かく指定できるため、より柔軟性があります。

カスタム通知の作成と設定

ここでは、カスタム通知の作成や設定の方法について解説していきます。

これらのプロセスを理解し、実行することで、Salesforce内での通知システムを効果的にカスタマイズできるようになります。

  • Apexでのカスタム通知の作成方法
  • 通知のトリガーと条件の設定
  • 通知の受信者と配信オプション

Apexでのカスタム通知の作成方法

カスタム通知をApexコードで作成するには、まずCustomNotificationTypeオブジェクトを使って通知タイプを定義する必要があります。

次に、Messaging.CustomNotificationクラスをインスタンス化し、必要な情報を設定した後、send()メソッドを呼び出して通知を送信します。具体的なコード例は以下の通りです。

CustomNotificationType notificationType = [SELECT Id, DeveloperName FROM CustomNotificationType WHERE DeveloperName='カスタム通知名'];

Messaging.CustomNotification notification = new Messaging.CustomNotification();
notification.setTitle('重要なお知らせ');
notification.setBody('新しい案件が登録されました');
notification.setNotificationTypeId(customNotificationType.Id); 
notification.setTargetId(targetRecordId);
notification.send(new Set<String>{userId});

このコードは、特定のユーザーに対して新しい案件が登録されたことを通知するものです。

通知のトリガーと条件の設定

通知を発行するトリガーと条件を設定するには、プロセスビルダーやフローでルールを作成します。

たとえば、案件をクローズした際に販売チームに通知を出すようなルールを設定

フロービルダーで以下のように作成します。

フロービルダー > レコードトリガの追加 > アクション > カスタム通知

カスタム通知種別IDには、上記のコードで取得したIDなどを入れます。

受信者IDは変数コレクションでなければいけないので、マネージャー > 新規リソースで追加。

通知の受信者と配信オプション

通知の受信者は個々のユーザー、パブリックグループ、キューとすることが可能です。

また、配信オプションでは、アプリ内、メール、モバイルプッシュ通知などを選べます。

受信者と配信オプションを適切に設定することで、通知を受ける側のニーズや利便性を高められます。

メタデータでは以下のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
    <actionCalls>
        <name>TestNotificationInFlow</name>
        <label>TestNotificationInFlow</label>
        <locationX>176</locationX>
        <locationY>323</locationY>
        <actionName>customNotificationAction</actionName>
        <actionType>customNotificationAction</actionType>
        <flowTransactionModel>CurrentTransaction</flowTransactionModel>
        <inputParameters>
            <name>customNotifTypeId</name>
            <value>
                <stringValue>0ML5g000000GteeGAC</stringValue>
            </value>
        </inputParameters>
        <inputParameters>
            <name>recipientIds</name>
            <value>
                <elementReference>TestVar</elementReference>
            </value>
        </inputParameters>
        <inputParameters>
            <name>title</name>
            <value>
                <stringValue>This is the test title</stringValue>
            </value>
        </inputParameters>
        <inputParameters>
            <name>body</name>
            <value>
                <stringValue>This is the test body</stringValue>
            </value>
        </inputParameters>
        <nameSegment>customNotificationAction</nameSegment>
        <versionSegment>1</versionSegment>
    </actionCalls>
    <apiVersion>59.0</apiVersion>
    <environments>Default</environments>
    <interviewLabel>TestFlowWithNotification {!$Flow.CurrentDateTime}</interviewLabel>
    <label>TestFlowWithNotification</label>
    <processMetadataValues>
        <name>BuilderType</name>
        <value>
            <stringValue>LightningFlowBuilder</stringValue>
        </value>
    </processMetadataValues>
    <processMetadataValues>
        <name>CanvasMode</name>
        <value>
            <stringValue>AUTO_LAYOUT_CANVAS</stringValue>
        </value>
    </processMetadataValues>
    <processMetadataValues>
        <name>OriginBuilderType</name>
        <value>
            <stringValue>LightningFlowBuilder</stringValue>
        </value>
    </processMetadataValues>
    <processType>AutoLaunchedFlow</processType>
    <start>
        <locationX>50</locationX>
        <locationY>0</locationY>
        <connector>
            <targetReference>TestNotificationInFlow</targetReference>
        </connector>
        <object>Case</object>
        <recordTriggerType>Create</recordTriggerType>
        <triggerType>RecordAfterSave</triggerType>
    </start>
    <status>Draft</status>
    <variables>
        <name>TestVar</name>
        <dataType>String</dataType>
        <isCollection>true</isCollection>
        <isInput>false</isInput>
        <isOutput>false</isOutput>
    </variables>
</Flow>

カスタム通知の実践的な活用

ここでは、その具体的な活用方法について学びましょう。

カスタム通知は、日々のビジネスプロセス改善において有効なツールです。

  • ビジネスプロセスとの統合
  • 自動化されたアラートと通知
  • ユーザーのアクションへの促進

ビジネスプロセスとの統合

カスタム通知をビジネスプロセスと統合することで、プロジェクトのマイルストーン達成や特定の業務完了時に関係者に自動的に通知を送ることが可能です。

たとえば、顧客からの重大なクレームが登録されたとき、関連部署に即座に連絡を取り、迅速な対応を促す通知が設定されるなどが考えられます。

自動化されたアラートと通知

定期的に状況を確認する必要がある業務では、定義した条件に基づいて自動的にアラートや通知を発行することが重要です。

在庫が一定量を下回った際に購買部門へ通知する、営業目標達成の進捗をチームに報告するなど、作業の効率化とエラーの削減に役立ちます。

ユーザーのアクションへの促進

特定の通知を通じてユーザーに対して行動を促すことが可能です。

例えば、契約更新の期限が近づいた顧客に対して、営業担当者がフォローアップをおこなうよう促す通知を設定します。

  • 契約逃失のリスクを低減
  • 緊急の対応が必要なサポート案件がある場合には、対応チームがすぐにアクションを起こすよう指示

カスタム通知のベストプラクティス

効果的なカスタム通知システムの構築には、いくつかのベストプラクティスがあります。

ひとつずつ見ていきましょう。

  • ユーザーエクスペリエンスの考慮
  • セキュリティとプライバシーの管理
  • 通知のテストと最適化

ユーザーエクスペリエンスの考慮

カスタム通知を設計する際は、終端ユーザーの体験を最優先に考えるべきです。

情報過多にならないように関連性の高い情報だけを提供し、ユーザーが求める情報を意識してカスタマイズします。

ユーザーが通知の設定を簡単にカスタマイズできるようにすることも大切です。

セキュリティとプライバシーの管理

通知を送る際には、慎重にセキュリティとプライバシーを管理する必要があります。

受信者に不必要な情報を送らないようにし、データアクセス権を適切に設定してください。

また、機密情報の扱いには特に注意し、必要に応じて権限レベルを設定することが求められます。

通知のテストと最適化

カスタム通知を導入する前には、実際の環境で十分にテストをおこない、問題がないことを確認します。

さらに、通知が正しいタイミングで正確に届いているか常に監視し、必要であれば設定を調整して最適化することが大切です。

カスタム通知のトラブルシューティング

カスタム通知システムには時に問題が生じることもあります。

そんな時に備え、一般的な問題の対処方法を把握し、迅速に解決できるようにしておくことが重要です。

  • 一般的な通知関連の問題
  • デバッグと問題解決のアプローチ
  • 通知システムの改善とアップデート

一般的な通知関連の問題

カスタム通知に関して生じる一般的な問題には、以下のようなものがあります。

  • 通知が届かない
  • 間違った情報が送信される
  • 通知が過剰に発生

これらの問題の起因には、誤ったトリガーの設定や、受信者リストの不整合などが考えられます。

デバッグと問題解決のアプローチ

問題が発生した場合、まずは設定の確認から始めます。

  1. トリガーと条件が正しく設定されているかを確認
  2. 問題が解決しない場合はSalesforceのデバッグログを参照
  3. バックグラウンドで何が起きているかを理解

実行時に発生する問題を特定し、コードの修正などによって解決を図ります。

通知システムの改善とアップデート

通知システムを継続的に改善するためには、ユーザーからのフィードバックを取り入れることが重要です。

ユーザーの利便性を向上させるための新しいアイデアや要望に応じてシステムをアップデートし、常に最新の状態を保つようにしましょう。

まとめ

Salesforce内でカスタム通知を効果的に活用することは、リアルタイムでのコミュニケーションや業務の効率化に非常に役立ちます。

カスタム通知は、ビジネスプロセスをスムーズにし、ユーザーエクスペリエンスを高められます。

カスタム通知システムの計画から実装、継続的な最適化に至るまで、当記事が実践の助けとなることを願っています。

タイトルとURLをコピーしました