Вопросы о значках, уровнях доверия, тегировании, метриках и решении тем в Discourse

Несколько вопросов по мере того, как мы продолжаем уточнять наше понимание и стратегию на https://community.tillerhq.com

  • Можно ли тегировать пост конкретного пользователя (а не только тему)? Сценарий использования: мы хотим отслеживать «решения», которые некоторые пользователи предоставляют, отвечая на вопросы других, предлагая конкретные рабочие процессы, шаги или инструкции.

  • Какие экзотические разрешения доступны для более высоких уровней доверия? Не кажется, что есть что-то особенное — зачем нужны более высокие уровни доверия, если они не дают дополнительных преимуществ?

  • Могут ли значки уровня доверия отображаться в постах вместе с именем пользователя? Сейчас нужно заходить в профиль, чтобы увидеть «значки», назначенные в соответствии с уровнем доверия. Сценарий использования: мы хотим отмечать пользователей с более высоким уровнем доверия.

  • Можно ли автоматизировать присвоение пользовательских значков? Например, за предоставление решения — похоже, что можно загружать пользовательские значки, но их нужно вручать вручную или массово. Можно ли обучить Discourse на другие значки?

  • Есть ли способ просмотреть или отфильтровать все «решённые» темы?

  • Можно ли изменить метрику «Липкость» (DAU/MAU) на еженедельную (WAU/MAU)? Мы отчитываемся по еженедельному графику, поэтому это было бы полезно.

Существует плагин под названием #plugin:data-explorer. Он позволяет выполнять запросы к базе данных, и, насколько я знаю, значки можно привязать к выполнению запроса. В этой категории много документации с примерами интересных запросов. :slight_smile:

Плагин Data Explorer может выполнить для вас запрос, если нужен отчёт, но вы также можете добавить ?solved= в конец запроса на фронтенде, например: /latest?solved=yes. Это работает и на страницах категорий.

Опять же, с помощью плагина Data Explorer, но в принципе всё, что отображается на экране метрик, — это запрос, который вы можете изменить и выполнить самостоятельно. Насчёт того, чтобы отображать это на дашборде именно так, не уверен. :thinking:

Пометить отдельный пост нельзя. Теги добавляются на уровне темы. Я понимаю, чего вы хотите достичь, но теги — не подходящий для этого инструмент. Возможно, стоит рассмотреть использование закладок как способа отметить посты, к которым вы хотите вернуться.

В этой статье блога подробно описаны возможности пользователей каждого уровня доверия: Understanding Discourse Trust Levels. Пользователи уровня доверия 3 и выше могут помогать вам управлять вашим сайтом. Пользователи уровня доверия 0 имеют очень ограниченный набор действий на сайте.

Я почти уверен, что это можно реализовать с помощью компонента темы. Существует готовый компонент темы для отображения значков рядом с именем автора поста: Post Badges. Однако, насколько я понимаю, он может использоваться только для отображения значков, перечисленных на вашей странице Администрирование / Значки. Вы можете воспользоваться подходом, описанным в следующем ответе, чтобы назначить пользовательский значок всем участникам определённого уровня доверия, а затем отображать этот значок рядом с именем автора поста.

Как вы уже отметили, пользовательские значки можно выдавать массово. Если у вас есть критерии для выдачи значка, это можно сделать в два шага с помощью плагина Data Explorer. Сначала создайте и активируйте пользовательский значок, затем напишите запрос Data Explorer, который вернёт адреса электронной почты пользователей, которым следует выдать значок. Например, если вы хотите выдать значок пользователям, создавшим 1000 постов, вы можете использовать примерно такой запрос Data Explorer:

SELECT
ue.email
FROM user_stats us
JOIN user_emails ue
ON ue.user_id = us.user_id
WHERE us.post_count > 1000
AND ue.primary = true
AND us.user_id > 0

Какой бы запрос вы ни использовали, убедитесь, что он возвращает одну колонку с именем email. После выполнения запроса нажмите кнопку CSV, чтобы скачать файл с результатами. Затем на странице вашего пользовательского значка нажмите кнопку «Массовое вручение» и загрузите CSV-файл. Значок будет выдан пользователям, полученным в результате вашего запроса Data Explorer.

Также можно выдавать пользовательские значки через API: Как выдать пользовательский значок через API.

Я думаю, что лучше всего решить эту задачу, написав запрос Data Explorer, который использует логику запроса DAU/MAU, но рассчитывает результаты на недельной основе.

Спасибо за ответ, @maiki и @simon.

Интересует, можно ли убрать функцию «Перекатегоризировать и переименовать темы» из группы TL3? Мы не нашли её в настройках администратора.

Также, похоже, мы рассматриваем уровни доверия как способ отслеживания и вовлечения когорт, а TL3 воспринимаем как «группу суперпользователей». Хотим понять, является ли это лучшей практикой, или же нам стоит рассматривать бейджи как более подходящий инструмент для организации когорт?

Какие уведомления (если есть) получает пользователь при повышении до следующего уровня доверия?

Если мы продолжим рассматривать уровни доверия как инструмент измерения вовлечённости и организации когорт, то было бы полезно «приветствовать» пользователя при переходе на новый уровень, сообщив ему о новых привилегиях в сообществе и о том, как ответственно ими пользоваться. Что вы думаете по этому поводу?

Я не думаю, что это сработает так, как вы хотите; рассматривайте уровни доверия как показатель общего вовлечения в глобальный сайт или, в вашем случае, во все когорты. Я настраивал хартии, использующие Discourse для общения, и создание категорий с членством в группах работает хорошо.

Возможно, вам не стоит использовать уровни доверия как таковые. Но на практике, я думаю, они не создают помех. Например, функция «Изменить категорию и переименовать темы» в основном используется для исправления мелких ошибок, когда они возникают. Я могу сделать это здесь, в этом Discourse. Я очень активен, и, думаю, использовал её лишь один раз. Моя мысль: сначала попробуйте, скорее всего, это не станет проблемой.

Также я заметил настройку «Доверенные пользователи могут редактировать чужие сообщения»: «Разрешить пользователям с высоким уровнем доверия редактировать контент других пользователей». Вы можете проверить, влияет ли это на «возможности» TL3. :slight_smile:

Если отключить настройку сайта «Доверенные пользователи могут редактировать чужие», пользователи TL3 больше не смогут изменять категории и переименовывать темы.

@simon или @maiki, есть ли у вас какие-либо мысли по этому поводу :point_down:

По умолчанию пользователи получают приветственное сообщение при достижении уровня доверия 1. Это можно отключить с помощью настройки сайта «send tl1 welcome message». Уведомления пользователям при достижении уровней доверия 2 или 3 не отправляются.

Спасибо! Возможно ли отправить пользователю уведомление, когда он достигает уровня TL2 или 3, @simon?

Мой предыдущий ответ был не совсем верным. Когда пользователи достигают Уровня доверия 2, им присваивается значок «Участник». Когда пользователи достигают Уровня доверия 3, им присваивается значок «Постоянный участник». Пользователи получают уведомления о получении этих значков. Если они нажмут на уведомление о значке, их перенаправит на страницу с подробным описанием значка. Хватит ли такого уведомления для вашего случая, или вам нужно отправлять пользователю личное сообщение?

Если возможно, отправьте личное сообщение — это было бы здорово и, возможно, более соответствует тому, что мы ищем.

Если вы не отключили настройку сайта discourse narrative bot enabled, пользователям будет отправлено сообщение о продвижении до уровня TL2. Это личное сообщение (ЛС) отправляется для начала расширенного туториала Narrative Bot. Вы можете настроить содержимое этого ЛС, чтобы предоставить пользователям дополнительную информацию при достижении уровня TL2.

Содержимое ЛС можно найти, выполнив поиск по discourse_narrative_bot.tl2_promotion_message.text_body_template на странице Администрирование / Настройка / Текст вашего сайта. Содержимое этого ЛС можно настроить. Однако не удаляйте из ЛС инструкции по запуску туториала, так как пользователям эта информация необходима для начала расширенного обучения.

Я не могу придумать простого способа отправки ЛС пользователям при достижении ими уровня TL3. Это можно реализовать через плагин, но также, вероятно, через API Discourse. Для реализации этого с помощью API потребуется выполнить несколько шагов.

В этом есть несколько проблем, а именно: уровень TL3 можно потерять и снова получить со временем. Люди, находящиеся на границе между уровнями, уже жаловались ранее на количество уведомлений о значках, которые они получали, прежде чем мы добавили период бездействия.

Спасибо, @riking, отличная мысль насчёт статуса TL3 с чередованием потери и выигрыша. Спасибо за предложение по PM для TL2, @simon.

@simon, есть ли какое-то готовое решение или что-то, что мы могли бы создать, чтобы наши участники могли видеть свой прогресс в направлении TL3 так же, как это делаем мы? Сводка на их профиле близка, но в ней не хватает контекста последних 100 дней…

Мы хотели бы предоставить пользователям ссылку на страницу, где они смогут отслеживать свой прогресс в достижении этих целей в сообщении, которое мы отправляем при достижении TL2, чтобы мотивировать их продолжать двигаться к TL3 ещё быстрее.

Запрос в Data Explorer из этого сообщения станет хорошей отправной точкой: Data Explorer query to show progress towards trust level 3 requirements - #2 by simon. Чтобы предоставить этот запрос пользователям, можно «зашить» существующие параметры запроса прямо в SQL-код. Они должны соответствовать параметрам, которые вы видите на странице настроек вашего сайта при поиске по TL3. Затем к запросу можно добавить параметр имени пользователя, чтобы участники могли вводить своё имя.

Самая большая проблема, которую я здесь вижу, заключается в том, что это позволит пользователям запрашивать статус других участников на сайте. По этой причине я бы не хотел предоставлять такой группе, как группа TL2, доступ к запросу, если не удастся найти способ автоматически подставлять параметр имени пользователя в фоновом режиме на основе имени текущего пользователя. Для этого потребуется изменение в коде Discourse.