Обзор
Discussions разделяет уведомления на две части. Веб-часть фиксирует, кто о чём хочет узнавать: она ведёт список подписок, позволяет пользователям подписаться на доску или тему с выбранной частотой и помечает людей, упомянутых в сообщении. Доставка писем оставлена потоку Power Automate, который владелец сайта запускает в собственном клиенте. Сама веб-часть никогда не отправляет почту и не запрашивает разрешение Mail.Send или какое-либо иное разрешение Microsoft Graph; данные, нужные потоку, лежат в обычных списках SharePoint на сайте.
В этой статье описан этот контракт: что веб-часть гарантирует в списках и что поток должен с этим делать.
❗ Важно
В версии 26.10.2 шаблон потока Power Automate не поставляется. Веб-часть сохраняет подписки и упоминания, как описано ниже, но письма не отправляются, пока в вашем клиенте не появится поток. Контракт из этой статьи — это то, на чём такой поток строится; готовый к импорту шаблон и статья о его настройке запланированы на один из следующих выпусков.
Что делает веб-часть
Подписка на доску или тему
Пользователи, которые могут писать (разрешение Добавление элементов (Add Items) на сайте, входящее в уровни «Участие» и «Изменение»), видят кнопку Подписаться на панели команд доски и в заголовке каждой темы. Один щелчок подписывает с частотой Сразу; раскрывающаяся часть кнопки предлагает варианты Сразу, Ежедневная сводка и Еженедельная сводка, а также Отписаться. Когда пользователь подписан, на кнопке написано Подписка и выбранная частота. Автор новой темы подписывается на неё автоматически с частотой Сразу. У посетителей с правами только на чтение кнопки нет, потому что они не могут писать в список подписок.

Каждая подписка — это один элемент списка Подписки обсуждений (Discussions Subscriptions), по одному на пользователя и объект: повторная подписка на ту же тему с другой частотой обновляет элемент, а не добавляет второй, а Отписаться удаляет его. Поэтому отключить уведомления значит удалить свои подписки; отдельного признака «без звука» нет. Руководство пользователя — в статье KB10404. Подписка на доски и темы: подписки и частота сводок.
Упоминания
Когда пользователь вводит в редакторе @ и выбирает человека, веб-часть вставляет в текст сообщения ссылку вида <a href="mailto:…" data-mention-id="{siteUserId}">@Имя</a> и одновременно добавляет человека в столбец «пользователь» Упоминания темы или ответа. Этот столбец — сигнал для потока: ему не нужно разбирать HTML, чтобы узнать, кто упомянут. Упоминания можно править вместе с сообщением; столбец перезаписывается при каждом сохранении. См. KB10403. Упоминания @ в Discussions.
Список «Подписки обсуждений»
| Столбец | Внутреннее имя | Значение |
|---|---|---|
| Пользователь | VtxUser | Подписчик (столбец «пользователь») |
| Тип объекта | VtxTargetType | Board или Topic |
| Идентификатор объекта | VtxTargetId | Идентификатор элемента доски в списке Доски обсуждений (Discussions Boards) или элемента темы в списке Темы обсуждений (Discussions Topics) |
| Частота | VtxFrequency | Immediate, Daily или Weekly |
| Доска | VtxBoard | Подстановка на доску, в том числе для подписок на темы, чтобы все подписки одной доски можно было прочитать одним фильтром |
| Название | Title | Board:{id} или Topic:{id}, для удобства чтения в представлениях списка |
Значения столбцов выбора хранятся на английском языке независимо от языка интерфейса; отображаемые имена столбцов следуют языку того, кто создал списки. Список находится на том же сайте, что и доска, и наследует разрешения сайта, поэтому для подписки нужны права на запись.

События, на которые реагирует поток
Все события — это обычные события элементов двух списков с содержимым; поток использует стандартные триггеры SharePoint При создании элемента и При создании или изменении элемента.
| Событие | Список | Условие |
|---|---|---|
| Новая тема | Темы обсуждений | Элемент создан со значением Статус утверждения = Approved |
| Тема утверждена модератором | Темы обсуждений | Элемент изменён, и Статус утверждения сменился на Approved |
| Новый ответ | Сообщения обсуждений | Элемент создан со значением Статус утверждения = Approved |
| Ответ утверждён | Сообщения обсуждений | Элемент изменён, и Статус утверждения сменился на Approved |
| Принят лучший ответ | Темы обсуждений | Принятый ответ сменился с 0 на идентификатор ответа |
| Упоминание | Оба списка | Упоминания содержит пользователей |
| Элемент ожидает модерации | Оба списка | Элемент создан со значением Статус утверждения = Pending |
На доске без утверждения каждый новый элемент создаётся со значением Approved; на доске с параметром Требовать утверждения новых сообщений элементы участников создаются со значением Pending и получают Approved, когда модератор их утверждает, — именно в этот момент следует уведомить подписчиков. Отклонённые элементы уведомлений не порождают.
📝 Заметка
Владелец сайта может переименовать списки, потому что веб-часть распознаёт их по идентификаторам столбцов. Поэтому поток должен ссылаться на списки по их идентификатору (GUID), а не по названию, и читать значения столбцов по внутренним именам (VtxApprovalStatus, VtxMentions, …).
Кто что получает
Правила выбора получателей в контракте:
- Новая тема — подписчики доски: элементы с Тип объекта =
Boardи Идентификатор объекта = Доска темы. - Новый ответ — подписчики темы (Тип объекта =
Topic, Идентификатор объекта = Тема ответа) плюс подписчики доски этой темы. Автор ответа исключается. - Лучший ответ — автор принятого ответа и подписчики темы.
- Упоминание — пользователи из столбца Упоминания элемента. Они уведомляются независимо от подписок и их частоты; упомянутый человек не может отключить упоминания.
- Ожидает модерации — участники группы владельцев сайта, которые являются модераторами доски.
Частоты
- Immediate — поток с триггером При создании или изменении элемента отправляет по одному письму на событие подписчикам с этой частотой.
- Daily и Weekly — запланированный поток собирает темы, у которых Последняя активность попадает в период, и отправляет одну сводку на подписчика. Ответ обновляет Последнюю активность своей темы, поэтому сводка, построенная по темам, охватывает и новые ответы.
Ссылки в письме
Тема открывается через страницу, на которой размещена веб-часть Discussions, с параметром запроса ?topic={Id}, где {Id} — идентификатор элемента в списке Темы обсуждений. Веб-часть нигде в списках не хранит адрес своей страницы, поэтому адрес страницы — это параметр потока. Та же прямая ссылка используется веб-частью Discussions Activity и описана в статье KB10407. Как поделиться ссылкой на тему в Discussions (прямые ссылки).
Что должен делать поток
Вкратце, поток доставки, построенный на этом контракте:
- выполняется от имени владельца сайта или общего почтового ящика вашего клиента — отправитель принадлежит вам, а не Vitextra;
- срабатывает на перечисленные выше события элементов списков Темы обсуждений и Сообщения обсуждений, по идентификатору списка;
- читает список Подписки обсуждений с фильтром по Доске (и по Типу объекта / Идентификатору объекта), чтобы определить получателей, и столбец Упоминания элемента — для упомянутых пользователей;
- исключает автора элемента и устраняет дубли, когда человек одновременно подписан и упомянут;
- строит ссылку из собственного параметра с адресом страницы и идентификатора темы;
- для сводок выполняется по расписанию и группирует темы по подписчикам.
💡 Совет
Поскольку подписки и упоминания — это обычные данные списков, тот же контракт подходит и для других каналов, помимо почты: сообщение в чате Teams или адаптивная карточка, отправленные потоком, используют тех же получателей и ту же ссылку. Меняется только последнее действие потока.