Автоматизация Discourse

:discourse2: Краткое описание Discourse Automation позволяет автоматизировать действия с помощью скриптов и триггеров. Настройка осуществляется через автоматически генерируемый пользовательский интерфейс.
:open_book: Руководство по установке Этот плагин входит в состав ядра Discourse. Отдельная установка плагина не требуется.

Возможности

  • Простая автоматизация сложных рабочих процессов
  • Запуск автоматизации в определенные даты, периодически или при конкретных событиях
  • Предоставляет автоматически генерируемые интерфейсы для указания параметров вашей автоматизации

Настройка

Автоматизации можно создавать и обновлять в разделе Администрирование → Плагины → Автоматизации, или напрямую по адресу /admin/plugins/discourse-automation.

Доступные скрипты

Руководство Скрипт Триггер(ы) Описание
:bookmark: Добавить пользователя в группу через пользовательское поле :black_small_square:Повторяющийся
:black_small_square:Первый вход в систему
Добавляет пользователя в группу на основе пользовательского поля пользователя
:bookmark: Добавить «последняя проверка кем» :black_small_square:После обработки поста Добавляет функцию «последняя проверка кем» в конец первого поста (OP)
:bookmark: Добавить «последнее редактирование кем» :black_small_square:После обработки поста Добавляет заметку «последнее редактирование кем» в конец первого поста (OP)
:bookmark: Автоответчик :black_small_square:Пост отредактирован/создан
:black_small_square:ЛС создана
При наличии набора ключевых слов и соответствующих ответов автоматически отвечает соответствующим ответом
Автоматическая маркировка темы :black_small_square:Пост создан/отредактирован
:black_small_square:ЛС создана
Автоматически помечает тему тегами
Закрыть тему :black_small_square:Точка времени
:black_small_square:Застывшая wiki
Автоматически закрывает тему
Создать пост :black_small_square:Повторяющийся
:black_small_square:Точка времени
Создает пост
Пометить пост по словам :black_small_square:Пост отредактирован/создан Помечает тему при создании/редактировании, если она содержит определенные слова
Обмен подарками :black_small_square:Точка времени Простая реализация игры «Тайный Санта»
Значок уведомления группы по умолчанию :black_small_square:Категория создана/отредактирована Автоматически устанавливает уровень уведомлений группы для вновь созданных подкатегорий
Сделать баннерную тему :black_small_square:Точка времени Преобразует тему в баннерное уведомление
Закрепить тему :black_small_square:Точка времени Закрепляет и открепляет тему в будущем
Случайное назначение
(Назначение)
:black_small_square:Точка времени
:black_small_square:Повторяющийся
Случайно назначает тему
Запланировать ЛС с результатами Data Explorer
(Data Explorer)
:black_small_square:Повторяющийся Отправляет регулярную ЛС с результатами запроса Data Explorer
Отправить сообщение в чат
(Чат)
:black_small_square:Событие началось
:black_small_square:Повторяющийся
Отправляет сообщение в чат в канал
Отправить ЛС :black_small_square:Первое принятое решение (Решено)
:black_small_square:Пользователю присужден значок
:black_small_square:Пользователь добавлен в группу
:black_small_square:Застывшая wiki
:black_small_square:Повторяющийся
:black_small_square:Пользователь повышен
:black_small_square:Вызов API
:black_small_square:Пользователь удален из группы
Отправка ЛС с поддержкой заполнителей
Приостановить пользователя по email :black_small_square:Вызов API Приостанавливает пользователя на указанный срок
Обязательные слова в теме :black_small_square:Тема Обеспечивает наличие хотя бы одного из указанных слов в постах темы
:bookmark: Трассировка постов с помощью ИИ (Discourse AI) :black_small_square:Пост создан/отредактирован Улучшает управление и модерацию постов на форуме за счет автоматизации процесса классификации постов
Глобальное уведомление для пользователя :black_small_square:Застывшая тема
:black_small_square:Первое принятое решение (Решено)
Отображает глобальное уведомление на сайте для конкретного пользователя
:bookmark: Управление членством в группе пользователя через значки :black_small_square:Повторяющийся
:black_small_square:Первый вход пользователя в систему
Автоматически добавляет пользователей в группу на основе полученных ими значков
Zapier webhook :black_small_square:Пользователь повышен
:black_small_square:Пользователь добавлен в группу
:black_small_square:Пользователю присужден значок
:black_small_square:Пользователь удален из группы
Вызывает вебхук Zapier

Доступные триггеры

Обратите внимание, что из-за своей природы каждый скрипт поддерживает только определенные триггеры. Например, бессмысленно, чтобы скрипт, обеспечивающий содержание поста, срабатывал при добавлении пользователя в группу.

Все доступные триггеры указаны в таблице «Доступные скрипты» выше.

Большинство триггеров очевидны, но вот несколько, которым может потребоваться более подробное описание:

Триггер Описание
После обработки поста Срабатывает после рендеринга поста для отображения
Вызов API Срабатывает при вызове определенного конечного точки API
Застывшая wiki Срабатывает, когда wiki не редактировалась в течение определенного времени
Застывшая тема Срабатывает, когда в теме не было ответов в течение определенного времени
Тема Срабатывает при ответе на тему

Если вам нужна дополнительная ясность по любым другим, не стесняйтесь спрашивать ниже. :slight_smile:

Больше скриптов и триггеров будет добавлено!

Пользовательские автоматизации

Вы также можете создавать пользовательские автоматизации. :partying_face: Ознакомьтесь с руководством для разработчиков для получения дополнительной информации - Create custom Automations


:discourse2: Хостится у нас? Этот плагин доступен в наших планах Business и Enterprise. Automation | Discourse - Civilized Discussion

77 лайков
Are there any examples "in the wild" of interesting things the Discourse Automation plugin can do?
Creating bot on discourse
An 'add to group' script for the Discourse Automation
Sending a private message automatically to new users?
Trigger an email to all users periodically with a pre-defined message or link
Choose groups and watched categories on signup
Users self-select Category on Registration... is it possible?
Webhook - TL Demotion
Prevent users from moving topics in other categories
Can discourse delete archived posts automatically and accept registration without email?
Ability to add multiple topic timers
A Bot to match random users?
Onboarding course?
Can I send message to who had the special badge automatically?
When a thread is too important to lose
Welcome message
Creating an automated message upon successfully answering to a topic
Unlist or archive a post when it has no reply per category
Trust Level Wishlist Items
How to change owner of invite links?
Voting plugin requirements
No errors, instance not coming back up after rebuild
How to set a welcome email to be sent as soon as a user signs up?
Automatic Messaging
Limiting Subscription Length
How to integrate Discourse Gamification with an external system (redeem and award points)
Teach Discobot?
Can watching a category watch all its subcategories as well?
Restricting users to join any one private group
Trust level freeze
Discobot Type Message Automation
Linked topics (splitting and managing megatopics)
Future pin topics! (feature request)
Convert a category to private and add users to a specific group with access
Is there a component so when a topic is marked as Solved, the topic gets locked and a custom message is posted with it?
Setting up spam detection in your community
Creating a custom Automation
Exclude certain categories from the Trust Levels
Query to create some groups based on activity
Pie-in-the-sky idea: arbitrary automation scripts via docker image
How can I set up invites by members so admins control what invitees see?
Default Tag for specific Categories
How to respond to automatic topics with AI
Pin on certain days
Discourse AI - AI triage
Restrict users to post certain words per category
Plugin or other option to require a post and a like?
Gamification beyond Leaderboard
Configuring automatic post review triggers
Is it possible to moderate all personal messages sent between users?
Where would I find documentation on auto-bumping?
Alternative sign up pathways
A Plug-In to convert Discourse Forum Discussions into Clear Proposal Revisions with Community-Sourced Justifications
Bug Report: "Auto Tag Topic" in Discourse Automation — Link Detection Not Working, Onebox Triggers Image
Mandatory Topic Timers for all topics in a category
Can no longer create global banners from restricted categories
How to generate AI replies for forum topics using Persona
Discourse AI - AI triage using Agent
Is there a way to schedule the creation of a topic? And to schedule a reply to someone else's topic?
Is there a way to schedule the creation of a topic? And to schedule a reply to someone else's topic?
Topic ID as a variable?
Automation script: Move topic on close
Can I send an automated welcome message to all new users?
Allow bumping for topics with zero replies
Customizing trust level promotion messages for new users
Auto-categorize topics using AI
Setting up automated admin notice alerts
Discourse AI - Periodic summary reports
New user filter by custom field and contact
Advice on a support forum
Tag topics using AI
Publishing a post automatically at a set time
"Triage posts using AI" script of "Automation" plugin always includes image data in request
"Needs Approval" review items from “Triage posts using AI” script of “Automation” plugin not visible to moderators
Add users to groups on signup
Changing automated Personal Message text
Category Exclusion (Blacklist) for Automation Triggers
Welcome message
Setting up toxicity detection in your community
Automated tagging when topic is created
Email-in Filtering or Multiple Emails per Category/Group
Unanswered topic notification
Autoresponder (after 15 minutes) when someone joins my discourse
2.8.0.beta3: User-selectable Avatar Flair, Last Topic Visit Indicator, Native File Picker, and more
Add timer to banner topics
Agree to additional terms before joining group
@ mentioning every community members
Reconciling Discourse Chat with other Community Chat Tools like Discord
Send Promotion PMs
Groups for Users
Bulk mark messages and posters as spam
How to automate messages
Automatically move topic category after topic close
Bringing Icebreakers into Discourse
Discourse Chat Integrations
How are `system_messages.welcome_user.*` values used?
Adding tags to topics created with Discourse Embed feature?
Discourse AI - Periodic summary reports
Automatically delete users flagged by system?
How to create autoresponder using automation
Select a group when registering?
Make topic a global banner for n period of time when created in a category
Looking for help posting automating data explorer reports to my forum
Automatically Assigning Titles Based on Trust Level in Discourse
Has anyone experimented with using the usual "Lounge" category with trust level 2
How to schedule posts (not topics)?
Automate post creation on Discourse with multiple users
Customise text for TL3 promotion PM
Choose groups and watched categories on signup
Grant Badge when user visits link
Discourse Subscriptions with Thrive Cart
Can I send message to who had the special badge automatically?
Automatic and periodic PMs for new users
Invitation Links are Only Working for Non-existing Users & Breaking Our Current Implementation
Add members of trust_level_3 to another group and remove them once they lose the trust_level_3
Webhooks plugin
Registration for non-Facebook Users
Membership anniversary
How to add all members in a new group?
New user alerts
An 'add to group' script for the Discourse Automation
Daily Summary Feedback
Watched Words Reference Guide
Can a user block a user group?
Chat Auto-responder?
Endorsement Prompts
What if badges could optionally synchronize group membership?

На заметку: я обновил первое сообщение, добавив таблицу со всеми существующими автоматизациями и соответствующими им триггерами. :+1:

(Также надеюсь добавить больше руководств, так как одно для «Добавить пользователя в группу…» выглядит немного одиноко :slight_smile:)


Добавлено ещё несколько пошаговых инструкций для Setting up the ‘Append last edited by’ automation и Setting up the 'Append last checked by' automation. :tada:

А также совершенно новый скрипт — Членство в группах пользователей через бейджи. :partying_face: Он совсем свежий, поэтому, если попробуете, дайте знать, как всё прошло. :+1:

12 лайков

Теперь я чувствую себя очень-очень… не глупым, но почти. Где я могу создавать автоматизации? В разделе плагинов я могу только включать или отключать автоматизацию.

3 лайка

После включения плагина вы должны увидеть здесь новый элемент:

Возможно, потребуется обновить страницу, чтобы увидеть его.

3 лайка

И теперь я чувствую себя полным идиотом :man_facepalming:

Спасибо.

1 лайк

Я тоже когда-то застревал на этом :slight_smile:

Ответы на эту тему, наверное, стоит настроить на автоматическое удаление через 30 дней. По крайней мере, этот ответ.

2 лайка

Мы больше не делаем этого для тем с тегом official для плагинов. Слишком много ценной информации было утеряно из-за таймеров тем. Теперь мы вручную курируем их и разделяем любые значимые обсуждения на отдельные тематические ветки с тегами (а также рекомендуем людям сразу создавать отдельные темы). :+1:

18 лайков

Пост был разделён на новую тему: Автоматизация закрытия решённых тем и отправка шаблонного ответа

:information_source: Автоматизация Discourse теперь включена в ядро Discourse, поэтому этот плагин больше не нужно устанавливать отдельно. :partying_face:

:discourse2: Размещено нами? Это изменение никак не повлияет на вас. :+1: Если вы используете тарифы Business или Enterprise, вы можете продолжать пользоваться этим плагином и ни о чём не беспокоиться.

6 лайков

Существует ли скрипт автоматизации, который может изменить категорию? Я хотел бы использовать его для создания более гибкой системы «Публикация по расписанию».

Представляю, что скрипт будет:

  • запускаться периодически,
  • проверять темы в заданной категории, которые содержат какой-либо маркер в ответе (например, отмечено как решённое или ответ содержит определённый текст, например «PUBLISH»),
  • если дата этого ответа (или статус «решено») находится в прошлом на заданный интервал (например, вчера или неделю назад),
  • удалять все ответы,
  • перемещать тему в указанную категорию,
  • по желанию добавлять настраиваемые теги.

Более продвинутая версия могла бы искать дату/время в триггерном ответе и публиковать тему, если текущее время уже наступило после указанной даты/времени.

Также она могла бы искать целевую категорию в этом сообщении (с настройкой скрипта для разрешённых целевых категорий). То же самое касается и тегов.

3 лайка

Это возможно, но на данный момент ничего подобного не существует.

1 лайк

Здравствуйте, я не понимаю, для чего нужен этот триггер. Похоже, он может отправлять личные сообщения, но кому? Поскольку вики-страницу могут редактировать несколько пользователей. Спасибо.

В интерфейсе вы решаете, кто будет получать личные сообщения.

1 лайк

Есть ли способ создать собственный скрипт?

В этой теме человек ищет возможность требовать модерации для личных сообщений.

Поэтому, я предполагаю:

  • Триггер «Создать личное сообщение».
  • Автоматическая пометка для проверки.

Полагаю, что да:

Хотя для этого потребуются некоторые навыки разработки.

4 лайка

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

Спасибо, Jammy, за быстрый ответ. Как всегда, кладезь знаний.

2 лайка

Привет, я не понимаю, как это работает. У меня есть пользовательское поле, которое может принимать два значения: «Да» или «Нет» (выпадающий список). Но при создании автоматизации меня просят указать только имя пользовательского поля, а не его значение. Как мне настроить триггер автоматизации для добавления пользователя в группу, если я не могу проверить значение пользовательского поля? Спасибо.

1 лайк

Значение пользовательского поля должно совпадать с названием группы. Так что, если ваш вопрос — «Что вам нравится больше?», а ваши ответы — «собаки» и «кошки», то полные названия групп должны быть именно «собаки» и «кошки». Нельзя называть их «любители собак» и «любители кошек».

В связанном руководстве есть подсказка:

но сначала я тоже не понял этого.

1 лайк

Понял, значит, мой вариант не подходит: нельзя использовать пользовательское поле с ответами «Да» или «Нет», потому что название группы должно быть именно «Да» или «Нет»… :roll_eyes:

1 лайк

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