Автоматизация 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:Замороженная вики
Автоматически закрывает тему
Создать пост :black_small_square:Повторяющийся
:black_small_square:Конкретное время
Создаёт пост
Пометить пост по словам :black_small_square:Пост отредактирован/создан Помечает тему при создании/редактировании, если она содержит определённые слова
Обмен подарками :black_small_square:Конкретное время Простая реализация игры «Тайный Санта»
Уведомление категории группы по умолчанию :black_small_square:Категория создана/отредактирована Автоматически устанавливает уровень уведомлений группы для вновь созданных подкатегорий
Сделать тему баннером :black_small_square:Конкретное время Преобразует тему в баннерное уведомление
Закрепить тему :black_small_square:Конкретное время Закрепляет и открепляет тему в будущем
Случайное назначение
(Assign)
:black_small_square:Конкретное время
:black_small_square:Повторяющийся
Случайно назначает тему
Планирование ЛС с результатами Data Explorer
(Data Explorer)
:black_small_square:Повторяющийся Отправляет регулярное личное сообщение с результатами запроса Data Explorer
Отправить сообщение в чат
(Chat)
:black_small_square:Событие началось
:black_small_square:Повторяющийся
Отправляет сообщение в чат каналу
Отправить ЛС :black_small_square:Первое принятое решение (Solved)
:black_small_square:Выдана награда пользователю
:black_small_square:Пользователь добавлен в группу
:black_small_square:Замороженная вики
:black_small_square:Повторяющийся
:black_small_square:Продвижение пользователя
:black_small_square:Вызов API
:black_small_square:Пользователь удалён из группы
Отправка личных сообщений с поддержкой заполнителей
Временная блокировка пользователя по электронной почте :black_small_square:Вызов API Временно блокирует пользователя на указанный срок
Обязательные слова в теме :black_small_square:Тема Требует наличия хотя бы одного из указанных слов в постах темы
:bookmark: Классификация постов с помощью ИИ (Discourse AI) :black_small_square:Пост создан/отредактирован Улучшает управление и модерацию постов на форуме за счёт автоматизации процесса классификации постов
Глобальное уведомление пользователю :black_small_square:Замороженная тема
:black_small_square:Первое принятое решение (Solved)
Отображает глобальное уведомление на сайте для конкретного пользователя
:bookmark: Членство в группе через награды :black_small_square:Повторяющийся
:black_small_square:Первый вход пользователя в систему
Автоматически добавляет пользователей в группу на основе полученных ими наград
Webhook Zapier :black_small_square:Продвижение пользователя
:black_small_square:Пользователь добавлен в группу
:black_small_square:Выдана награда пользователю
:black_small_square:Пользователь удалён из группы
Вызывает webhook Zapier

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

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

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

Большинство триггеров говорят сами за себя, но вот несколько, которые могут потребовать дополнительных пояснений:

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

Если вам нужна разъяснение по каким-либо другим триггерам, не стесняйтесь задавать вопросы ниже. :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?
Can discourse delete archived posts automatically and accept registration without email?
Ability to add multiple topic timers
Prevent users from moving topics in other categories
A Bot to match random users?
Add users to groups on signup
Webhook - TL Demotion
Future pin topics! (feature request)
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
Can I send message to who had the special badge automatically?
How to integrate Discourse Gamification with an external system (redeem and award points)
Limiting Subscription Length
Teach Discobot?
Can watching a category watch all its subcategories as well?
Restricting users to join any one private group
Discobot Type Message Automation
Onboarding course?
Trust level freeze
Linked topics (splitting and managing megatopics)
Chat Auto-responder?
Endorsement Prompts
What if badges could optionally synchronize group membership?
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
500 error using automation plugin
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
Changing automated Personal Message text
New user filter by custom field and contact
Category Exclusion (Blacklist) for Automation Triggers
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
Advice on a support forum
Welcome message
Setting up toxicity detection in your community
Automated tagging when topic is created
Discourse Chat Integrations
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
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
Group based on Custom Field
Looking for help posting automating data explorer reports to my forum
Automatically Assigning Titles Based on Trust Level in Discourse
Reply bot for Discourse?
PM auto responder
Has anyone created a custom Automation?
Create custom Automations
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?

На заметку: я обновил первое сообщение, добавив таблицу со всеми существующими автоматизациями и соответствующими им триггерами. :+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 лайк

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

1 лайк

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