Создание автоматического автоответчика

:bookmark: Это руководство объясняет, как настроить автоответчик с помощью плагина Automation в Discourse. Автоответчик может автоматически отвечать на сообщения или личные сообщения, содержащие определённые ключевые слова.

:person_raising_hand: Требуемый уровень пользователя: Администратор

Автоответчик в Discourse может автоматически отвечать на сообщения, содержащие определённые ключевые слова или фразы. Эта функция помогает модераторам и администраторам сосредоточиться на более сложных задачах, автоматизируя ответы на распространённые запросы или ситуации.

Краткое содержание

Это руководство охватывает:

  • Создание нового скрипта автоответчика
  • Выбор и настройку триггера
  • Настройку пар «слово/ответ»
  • Включение автоматизации

Создание нового скрипта

  1. Перейдите на страницу автоматизации вашего сайта по адресу example.discourse.com/admin/plugins/automation
  2. Нажмите + Create, чтобы создать новый скрипт
  3. Выберите опцию Auto Responder
  4. Снова нажмите + Create, чтобы продолжить

Выбор триггера

Выберите один из двух вариантов триггера:

  1. Создание/редактирование сообщения
  2. Создание личного сообщения

Варианты триггера «Создание/редактирование сообщения»

  • Тип действия: Ограничить сообщения, которые создаются или редактируются
  • Тип темы: Ограничить все темы, только публичные темы или только личные сообщения
  • Категории: Ограничить конкретными категориями
  • Исключить подкатегории: Запускать только если тема находится именно в указанных категориях (не в их подкатегориях)
  • Теги: Ограничить сообщения в темах с определёнными тегами
  • Ограниченные группы: Ограничить сообщения от пользователей в определённых группах
  • Исключённые группы: Пропустить, если пользователь, создавший сообщение, принадлежит к одной из этих групп
  • Ограниченные группы входящих: Ограничить личные сообщения в определённых групповых почтовых ящиках
  • Игнорировать автоматические: Пропустить, если у отправителя адрес электронной почты noreply или сообщение отправлено из автоматического источника (применяется только к сообщениям, созданным по электронной почте)
  • Допустимые уровни доверия: Ограничить сообщения от пользователей с определёнными уровнями доверия
  • Только исходное сообщение: Запускать только на исходном сообщении (OP) темы
  • Только первое сообщение: Ограничить первым сообщением пользователя
  • Только первая тема: Ограничить первой темой пользователя
  • Пропустить через email: Пропустить триггер, если сообщение было создано по электронной почте
  • Особенности сообщения: Ограничить сообщения, содержащие определённые элементы (изображения, ссылки, код или файлы)

Варианты триггера «Создание личного сообщения»

  • Пользователи: Ограничить личные сообщения, отправленные определённым пользователям
  • Группа: Ограничить личные сообщения, отправленные определённой группе
  • Игнорировать сотрудников: Пропустить, если отправитель является сотрудником
  • Игнорировать автоматические: Пропустить, если у отправителя адрес электронной почты noreply или сообщение отправлено из автоматического источника (применяется только к личным сообщениям, созданным по электронной почте)
  • Игнорировать участников группы: Пропустить, если отправитель является участником указанной группы
  • Допустимые уровни доверия: Ограничить личные сообщения от пользователей с определёнными уровнями доверия

Настройка параметров скрипта

После настройки триггера настройте следующие параметры:

  1. Пары «слово/ответ»: Определите ключевые слова и соответствующие ответы
  2. Пользователь, отправляющий ответ: Выберите учётную запись пользователя для автоматических ответов (по умолчанию — пользователь System)
  3. Чекбокс «Один раз»: Ограничить автоматизацию так, чтобы она срабатывала только один раз на тему

Настройка пар «слово/ответ»

  1. Нажмите кнопку Configure рядом с list of word / answer pairs
  2. Введите пары ключ/значение:
    • Ключ: Ключевое слово или фраза (без учёта регистра)
    • Значение: Текст автоматического ответа

:information_source: Параметр key интерпретируется как строка регулярного выражения с учётом границ слов. Экранируйте специальные символы, такие как ., с помощью обратного слэша (например, \\.). Вы можете протестировать свои регулярные выражения на regex101.com с использованием синтаксиса Ruby.

:mega: Используйте %%KEY%% в поле value как заполнитель для обнаруженного ключевого слова. Вы также можете использовать %%SENDER_USERNAME%% как заполнитель для имени пользователя, отправляющего ответ.

:bulb: Если несколько пар «слово/ответ» соответствуют одному и тому же сообщению, все соответствующие ответы объединяются в один ответ (разделённые пустыми строками).

Включение автоматизации

  1. Установите чекбокс Enabled в нижней части экрана
  2. Нажмите Update, чтобы сохранить изменения

:warning: Автоматизацию можно сохранить без включения, оставив чекбокс Enabled снятым.

9 лайков

Возможно ли ограничить автоматический ответ только на первый пост в теме? Можно подумать, что для этого подойдёт опция Once, но (при более внимательном рассмотрении) это верно только в том случае, если тема была создана после настройки автоматизации.

1 лайк

Альтернативно (или дополнительно?), можно ли установить дату автоматической публикации сразу после оригинального сообщения темы (а затем объединить их в таком порядке)?

1 лайк

Мой сценарий использования: ответ на темы в определённой категории с новым опросом для этой темы.

1 лайк

Итак… у вас есть категория старых обсуждений, и когда кто-то там отвечает, вы получаете автоматический ответ, который не очень полезен, но содержит информацию, которая могла бы быть полезна при создании новой темы… правильно? :smiley:

Если это так, то, к сожалению, я не думаю, что текущая автоматизация поддерживает такое поведение. Я просмотрел другие автоматизации и думаю, что единственная, которая может сработать, — это сортировка с помощью ИИ, но это кажется дорогим способом получить желаемый результат. :sweat_smile:

3 лайка

Да, верно. Насколько сложно было бы добавить новую опцию, чтобы она реагировала только на новые темы?

1 лайк

4 сообщения были перенесены в новую тему: Может ли автоответчик срабатывать при @упоминаниях?

Сообщение было перенесено в новую тему: Триггер «Создано/отредактировано сообщение» для автоматизации отправки личных сообщений

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

В настоящее время использование %%KEY%% в поле value в качестве заполнителя для обнаруженного ключевого слова является единственной доступной нам переменной шаблона в автоматизации автоответчика.

Похоже, что в автоматизации автоответчика нет встроенной переменной для получения имени пользователя человека, который отправил личное сообщение группе. Это ограничение текущей реализации, поскольку другие функции Discourse (например, шаблоны электронной почты, ИИ-персоны и скрипт автоматизации «Отправить личные сообщения») имеют различные пользовательские переменные.

С учётом этого, это похоже на несколько других запросов, которые мы получали по поводу подобной функциональности:

  1. Запрос на добавление переменных для реальных имён пользователей в скрипт «Отправить личные сообщения».
  2. Запрос на функциональность переменных для заготовленных ответов для получателей личных сообщений.

Если эта функция вам интересна, мы рекомендуем создать тему в разделе #feature с дополнительной информацией о том, какие именно переменные шаблона вы хотели бы видеть в этой автоматизации. Чем больше людей проявят интерес к функции, тем выше вероятность её реализации в Discourse. Это звучит как отличная идея, и мы хотели бы узнать больше о том, что именно вы ищете. :slightly_smiling_face:

2 лайка

Возможно ли использовать подстановочный знак для вызова ответа по любой теме, которая не соответствует ни одной из созданных вами пар ключевых слов?

Кроме того, если в одной теме упоминаются несколько ключевых слов, как выбирается ответ?
По алфавиту или сверху вниз?

Привет @tknospdr,

Механизм обнаружения триггеров автоответчика предназначен для реакции на конкретные регулярные выражения (regex), которые вы определяете в своих парах ключ/значение. Явной функции «ловушки для всего» (catch-all), которая срабатывала бы при отсутствии совпадений с другими парами ключей, не предусмотрено.

Однако, поскольку ключи интерпретируются как строки регулярных выражений, вы можете создать очень широкий шаблон regex в качестве последней записи, который будет соответствовать почти любому содержимому. Например, .* сработает как универсальный шаблон, хотя он будет совпадать со всем (включая контент, который уже соответствует вашим другим шаблонам).

Если в сообщении или теме обнаруживается несколько ключевых слов, автоответчик отправит ВСЕ соответствующие ответы. Ответы будут опубликованы в том же порядке, в котором были добавлены пары ключ/значение или которые указаны в конфигурации.

Это означает, что если ваше сообщение содержит ключевые слова, совпадающие с несколькими шаблонами, вы получите несколько автоматических ответов в последовательности их появления в вашем списке пар «слово/ответ».

1 лайк

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

Было бы здорово, если бы существовала настройка для:
:white_check_mark: Объединения нескольких совпадений пар ключей в один ответ.

Пока я вернусь к первоначальному варианту использования и добавлю .* и буду использовать единый общий ответ. За исключением того, что тогда он должен срабатывать только если {user} не публиковал сообщения в {category} в течение {x} дней.