Запустити flow може будь-що
Кожен flow починається з тригера, а в каталозі їх 96. Flow «Запитання дня» запускається за годинником о 09:00, без жодного набору тексту. Той самий редактор запускає flow від команди, кнопки, нового учасника чи повідомлення.
Запитання дня
АктивноЗберегтиТригер
ЗмінитиРозклад, щодня о 09:00
Отримати значення зі сховища(get-storage-value)
Прочитати каталог запитань із{questions}
Вибрати наступний запис(array-at)
Той, що йде після вчорашнього
Надіслати повідомлення(send-message)
Опублікувати запитання як ембед у#general
Створити гілку(start-thread-from-message)
Відкрити гілку під цим повідомленням
Збільшити значення сховища(increment-storage-value)
Порахувати запитання як поставлене в{asked}
Лише ілюстрація — реальний інтерфейс може відрізнятися
Слеш-команди — лише один із багатьох тригерів
У каталозі 96 тригерів. Flow може запускатися від команди, від дії учасника, від зміни на твоєму сервері або від годинника. Спершу ти обираєш тригер, а редактор показує значення, які він передає твоєму flow.
Слеш-команди й контекстні меню
Slash command, Message context menu used, Autocomplete requested.
Кнопки, меню вибору та спливаючі форми
Button clicked, String select menu submitted, Modal submitted.
Повідомлення, реакції та опитування
Message created, Reaction added, а також редагування, видалення та події опитувань.
Учасники, бани та бусти
Member joined, Member left, Member boosted server, бани й розбани.
Канали, ролі та гілки
Створення, оновлення та видалення — для всіх трьох.
Голосові канали та канали подій (Stage)
Voice state updated, а також події екземпляра Stage.
AutoMod
AutoMod action executed і ще три тригери AutoMod.
Запрошення, емодзі та стікери
Створене запрошення, перейменоване емодзі, доданий стікер.
Заплановані події Discord
Від створення до початку, для вкладки подій твого сервера.
Налаштування сервера, журнал аудиту та вебхуки
Змінене налаштування, записаний запис журналу аудиту, оновлений вебхук.
Розклади, ручні запуски та кастомні події
Schedule, Scheduled run, Manual trigger, Custom event received.
Сам твій бот
Десять тригерів про користувача-бота, для flows, які стежать за ботом, а не за учасником.
Для слеш-команд у дашборді є конструктор параметрів: назва, опис, тип і позначка обов'язковості для кожного параметра, мінімальне й максимальне значення, мінімальна й максимальна довжина, дозволені типи каналів, а також або фіксовані варіанти, або автодоповнення. Flow автодоповнення відповідає, поки учасник друкує, і може використовувати лише дії, які нічого не змінюють.
Деякі flows мають працювати, коли ніхто не дивиться
Розклад — такий самий тригер, як і решта. У flow «Запитання дня» немає ні команди, ні учасника за нею: спрацьовує годинник, flow читає каталог і публікує. Замість текстового поля cron у дашборді є вибір із пресетами, тож ти обираєш ритм і йдеш далі.
Пресети замість синтаксису cron
Обери щоденний, щотижневий чи інтервальний пресет, задай час — і готово.
Нікому не треба бути поруч
Тригер спрацьовує за годинником, flow запускається, повідомлення публікується.
Flows можуть планувати власні запуски
Schedule flow run планує пізніший запуск зсередини flow, а також є дії, щоб скасувати й переглянути те, що очікує.
Той самий flow і чип тригера, що його запускає
Запитання дня
АктивноЗберегтиТригер
ЗмінитиРозклад, щодня о 09:00
Отримати значення зі сховища(get-storage-value)
Прочитати каталог запитань із{questions}
Вибрати наступний запис(array-at)
Той, що йде після вчорашнього
Надіслати повідомлення(send-message)
Опублікувати запитання як ембед у#general
Створити гілку(start-thread-from-message)
Відкрити гілку під цим повідомленням
Збільшити значення сховища(increment-storage-value)
Порахувати запитання як поставлене в{asked}
Лише ілюстрація — реальний інтерфейс може відрізнятися
Кнопки, меню вибору та спливаючі форми
Кнопка — це тригер. Опублікуй повідомлення з кнопками чи меню вибору, і кожен компонент запускає власний flow. Таке повідомлення може місяцями висіти на твоєму сервері: бездіяльна кнопка нічого не коштує й ніколи не спливає. Discuss in thread під запитанням дня — це один flow, а команда /suggest, що відкриває спливаючу форму, — інший.
Кнопки
Button clicked запускає flow. Кнопка живе на повідомленні, а логіка — у flow.
Меню вибору
Усі п'ять видів, зокрема String select menu submitted.
Спливаючі форми
Покажи форму, а потім продовж, коли вона повернеться як Modal submitted.
Запитання дня і пропозиція пізніше вранці
Лише ілюстрація — реальний інтерфейс і поведінка можуть відрізнятися
Кулдауни та привілейовані інтенти
Тригерам, що можуть спрацьовувати часто, потрібне обмеження. Кожен flow може мати кулдаун на своєму тригері, а запуск, який блокує кулдаун, записується в історію запусків як пропущений, тож тихий flow ніколи не буде загадкою.
Кулдаун для кожного flow
Увімкнений чи вимкнений, з областю «користувач», «канал» чи «сервер» і тривалістю, яку ти задаєш сам(-а).
Заблоковані запуски теж видно
Історія запусків каже, що запуск пропущено, і називає причину.
Деякі тригери потребують привілейованого інтенту
Discord надсилає події повідомлень, учасників і присутності лише після того, як ти ввімкнеш відповідний інтент для власного застосунку бота в порталі розробників Discord. Редактор позначає такі тригери й дає посилання на документацію Discord, а твоєму боту після цього потрібен один перезапуск, щоб такий flow міг спрацювати.
Серія відповідей
АктивноЗберегтиТригер
ЗмінитиMessage created, з кулдауном для кожного учасника
Збільшити значення сховища(increment-storage-value)
Порахувати відповідь цього учасника в{answers}
If(if)
Учасник відповідав десять днів поспіль
Додати роль учаснику(add-role-to-member)
Видати йому роль «Постійний учасник»
Лише ілюстрація — реальний інтерфейс може відрізнятися
Запитання про тригери
Так. Message created — окремий тригер, і всього є дев'ять тригерів повідомлень плюс тригери реакцій, як-от Reaction added. Flow, запущений так, отримує повідомлення й може його порахувати, перевірити, відповісти на нього або зберегти щось про нього.
Більше про Custom Commands V3
Хочеш, щоб твій сервер був у бета-програмі?
V3 — велика система, яка ще швидко змінюється, тому сервери долучаються по одному, а не всі одразу. Кожну заявку читає людина, а відповідь ти отримаєш за кілька днів.
Сервери, які вже в бета-програмі, значною мірою визначають, що ми будуватимемо далі. Те, що ти створиш, залишається твоїм: flows і модулі нікуди не зникнуть, коли бета завершиться.