次の方法で共有


モデル駆動型アプリ内でアプリ内通知を送信する

モデル駆動型アプリの開発者は、トースト通知または通知センター内でアプリユーザーに表示される通知を構成できます。 モデル駆動型アプリは、システムの新しい通知を自動的にポーリングし、ユーザーに表示します。 通知の送信者またはシステム管理者は、通知の表示方法と通知の拒否方法を構成できます。 通知は、受信者が通知を却下するか、期限切れになるまで通知センターに表示されます。 既定で、通知は 14 日後に期限切れになりますが、管理者はこの設定を上書きできます。

通知はユーザーごとに異なります。 各通知は、通知の送信時に受信者として識別される 1 人のユーザーを対象としています。 チームへの通知の送信はサポートされていません。 複数のユーザーに通知を送信する必要がある場合は、個々のユーザーごとに通知を作成する必要があります。

この記事では、クライアント API を使用して特定のユーザーにアプリ内通知を送信する方法について概説します。 これらの通知がアプリケーションでどのように表示されるかを確認するには、モデル駆動型アプリのアプリ内通知 をご参照ください。

アプリ内通知機能を有効にする

アプリ内通知機能を使用するには、アプリ内通知設定を有効にする必要があります。 この設定は、モデル駆動型アプリ内に保存されます。

  1. Power Apps にサインインします。

  2. モデル駆動型アプリを含むソリューションを開きます。

  3. モデル駆動型アプリを選択し、編集 分割メニューを選択して、モダン アプリ デザイナーを使用して起動します。

  4. 設定 を開いて、機能に切り替えます。

  5. アプリ内通知 を有効にします。

    メイン ページとしてのカスタム ページ

  6. 保存 を選択して設定の変更を保存します。

  7. モデル駆動型アプリで 公開 を選択します。

基本アプリ内通信の送信

SendAppNotification メッセージを使用して通知を送信します。

メッセージとそのパラメーターの詳細については、「 SendAppNotification アクション」を参照してください。

現在、Dataverse SDK for .NET には、 SendAppNotification メッセージの要求クラスと応答クラスは含まれていません。 このメッセージのために厳密に型指定されたクラスを取得するには、クラスを生成するか、基盤となる OrganizationRequestOrganizationResponse のクラスを使用する必要があります。 詳細については、「 SDK for .NET でメッセージを使用する」を参照してください。

SendAppNotification メッセージでは、アプリ内通知で動的プロパティを有効にするオープン型が使用されます。 たとえば、通知には 0 から多くのアクションを含めることができます。また、各アクションには異なるアクションの種類を指定できます。 オープン タイプを使用すると、選択したアクション タイプに応じてアクションの動的なプロパティを持つことができます。 詳細については、「 カスタム API でオープン型を使用する」を参照してください。

次の基本的な例は、API を使用してアプリ内通知を送信する方法を示しています。

ようこそ通知のスクリーンショット。

この例では、「クライアント スクリプトの関数の作成」セクションで説明されているカスタム Example.SendAppNotificationRequest関数を使用します。

var SendAppNotificationRequest = new Example.SendAppNotificationRequest(
    title = "Welcome",
    recipient = "/systemusers(<GUID of the user>)",
    body = "Welcome to the world of app notifications!",
    priority = 200000000,
    iconType = 100000000,
    toastType = 200000000,
);

Xrm.WebApi.online.execute(SendAppNotificationRequest).then(function (response) {
    if (response.ok) {
        console.log("Status: %s %s", response.status, response.statusText);

        return response.json();
    }
})
.then(function (responseBody) {
    console.log("Response Body: %s", responseBody.NotificationId);
})
.catch(function (error) {
    console.log(error.message);
});

通知ポーリング

アプリ内通知は、ポーリングを使用して、アプリの実行中に定期的に通知を取得します。 このアプリは、モデル駆動型アプリの開始時、および最後の取得が 1 分以上前であれば、ページ ナビゲーションが発生したときに新しい通知を取得します。 ユーザーがページに長時間留まらない場合、ユーザーが別のページに移動するまで、アプリは新しい通知を取得しません。

通知テーブル

アプリは、 SendAppNotification メッセージを使用して送信された通知を Notification (appnotification) テーブル ( Web API appnotification) に格納します。 次の表は、テーブルの選択された列を示しています。

表示される名前 スキーマ名 Description
肩書き Title 通知のタイトル。
担当者 OwnerId 通知を受信するユーザー。 この列はユーザーまたはチームに設定できますが、ユーザーのみに設定します。 通知をチームに設定することはできません。
本文 Body 通知に関する詳細。
IconType IconType 事前定義されたアイコンのリスト。 既定値は Info です。 詳細については、この記事 の後半の「通知アイコンを変更する 」を参照してください。
トーストの種類 ToastType 通知動作のリスト。 既定値は Timed です。 詳細については、この記事 で後述する通知動作の変更 を参照してください。
優先順位 Priority 通知の優先順位付けを有効にし、通知センターに通知が表示される順序を決定します。 詳細については、この記事 で後述する通知動作の変更 を参照してください。
有効期限 (秒) TTLInSeconds 通知がまだ却下されていない場合に、通知を削除する必要が生じるまでの秒数。
データ Data 拡張性と通知へのより豊富なデータの解析に使用される JSON。 最大文字数は 5,000 文字です。

注意

テーブルでは、 appmoduleid フィールドは使用されません。

通知のカスタマイズ

通知の基本プロパティに加えて、ユーザーに配信される通知をカスタマイズできます。 通知をカスタマイズするには、TitleBody 通知の変更、通知アイコンのカスタマイズ、通知の動作の変更。

タイトルと本文でのマークダウンの使用

Title メッセージの BodySendAppNotification パラメーターは、プロパティ内で定義されたマークダウンに対応していません。 これらのプロパティのスタイルは、 OverrideContent プロパティで markdown を使用して調整できます。 このフィールドは、TitleBody の単純な文字列をマークダウン スタイルの限定されたサブセットで上書きすることをサポートします。

次の表に、サポートされているマークダウンを示します。

テキスト スタイル Markdown
Bold **Bold**
斜体 _Italic_
箇条書きリスト - Item 1\r- Item 2\r- Item 3
番号付きリスト 1. Green\r2. Orange\r3. Blue
ハイパーリンク [Title](url)

\n\n\n\nを使用して本文に改行を追加します。

この例は、インライン リンクを含むカスタム本文定義を追加して通知を作成する方法を示しています。

インライン リンクを含むテキストのブロックによる通知。

この例では、「クライアント スクリプトの関数の作成」セクションで説明されているカスタム Example.SendAppNotificationRequest関数を使用します。

var SendAppNotificationRequest = new Example.SendAppNotificationRequest(title = "SLA critical",
    recipient = "/systemusers(<GUID of the user>)",
    body = "Record assigned to you is critically past SLA.",
    iconType = 100000003,
    toastType = 200000000,
    overrideContent = {
        "@odata.type": "#Microsoft.Dynamics.CRM.expando",
        "title": "**SLA critical**",
        "body": "Case record [Complete overhaul required (sample)](?pagetype=entityrecord&etn=incident&id=0a9f62a8-90df-e311-9565-a45d36fc5fe8) assigned is critically past SLA and has been escalated to your manager."

    }
);

Xrm.WebApi.online.execute(SendAppNotificationRequest).then(function (response) {
    if (response.ok) {
        console.log("Status: %s %s", response.status, response.statusText);

        return response.json();
    }
})
.then(function (responseBody) {
    console.log("Response Body: %s", responseBody.NotificationId);
})
.catch(function (error) {
    console.log(error.message);
});

この例では、複数のリンク、太字の書式設定、および斜体の書式設定を可能にするカスタム タイトルと本文の定義を追加します。

カスタム タイトル、複数のリンク、太字のテキスト、および斜体の書式を含む通知。

この例では、「クライアント スクリプトの関数の作成」セクションで説明されているカスタム Example.SendAppNotificationRequest関数を使用します。

var SendAppNotificationRequest = new Example.SendAppNotificationRequest(title = "Complete overhaul required (sample)",
    recipient = "/systemusers(<GUID of the user>)",
    body = "Maria Campbell mentioned you in a post.",
    priority = 200000000,
    iconType = 100000004,
    toastType = 200000000,
    expiry = 120000,
    overrideContent = {
        "@odata.type": "#Microsoft.Dynamics.CRM.expando",
        "title": "[Complete overhaul required (sample)](?pagetype=entityrecord&etn=incident&id=0a9f62a8-90df-e311-9565-a45d36fc5fe8)",
        "body": "[Maria Campbell](?pagetype=entityrecord&etn=contact&id=43m770h2-6567-ebm1-ob2b-000d3ac3kd6c) mentioned you in a post: _\"**[@Paul](?pagetype=entityrecord&etn=contact&id=03f770b2-6567-eb11-bb2b-000d3ac2be4d)** we need to prioritize this overdue case, [@Robert](?pagetype=entityrecord&etn=contact&id=73f970b2-6567-eb11-bb2b-000d3ac2se4h) will work with you to engage with engineering team ASAP.\"_"
    }
);

// Use the request object to execute the function
Xrm.WebApi.online.execute(SendAppNotificationRequest).then(function (response) {
    if (response.ok) {
        console.log("Status: %s %s", response.status, response.statusText);

        // Use response.json() to access the content of the response body.
        return response.json();
    }
})
.then(function (responseBody) {
    console.log("Response Body: %s", responseBody.NotificationId);
})
.catch(function (error) {
    console.log(error.message);
    // handle error conditions
});

注意

xSendAppNotification関数を使用した Power Fx では、OverrideContentはサポートされていません。

通知の動作を変更する

ToastTypeを次のいずれかの値に設定して、アプリ内通知の動作を変更します。

トーストの種類 Behavior 価値
タイム 通知は短時間 (既定は 4 秒) 表示された後、消えます。 200000000
非表示 通知は通知センターにのみ表示され、トースト通知としては表示されません。 200000001

通知アイコンを変更する

IconTypeを次のいずれかの値に設定して、アプリ内通知アイコンを変更します。 カスタム アイコンを使用する場合は、iconUrl パラメーター内で OverrideContent パラメーターを指定します。

アイコンの種類 価値 Image
情報 100000000 情報アイコン
成功 100000001 成功アイコン
エラー 100000002 エラー アイコン
警告 100000003 警告アイコン
参照投稿 100000004 参照投稿アイコン
Custom 100000005

次の例は、Web API を使用してカスタム アイコン付きの通知を送信する方法を示しています。

POST [Organization URI]/api/data/v9.2/SendAppNotification 
HTTP/1.1
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json

{
  "Title": "Welcome",
  "Body": "Welcome to the world of app notifications!",
  "Recipient": "/systemusers(<Guid of the user>)",
  "IconType": 100000005, // custom
  "OverrideContent": {
    "@odata.type": "#Microsoft.Dynamics.CRM.expando",
    "iconUrl": "/WebResources/cr245_AlertOn" //URL of the image file to be used for the notification icon
  }
}

通知の優先順位を設定する

Priority を設定することで、通知センターに表示される通知の順番を変更することができます。 次の値を使用できます。

優先順位 価値
正常 200000000
200000001

既定値は Normal です。 通知センターは、 優先度 と作成日の順 降順に通知を並べ替えます。 優先度の高い通知は、通知センターの一覧の上部に表示されます。

通知アクション

アプリ内通知は、通知カード上でゼロから多数のアクションをサポートします。 次の 3 種類のアクションがサポートされています。

  • URL: このアクションを選択すると、Web ブラウザーは定義された URL に移動します。
  • サイド ウィンドウ: このアクションを選択すると、アプリでサイド ウィンドウが開き、定義されたコンテキストがウィンドウに読み込まれます。
  • Teams チャット: このアクションを選択すると、Dynamics 365 レコードのコンテキストで定義されたユーザーから Teams チャットが開始されます。

URL アクションの定義

URL アクション タイプを使用すると、アプリ通知のアクションから定義された URL へのナビゲーションが可能になります。 次の表に、このアクションの種類のパラメーターを示します。

パラメーター Required データ型 Description
url はい String アクションが選択されたときに開く Web アドレスの URL。
navigationTarget いいえ String このパラメーターは、ナビゲーション リンクが開く場所を制御します。 次のオプションがあります。
  • dialog: センター ダイアログで開きます。
  • inline: 既定。 現在のページで開きます。
  • newWindow: 新規ブラウザーのタブで開きます。

次の例は、単一の URL アクションで通知を作成する方法を示しています。

単一のアクションを含むアプリ通知。

この例では、「クライアント スクリプトの関数の作成」セクションで説明されているカスタム Example.SendAppNotificationRequest関数を使用します。

var SendAppNotificationRequest = new Example.SendAppNotificationRequest(title = "Congratulations",
    recipient = "/systemusers(<GUID of the user>)",
    body = "Your customer rating is now an A. You resolved 80% of your cases within SLA thi week and average customer rating was A+",
    iconType = 100000001,
    toastType = 200000000,
    overrideContent = {
        "@odata.type": "#Microsoft.Dynamics.CRM.expando",
        "title": "**SLA critical**",
        "body": "Case record [Complete overhaul required (sample)](?pagetype=entityrecord&etn=incident&id=0a9f62a8-90df-e311-9565-a45d36fc5fe8) assigned is critically past SLA and has been escalated to your manager."

    },
    actions = {
        "@odata.type": "Microsoft.Dynamics.CRM.expando",
        "actions@odata.type": "#Collection(Microsoft.Dynamics.CRM.expando)",
        "actions": [
            {
                "title": "View cases",
                "data": {
                    "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                    "type": "url",
                    "url": "?pagetype=entitylist&etn=incident&viewid=00000000-0000-0000-00aa-000010001028&viewType=1039",
                    "navigationTarget": "newWindow"
                }
            }
        ]
    }
);

Xrm.WebApi.online.execute(SendAppNotificationRequest).then(function (response) {
    if (response.ok) {
        console.log("Status: %s %s", response.status, response.statusText);

        return response.json();
    }
})
.then(function (responseBody) {
    console.log("Response Body: %s", responseBody.NotificationId);
})
.catch(function (error) {
    console.log(error.message);
});

サイド ペイン アクションの定義

サイド ウィンドウ アクションを使用すると、アプリ通知からアクションを選択したときに、サイド ウィンドウを開き、定義されたページを読み込むことができます。 詳細については、「 クライアント API を使用したサイド ペインの作成」を参照してください。

サイド ペインアクションタイプを使用する場合は、サイドペイン自体のオプションと、サイドペインに読み込むページを制御します。

次の例は、2 つのサイド ペイン アクションを使用してアプリ通知を作成する方法を示しています。

この例では、「クライアント スクリプトの関数の作成」セクションで説明されているカスタム Example.SendAppNotificationRequest関数を使用します。

var SendAppNotificationRequest = new Example.SendAppNotificationRequest(title = "New task",
    recipient = "/systemusers(<GUID of the user>)",
    body = "A new task has been assigned to you to follow up on the Contoso account",
    iconType = 100000000,
    toastType = 200000000,
    actions = {
        "@odata.type": "Microsoft.Dynamics.CRM.expando",
        "actions@odata.type": "#Collection(Microsoft.Dynamics.CRM.expando)",
        "actions": [
            {
                "title": "View task",
                "data": {
                    "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                    "type": "sidepane",
                    "paneOptions": {
                        "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                        "title": "Task Record",
                        "width": 400
                    },
                    "navigationTarget": {
                        "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                        "pageType": "entityrecord",
                        "entityName": "task",
                        "entityId": "<Task ID>"
                    }
                }
            }
        ]
    }
);

Xrm.WebApi.online.execute(SendAppNotificationRequest).then(function (response) {
    if (response.ok) {
        console.log("Status: %s %s", response.status, response.statusText);

        return response.json();
    }
})
.then(function (responseBody) {
    console.log("Response Body: %s", responseBody.NotificationId);
})
.catch(function (error) {
    console.log(error.message);
});

Teams チャット アクションの定義

Teams チャット アクションにより、アプリ通知から Teams チャットが開始されるシナリオが有効になります。 このアクションは、Dynamics 365 アプリの埋め込み Teams 機能を使用し、営業ハブ、Custom Service Hub、カスタム アプリなどの Customer Engagement アプリ内で、営業担当者とエージェントが Microsoft Teams でチャットできる機能を提供します。

注意

Teams チャット アクションの種類を使用するには、Dynamics 365 でMicrosoft Teams チャットを有効にする必要があります。 詳細については、「 Dynamics 365 でのMicrosoft Teams チャットの操作」を参照してください。

アクション タイプには、以下のオプションがあります:

  • 新しいチャット セッションを作成するか、既存のチャット セッションを開きます。
  • チャット セッションを Dynamics 365 レコードにリンクするか、リンクされていないチャットを作成します。

次の表では、アプリ通知で Teams チャット アクションを定義するためのパラメーターについて説明します。

パラメーター データ型 Description
chatId String 既存のチャットを開くには、チャット ID の値を定義します。 この値は、Microsoft Graph のチャット エンティティの id プロパティから取得できる Teams チャット セッションの ID です。 詳細については、「 チャットを取得する」を参照してください。 Dynamics 365 レコードにリンクする Teams チャット セッションの場合、関連付けは Dataverse の Microsoft Teams チャット関連付けエンティティ (msdyn_teamschatassociation) テーブルに格納されます。 チャット セッションの ID は、このテーブルの Teams チャット ID プロパティに保存されます。

新しいチャット セッションを開始するには、このパラメーターを空白のままにします。
memberIds GUID[] 新しいチャット セッションに含める各参加者の Microsoft Entra ID ユーザー ID 値の配列。 chatId パラメーターの値を定義する場合は、メンバー ID 値を定義しないでください。 chatId を定義する場合は、既存のチャットを開き、既存のチャットのメンバーは開いたときにチャットに含まれます。
entityContext Expando エンティティ コンテキストは、チャット セッションをリンクする必要がある Dynamics 365 レコードを提供します。 たとえば、チャット セッションが特定の顧客アカウント レコードに関するものである場合、このパラメータでアカウント レコードを定義すると、チャット セッションがアカウントにリンクされ、アカウントのタイムラインに表示されます。

エンティティ コンテキストには entityName パラメーターと recordId パラメーターが含まれています。このパラメーターは、エンティティ コンテキストのレコードを識別するために定義する必要があります。

chatId パラメーターの値を定義する場合は、エンティティ コンテキストを定義しないでください。 chatId を定義する場合は、既存のチャットを開き、リンクされているかリンクされていないかにかかわらず、entityContextが既存のチャットに対して既に定義されています。 アクションが新しいチャット セッションを作成している場合 (つまり、 chatId パラメーターを 指定しなかった場合)、エンティティ コンテキストを定義しないと、新しいチャット セッションは Dynamics 365 レコードにリンクされません。
entityName String エンティティコンテキストの一部で、チャットが関連するレコードの Dataverse テーブルの論理名です。
recordId GUID エンティティ コンテキストの一部であり、チャットがリンクされるレコードの entityName パラメーターで定義されたテーブルの ID プロパティです。
chatTitle String Teams チャットのタイトル。
initialMessage String 任意で提供できる、チャット作成時に自動で送信される紹介メッセージのテキスト。

次の例では、Teams のチャット アクション 1 つでアプリ通知を作成しています。 ユーザーがトースト通知のアクションを選択すると、定義された参加者とのチャットが開始されます。 チャットは定義された取引先企業レコードにリンクされています。

この例では、「クライアント スクリプトの関数の作成」セクションで説明されているカスタム Example.SendAppNotificationRequest関数を使用します。

var SendAppNotificationRequest = new Example.SendAppNotificationRequest(title = "New order posted",
    recipient = "/systemusers(<GUID of the user>)",
    body = "A new sales order has been posted for Contoso",
    iconType = 100000000,
    toastType = 200000000,
    actions = {
        "@odata.type": "Microsoft.Dynamics.CRM.expando",
        "actions@odata.type": "#Collection(Microsoft.Dynamics.CRM.expando)",
        "actions": [
            {
                "title": "Chat with sales rep",
                "data": {
                    "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                    "type": "teamsChat",
                    "memberIds@odata.type": "#Collection(String)",
                    "memberIds": ["<Microsoft Entra ID User ID 1>", "<Microsoft Entra ID User ID 2>"],
                    "entityContext": {
                        "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                        "entityName": "account",
                        "recordId": "<Account ID value>"
                    }
                }
            }
        ]
    }
);

Xrm.WebApi.online.execute(SendAppNotificationRequest).then(function (response) {
    if (response.ok) {
        console.log("Status: %s %s", response.status, response.statusText);

        return response.json();
    }
})
.then(function (responseBody) {
    console.log("Response Body: %s", responseBody.NotificationId);
})
.catch(function (error) {
    console.log(error.message);
});

クライアント スクリプトの関数の作成

このトピックのクライアント API の例では、アプリ内通知を送信するためのクライアント スクリプトの例を紹介しています。 この例では、 SendAppNotificationRequest 関数を呼び出します。 例を完了するには、環境内に再利用可能な関数を作成する必要があります。 次のコードは、関数の例を示しています。

var Example = window.Example || {};
Example.SendAppNotificationRequest = function (
   title, 
   recipient, 
   body, 
   priority, 
   iconType, 
   toastType, 
   expiry, 
   overrideContent, 
   actions) 
{
    this.Title = title;
    this.Recipient = recipient;
    this.Body = body;
    this.Priority = priority;
    this.IconType = iconType;
    this.ToastType = toastType;
    this.Expiry = expiry;
    this.OverrideContent = overrideContent;
    this.Actions = actions;
};

Example.SendAppNotificationRequest.prototype.getMetadata = function () {
    return {
        boundParameter: null,
        parameterTypes: {
            "Title": {
                "typeName": "Edm.String",
                "structuralProperty": 1
            },
            "Recipient": {
                "typeName": "mscrm.systemuser",
                "structuralProperty": 5
            },
            "Body": {
                "typeName": "Edm.String",
                "structuralProperty": 1
            },
            "Priority": {
                "typeName": "Edm.Int",
                "structuralProperty": 1
            },
            "IconType": {
                "typeName": "Edm.Int",
                "structuralProperty": 1
            },
            "ToastType": {
                "typeName": "Edm.Int",
                "structuralProperty": 1
            },
            "Expiry": {
                "typeName": "Edm.Int",
                "structuralProperty": 1
            },
            "OverrideContent": {
                "typeName": "mscrm.expando",
                "structuralProperty": 5
            },
            "Actions": {
                "typeName": "mscrm.expando",
                "structuralProperty": 5
            },
        },
        operationType: 0, 
        operationName: "SendAppNotification",
    };
};

クライアント API を使用したクライアント スクリプトのその他の例については、「 チュートリアル: 最初のクライアント スクリプトを記述する」を参照してください。

通知のセキュリティの管理

アプリ内通知機能では 3 つのテーブルが使用されます。 ユーザーは、通知を受信し、自分または他のユーザーに通知を送信するために、適切なセキュリティ ロールが必要です。

適切なテーブル権限に加えて、ユーザーには Send In-App NotificationprvSendAppNotification 権限を割り当てて、SendAppNotification メッセージを実行する必要があります。 特権が与えられるのは、デフォルトでは 環境作成者 ロールです。 appnotification メッセージを実行せずにエンティティ レコードSendAppNotification直接作成することで、アプリ内通知を送信する必要はありません。 通知を受信する必要はありません。

使い方 テーブル特権が必要です
ユーザーにはアプリ内通知ベルがないため、アプリ内通知を受け取りません None
ユーザーはアプリ内通知を受け取ることができる
  • 基本: アプリ通知テーブルの読み取り権限。
  • モデル駆動型アプリのユーザー設定に対する作成、読み取り、書き込み、および追加の権限。
  • 定義の設定に関する読み取りおよび AppendTo 特権。
ユーザーはアプリ内の通知を自分に送信できる 基本: アプリ通知テーブルの作成権限。 さらに、 SendAppNotification メッセージを使用する場合は、アプリ内通知の送信権限が必要です。
ユーザーはアプリ内の通知を他のユーザーに送信できる 受信ユーザーのビジネス ユニットに基づいて、アプリ通知テーブルのローカル、ディープ、またはグローバル アクセス レベルで特権を作成します。 さらに、 SendAppNotification メッセージを使用する場合は、アプリ内通知の送信権限が必要です。
ユーザーはアプリ内通知を削除することができる グローバル: アプリ通知テーブルで権限を削除します。

[ Miscellaneous privileges ] タブの [ロール特権ピッカー] を使用して、In-App 通知の送信特権をロールに追加します。

アプリ内通知の送信権限の割り当て。

通知記憶域

アプリ通知テーブルでは組織のデータベース ストレージ容量が使用されるため、送信される通知の量と有効期限の設定を検討してください。 詳細については、 Microsoft Dataverse ストレージ容量に関する説明を参照してください。

アプリ内通知とプッシュ通知

Power Apps 通知コネクタは、アプリ内通知とは別のプッシュ通知用です。 プッシュ通知は、アプリを開くためにモバイル デバイスの通知リストにのみ表示されます。 アプリを開くと、アプリ内通知が表示されます。 ユーザーを圧倒しないように、プッシュ通知の使用を優先度の高い項目に制限します。 詳細については、以下を参照してください。

SendAppNotification アクション
Web API を使用してテーブル行を作成する
createRecord (Client API 参照)
モデル駆動型アプリのアプリ内通知
アプリ通知エンティティタイプ
通知 (appnotification) テーブル/エンティティ参照