Мы разрабатываем новую функцию Workflows, предназначенную для поддержки сложных задач, с которыми не справляется наш существующий инструмент Automations. Этот новый визуальный конструктор автоматизации позволяет создавать многошаговые рабочие процессы с задержками по времени, условными ветвлениями, вызовами внешних сервисов и действиями ИИ непосредственно в административной панели.
Функция Workflows доступна на планах Business и Enterprise для пользователей хостинга Discourse.
Обзор функции Workflows
Workflows заменяет подход, требующий написания скриптов в существующем плагине Automations, на визуальное канвас-поле на основе узлов, которые вы соединяете для создания сложной многошаговой логики.
Триггеры инициируют рабочий процесс в ответ на события в Discourse (например, создание темы, добавление пользователя в группу и т. д.), по расписанию, через вебхук или вручную.
Условия создают ветвления в рабочем процессе на основе логики «да/нет» для любых данных в рабочем процессе.
Действия — это события, запускаемые рабочим процессом, такие как отправка личного сообщения или сообщения в чат, публикация ответа, вызов HTTP-эндпоинта, запуск агента ИИ или запрос к Data Explorer.
Утилиты управляют самим потоком, устанавливая задержки, циклы по элементам и переменные, а также могут помочь в документировании рабочего процесса с помощью заметок.
Параметры каждого узла поддерживают литеральные значения и динамические выражения, поэтому вы можете ссылаться на вывод любого предыдущего узла, переменные рабочего процесса или контекст выполнения из более раннего шага в более позднем.
Workflows включает несколько дополнительных инструментов для более удобного создания и управления результатами:
Переменные — это хранимые пары «ключ/значение» (например, ID групп, ID категорий и т. д.), которые легко доступны во всех рабочих процессах для упрощения конфигурации.
Учетные данные — это место, где вы можете хранить переиспользуемую конфигурацию аутентификации для узлов HTTP-запросов, чтобы не вставлять API-ключи в свои рабочие процессы.
Таблицы данных используются для хранения и запроса данных во время выполнения, чтобы вы могли отслеживать выполнения (например, видеть, запускался ли рабочий процесс уже для конкретной темы) и легко ссылаться на вывод рабочего процесса.
Каждый запуск рабочего процесса создает полный журнал на вкладке Executions. Вы можете видеть, какие узлы выполнялись, какие данные они получали, что они вывели и где остановился рабочий процесс, если что-то пошло не так.
Чтобы попробовать, перейдите в раздел Предстоящие изменения по адресу /admin/config/upcoming-changes, найдите пункт Enable Discourse workflows и обновите поле Enabled for…, чтобы включить его на вашем сайте.
За последние 4 недели мы создали несколько интеграций и автоматизаций с помощью этого нового плагина, и могу сказать только одно: он просто фантастичен и кардинально меняет ситуацию для Discourse. Это поистине лучшая новая функция за много лет (а и так уже есть немало потрясающих возможностей ).
Это просто безумная идея. Я потратил много времени на создание мощных интеграций между n8n и Discourse. Невероятная инициатива, это значительно ускорит развитие Discourse.
Мне нравятся новые рабочие процессы — это настоящее изменение правил игры, и их можно связывать с такими сервисами, как n8n.
Я заметил, что лимит запросов часто достигается — как это можно изменить?
Кроме того, не совсем понимаю причину, но иногда процесс просто останавливается, и единственный способ запустить его снова — отключить эту функцию, а затем включить обратно через раздел «Предстоящие изменения».
Представьте, что вы можете создать поток, в котором на основе уровня доверия пользователей реализуются динамические действия. Например, если пользователь одновременно состоит в двух определённых группах, его автоматически добавляют в третью группу, предоставляющую доступ к новой категории.
Реализовать такие динамические поведения в стандартном Discourse довольно сложно.
Мне хотелось бы понять, в каких случаях следует продолжать использовать Автоматизации + запросы, а когда действительно стоит использовать Рабочие процессы. Возьмем в качестве примера следующее действие:
Отправлять личные сообщения пользователям, у которых соотношение прочитанных к написанным постам превышает 250:1 (и которые в конечном итоге попадут в группу «исключенных из списка», также известную как «наблюдатели»)
Какой инструмент более эффективен и/или рекомендуется для этого конкретного случая? Когда следует использовать Автоматизации + запросы, а когда — Рабочие процессы?
Я понимаю, что Рабочие процессы позволяют принимать разветвленные решения и, следовательно, обеспечивают создание динамических диаграмм; для начала мне хотелось бы узнать мнение опытных пользователей о более простых вариантах.
Я рекомендую использовать Workflows даже для простых процессов по нескольким причинам:
Если вы когда-нибудь решите, что простой процесс должен развиваться или изменяться, Workflows гораздо более гибкий и может адаптироваться к вашим потребностям
Если вы когда-нибудь решите создать другой процесс, который зависит от этого процесса, Workflows позволяет связывать их вместе
Workflows обеспечивает лучшую видимость выполнения процессов, что упрощает устранение неполадок
Как сказала @lindsey, а также, если у вас есть какие-либо сценарии использования, которые можно реализовать в автоматизации, но нельзя — в рабочих процессах, пожалуйста, сообщите нам.
Было бы здорово иметь отдельный раздел для обмена воркфлоу! Это помогло бы сообществу, лучше понять все механики и, что самое главное, получить новые идеи для будущих проектов. Это просто идея
Кстати: мне очень нравится модуль workflow — он получился мощным и интуитивно понятным
Хотел бы узнать, возможно ли следующее: когда статус события становится «полным», его название автоматически меняется с добавлением слова «полное». Это позволило бы пользователям сразу видеть заполненные события в годовом обзоре, например, без необходимости заходить в само событие, чтобы проверить, есть ли ещё места. А если зайти ещё глубже — можно было бы отображать количество оставшихся мест прямо в названии события. Это моё личное мнение о том, как улучшить опыт использования для моих пользователей