Это руководство объясняет, как настроить автоответчик с помощью плагина Automation в Discourse. Автоответчик может автоматически отвечать на сообщения или личные сообщения, содержащие определённые ключевые слова.
Требуемый уровень пользователя: Администратор
Автоответчик в Discourse может автоматически отвечать на сообщения, содержащие определённые ключевые слова или фразы. Эта функция помогает модераторам и администраторам сосредоточиться на более сложных задачах, автоматизируя ответы на распространённые запросы или ситуации.
Краткое содержание
Это руководство охватывает:
Создание нового скрипта автоответчика
Выбор и настройку триггера
Настройку пар «слово/ответ»
Включение автоматизации
Создание нового скрипта
Перейдите на страницу автоматизации вашего сайта по адресу example.discourse.com/admin/plugins/automation
Варианты триггера «Создание/редактирование сообщения»
Тип действия: Ограничить сообщения, которые создаются или редактируются
Тип темы: Ограничить все темы, только публичные темы или только личные сообщения
Категории: Ограничить конкретными категориями
Исключить подкатегории: Запускать только если тема находится именно в указанных категориях (не в их подкатегориях)
Теги: Ограничить сообщения в темах с определёнными тегами
Ограниченные группы: Ограничить сообщения от пользователей в определённых группах
Исключённые группы: Пропустить, если пользователь, создавший сообщение, принадлежит к одной из этих групп
Ограниченные группы входящих: Ограничить личные сообщения в определённых групповых почтовых ящиках
Игнорировать автоматические: Пропустить, если у отправителя адрес электронной почты noreply или сообщение отправлено из автоматического источника (применяется только к сообщениям, созданным по электронной почте)
Допустимые уровни доверия: Ограничить сообщения от пользователей с определёнными уровнями доверия
Только исходное сообщение: Запускать только на исходном сообщении (OP) темы
Только первое сообщение: Ограничить первым сообщением пользователя
Только первая тема: Ограничить первой темой пользователя
Пропустить через email: Пропустить триггер, если сообщение было создано по электронной почте
Особенности сообщения: Ограничить сообщения, содержащие определённые элементы (изображения, ссылки, код или файлы)
Группа: Ограничить личные сообщения, отправленные определённой группе
Игнорировать сотрудников: Пропустить, если отправитель является сотрудником
Игнорировать автоматические: Пропустить, если у отправителя адрес электронной почты noreply или сообщение отправлено из автоматического источника (применяется только к личным сообщениям, созданным по электронной почте)
Игнорировать участников группы: Пропустить, если отправитель является участником указанной группы
Допустимые уровни доверия: Ограничить личные сообщения от пользователей с определёнными уровнями доверия
Параметр key интерпретируется как строка регулярного выражения с учётом границ слов. Экранируйте специальные символы, такие как ., с помощью обратного слэша (например, \\.). Вы можете протестировать свои регулярные выражения на regex101.com с использованием синтаксиса Ruby.
Используйте %%KEY%% в поле value как заполнитель для обнаруженного ключевого слова. Вы также можете использовать %%SENDER_USERNAME%% как заполнитель для имени пользователя, отправляющего ответ.
Если несколько пар «слово/ответ» соответствуют одному и тому же сообщению, все соответствующие ответы объединяются в один ответ (разделённые пустыми строками).
Включение автоматизации
Установите чекбокс Enabled в нижней части экрана
Нажмите Update, чтобы сохранить изменения
Автоматизацию можно сохранить без включения, оставив чекбокс Enabled снятым.
Возможно ли ограничить автоматический ответ только на первый пост в теме? Можно подумать, что для этого подойдёт опция Once, но (при более внимательном рассмотрении) это верно только в том случае, если тема была создана после настройки автоматизации.
Альтернативно (или дополнительно?), можно ли установить дату автоматической публикации сразу после оригинального сообщения темы (а затем объединить их в таком порядке)?
Итак… у вас есть категория старых обсуждений, и когда кто-то там отвечает, вы получаете автоматический ответ, который не очень полезен, но содержит информацию, которая могла бы быть полезна при создании новой темы… правильно?
Если это так, то, к сожалению, я не думаю, что текущая автоматизация поддерживает такое поведение. Я просмотрел другие автоматизации и думаю, что единственная, которая может сработать, — это сортировка с помощью ИИ, но это кажется дорогим способом получить желаемый результат.
Есть ли другие переменные шаблона, доступные в ответе? Я хотел бы иметь возможность получить имя пользователя человека, который отправил личное сообщение группе.
В настоящее время использование %%KEY%% в поле value в качестве заполнителя для обнаруженного ключевого слова является единственной доступной нам переменной шаблона в автоматизации автоответчика.
Похоже, что в автоматизации автоответчика нет встроенной переменной для получения имени пользователя человека, который отправил личное сообщение группе. Это ограничение текущей реализации, поскольку другие функции Discourse (например, шаблоны электронной почты, ИИ-персоны и скрипт автоматизации «Отправить личные сообщения») имеют различные пользовательские переменные.
С учётом этого, это похоже на несколько других запросов, которые мы получали по поводу подобной функциональности:
Если эта функция вам интересна, мы рекомендуем создать тему в разделе #feature с дополнительной информацией о том, какие именно переменные шаблона вы хотели бы видеть в этой автоматизации. Чем больше людей проявят интерес к функции, тем выше вероятность её реализации в Discourse. Это звучит как отличная идея, и мы хотели бы узнать больше о том, что именно вы ищете.
Механизм обнаружения триггеров автоответчика предназначен для реакции на конкретные регулярные выражения (regex), которые вы определяете в своих парах ключ/значение. Явной функции «ловушки для всего» (catch-all), которая срабатывала бы при отсутствии совпадений с другими парами ключей, не предусмотрено.
Однако, поскольку ключи интерпретируются как строки регулярных выражений, вы можете создать очень широкий шаблон regex в качестве последней записи, который будет соответствовать почти любому содержимому. Например, .* сработает как универсальный шаблон, хотя он будет совпадать со всем (включая контент, который уже соответствует вашим другим шаблонам).
Если в сообщении или теме обнаруживается несколько ключевых слов, автоответчик отправит ВСЕ соответствующие ответы. Ответы будут опубликованы в том же порядке, в котором были добавлены пары ключ/значение или которые указаны в конфигурации.
Это означает, что если ваше сообщение содержит ключевые слова, совпадающие с несколькими шаблонами, вы получите несколько автоматических ответов в последовательности их появления в вашем списке пар «слово/ответ».
Ох, это нехорошо. Это для нашей системы тикетов, и я бы не хотел спамить клиента двумя или тремя разными электронными письмами, когда он запрашивает помощь.
Было бы здорово, если бы существовала настройка для: Объединения нескольких совпадений пар ключей в один ответ.
Пока я вернусь к первоначальному варианту использования и добавлю .* и буду использовать единый общий ответ. За исключением того, что тогда он должен срабатывать только если {user} не публиковал сообщения в {category} в течение {x} дней.