概要

Discussions は通知を 2 つの部分に分けています。Web パーツは、誰が何について知りたいかを記録します。サブスクリプションの一覧を保持し、ユーザーが選んだ頻度でボードやトピックをフォローできるようにし、投稿でメンションされたユーザーをマークします。メールの配信は、サイト所有者が自分のテナントで実行する Power Automate フローに委ねられます。Web パーツ自身はメールを送信せず、Mail.Send アクセス許可やその他の Microsoft Graph アクセス許可を要求することもありません。フローが必要とするデータは、サイト上の通常の SharePoint リストにあります。

この記事では、このコントラクト、つまり Web パーツがリストで保証する内容と、フローがそれを使って行うべきことを説明します。

❗ 重要
バージョン 26.10.2 では、Power Automate のフロー テンプレートは提供されていません。Web パーツは以下に説明するとおりサブスクリプションとメンションを保存しますが、テナントにフローが存在するまでメールは送信されません。この記事のコントラクトは、そのようなフローを構築するための基盤です。インポート可能なテンプレートとその設定記事は、今後のリリースで提供する予定です。

Web パーツが行うこと

ボードまたはトピックのフォロー

投稿できるユーザー (サイトに対する アイテムの追加 アクセス許可。投稿と編集のアクセス許可レベルに含まれます) には、ボードのコマンド バーと各トピックのヘッダーに フォロー ボタンが表示されます。1 回クリックすると頻度 即時 でフォローします。ボタンのドロップダウン部分には 即時、毎日のダイジェスト、毎週のダイジェスト、および フォロー解除 があります。フォロー中は、ボタンに フォロー中 と選択した頻度が表示されます。新しいトピックの作成者は、自動的に 即時 でそのトピックをサブスクライブします。読み取り専用の閲覧者はサブスクリプション リストに書き込めないため、ボタンは表示されません。

頻度メニューを開いた フォロー ボタン

頻度メニューを開いた フォロー ボタン

各フォローは、ディスカッション購読 リストの 1 アイテムで、ユーザーと対象ごとに 1 つです。同じトピックを別の頻度で再度フォローすると、2 つ目を追加するのではなくアイテムが更新され、フォロー解除 でアイテムが削除されます。したがって、通知をオフにすることは自分のサブスクリプションを削除することを意味し、個別の「ミュート」フラグはありません。ユーザー ガイドは KB10404. 掲示板とトピックのフォロー: サブスクリプションとダイジェストの頻度 にあります。

メンション

ユーザーがエディターで @ を入力してユーザーを選択すると、Web パーツは投稿の本文に <a href="mailto:…" data-mention-id="{siteUserId}">@名前</a> という形式のリンクを挿入し、同時にそのユーザーをトピックまたは返信のユーザー列 メンション に追加します。この列がフローに対するシグナルであり、誰がメンションされたかを知るために HTML を解析する必要はありません。メンションは投稿と一緒に編集でき、列は保存のたびに書き直されます。KB10403. Discussions での @メンションの使い方 を参照してください。

ディスカッション購読 リスト

列内部名値
ユーザーVtxUserサブスクライバー (ユーザー列)
ターゲットの種類VtxTargetTypeBoard または Topic
ターゲット IDVtxTargetIdディスカッション掲示板 のボード アイテムの ID、または ディスカッショントピック のトピック アイテムの ID
頻度VtxFrequencyImmediate、Daily、Weekly のいずれか
掲示板VtxBoardボードへの参照。トピックのサブスクリプションにも設定され、1 つのボードのすべてのサブスクリプションを 1 つのフィルターで読み取れるようにします
タイトルTitleBoard:{id} または Topic:{id}。リスト ビューでの読みやすさのため

選択肢列の値はインターフェイス言語に関係なく英語で保存されます。列の表示名はリストを作成したユーザーの言語に従います。このリストはボードと同じサイトにあり、サイトのアクセス許可を継承するため、フォローには投稿権限が必要です。

ディスカッション購読 リスト

ディスカッション購読 リスト

フローが反応するイベント

すべてのイベントは、2 つのコンテンツ リストの通常のアイテム イベントです。フローは標準の SharePoint トリガー 項目が作成されたとき (When an item is created) と 項目が作成または変更されたとき (When an item is created or modified) を使用します。

イベントリスト条件
新しいトピックディスカッショントピック承認ステータス = Approved でアイテムが作成された
モデレーターがトピックを承認ディスカッショントピックアイテムが更新され、承認ステータス が Approved に変わった
新しい返信ディスカッション投稿承認ステータス = Approved でアイテムが作成された
返信が承認されたディスカッション投稿アイテムが更新され、承認ステータス が Approved に変わった
ベスト アンサーが承認されたディスカッショントピック承認された回答 が 0 から返信の ID に変わった
メンション両方のリストメンション にユーザーが含まれる
アイテムがモデレーション待ち両方のリスト承認ステータス = Pending でアイテムが作成された

承認なしのボードでは、すべての新しいアイテムが Approved として作成されます。新しい投稿の承認が必要 が有効なボードでは、メンバーのアイテムは Pending として作成され、モデレーターが承認すると Approved になります。これがサブスクライバーに通知すべきタイミングです。却下されたアイテムが通知を生成することはありません。

📝 注
Web パーツは列 ID でリストを認識するため、サイト所有者はリストの名前を変更できます。したがって、フローはタイトルではなく ID (GUID) でリストを参照し、列の値は内部名 (VtxApprovalStatus、VtxMentions、…) で読み取る必要があります。

誰が何を受け取るか

コントラクトの受信者ルールは次のとおりです。

  1. 新しいトピック - ボードのサブスクライバー: ターゲットの種類 = Board かつ ターゲット ID = トピックの 掲示板 であるアイテム。
  2. 新しい返信 - トピックのサブスクライバー (ターゲットの種類 = Topic、ターゲット ID = 返信の トピック) と、そのトピックのボードのサブスクライバー。返信の作成者は除外されます。
  3. ベスト アンサー - 承認された返信の作成者とトピックのサブスクライバー。
  4. メンション - アイテムの メンション 列のユーザー。サブスクリプションやその頻度に関係なく通知されます。メンションされたユーザーがメンションをオフにすることはできません。
  5. モデレーション待ち - ボードのモデレーターであるサイト所有者グループのメンバー。

頻度

  • Immediate - トリガー 項目が作成または変更されたとき (When an item is created or modified) を持つフローが、この頻度のサブスクライバーにイベントごとに 1 通のメールを送信します。
  • Daily と Weekly - スケジュールされたフローが、最終アクティビティ が期間内にあるトピックを収集し、サブスクライバーごとに 1 通のサマリーを送信します。返信はそのトピックの 最終アクティビティ を更新するため、トピックに基づいて作成したダイジェストは新しい返信も対象となります。

トピックは、Discussions Web パーツをホストするページをクエリ パラメーター ?topic={Id} 付きで開くことで表示されます。{Id} は ディスカッショントピック のアイテムの ID です。Web パーツは自身のページのアドレスをリストのどこにも保存しないため、ページのアドレスはフローのパラメーターになります。同じディープ リンクは Discussions Activity Web パーツでも使用され、KB10407. Discussions でトピックへのリンクを共有する (ディープ リンク) で説明しています。

フローが行うべきこと

まとめると、このコントラクトに基づいて構築する配信フローは次のことを行います。

  • サイト所有者またはテナントの共有メールボックスのコンテキストで実行します。送信者の ID は Vitextra のものではなく、お客様のものです。
  • 上記の ディスカッショントピック と ディスカッション投稿 のリストを ID で指定し、それらのアイテム イベントを契機に実行します。
  • 掲示板 (および ターゲットの種類 / ターゲット ID) でフィルターした ディスカッション購読 を読み取って受信者を決定し、メンションされたユーザーについてはアイテムの メンション 列を読み取ります。
  • アイテムの作成者を除外し、サブスクライブとメンションの両方に該当するユーザーの重複を排除します。
  • 自身のページ アドレス パラメーターとトピック ID からリンクを組み立てます。
  • ダイジェストについては、スケジュールで実行し、トピックをサブスクライバーごとにグループ化します。

💡 ヒント
サブスクリプションとメンションは単純なリスト データであるため、同じコントラクトはメール以外のチャネルにも使えます。フローから送信する Teams のチャット メッセージやアダプティブ カードも、同じ受信者と同じリンクを使用します。変わるのはフローの最後のアクションだけです。

質問と回答

この記事について質問すると、サポートチームから公式回答を受け取れます。

まだ質問はありません。最初の質問を投稿しましょう。

注目の記事

Smart Search と SharePoint 組み込みの検索の違い

Vitextra Smart Search Web パーツと SharePoint Online の組み込みの Microsoft Search エクスペリエンスを実用的な観点で比較します。検索が表示される場所、設定を行う担当者、タブ、フィルター、結果のレイアウト、アクション、分析に加え、それぞれを使い分ける場面や併用する方法を説明します。

94 2 分
年間付与日数と繰越日数を設定する方法

Vitextra Absence & Coverage で、従業員ごとに個別の年間付与日数と繰越日数を設定する方法を説明します。Balances リスト、行が人・種類・年に対応付けられる仕組み、TypeId の調べ方、計算例、従業員が残日数カードで見る内容を解説します。

74 2 分
Vitextra の購入時の通貨を変更する方法

Vitextra アカウントのプロファイルで請求通貨を変更する方法、サポートされている通貨 (USD、EUR、GBP、JPY、CNY、CHF、AUD、CAD)、カート内の既存のアイテムの扱い、および購入後に通貨を変更できない理由について説明します。

100 1 分

共有