概要

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

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

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

Web パーツが行うこと

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

投稿できるユーザー (サイトに対する Add Items (アイテムの追加) アクセス許可。Contribute と Edit に含まれます) には、ボードのコマンド バーと各トピックのヘッダーに Follow ボタンが表示されます。1 回クリックすると頻度 Immediately でフォローします。ボタンのドロップダウン部分には Immediately、Daily digest、Weekly digest、および Unfollow があります。フォロー中は、ボタンに Following と選択した頻度が表示されます。新しいトピックの作成者は、自動的に Immediately でそのトピックをサブスクライブします。読み取り専用の閲覧者はサブスクリプション リストに書き込めないため、ボタンは表示されません。

頻度メニューを開いた Follow ボタン

頻度メニューを開いた Follow ボタン

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

メンション

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

Discussions Subscriptions リスト

列内部名値
UserVtxUserサブスクライバー (ユーザー列)
Target typeVtxTargetTypeBoard または Topic
Target idVtxTargetIdDiscussions Boards のボード アイテムの ID、または Discussions Topics のトピック アイテムの ID
FrequencyVtxFrequencyImmediate、Daily、Weekly のいずれか
BoardVtxBoardボードへの参照。トピックのサブスクリプションにも設定され、1 つのボードのすべてのサブスクリプションを 1 つのフィルターで読み取れるようにします
TitleTitleBoard:{id} または Topic:{id}。リスト ビューでの読みやすさのため

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

Discussions Subscriptions リスト

Discussions Subscriptions リスト

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

すべてのイベントは、2 つのコンテンツ リストの通常のアイテム イベントです。フローは標準の SharePoint トリガー When an item is created と When an item is created or modified を使用します。

イベントリスト条件
新しいトピックDiscussions TopicsApproval status = Approved でアイテムが作成された
モデレーターがトピックを承認Discussions Topicsアイテムが更新され、Approval status が Approved に変わった
新しい返信Discussions PostsApproval status = Approved でアイテムが作成された
返信が承認されたDiscussions Postsアイテムが更新され、Approval status が Approved に変わった
ベスト アンサーが承認されたDiscussions TopicsAccepted post が 0 から返信の ID に変わった
メンション両方のリストMentions にユーザーが含まれる
アイテムがモデレーション待ち両方のリストApproval status = Pending でアイテムが作成された

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

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

誰が何を受け取るか

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

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

頻度

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

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

フローが行うべきこと

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

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

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

注目の記事

Questions and Answers: エンド ユーザー向けクイック ガイド

SharePoint ページや Microsoft Teams で Vitextra Questions and Answers ナレッジ ベースを閲覧者として利用する方法を説明します。回答の展開、検索、カテゴリの切り替え、添付ファイル、動画、詳細リンクの表示、担当者への連絡、@メンション付きのコメント、質問へのリンクのコピー、自分の質問の投稿について解説します。

5 1 分
Vitextra サブスクリプションを管理する方法

Vitextra サブスクリプションを管理する手順を説明します。サブスクリプションの表示、ライセンスの追加と削除、Microsoft 365 テナントへのライセンスの割り当て、割り当ての削除、サブスクリプションの解約と解約後の動作を取り上げます。

73 1 分
RSS フィードが読み込まれないのはなぜですか? RSS Reader のトラブルシューティング

SharePoint Online と Microsoft Teams の Vitextra RSS Reader Web パーツのトラブルシューティング ガイドです。表示されないソース タブ、「アイテムが見つかりません」、「表示するアイテムがありません」、「申し訳ございません。問題が発生しました」、ログインが必要なフィードや社内限定のフィード、フィード アドレスではなく Web サイトのアドレス、無効な XML、表示されないイメージ、古く見えるアイテム、ライセンス メッセージについて、それぞれの確認方法と対処方法を説明します。

20 2 分

共有