HELPER Discord Bot
К списку Wiki
FORM ENGINE // MULTI FORMS // STAFF WORKFLOW

HELPER CONSTRUCTOR ДВИЖОК ФОРМ DISCORD MODAL / 10 QUESTIONS / STAFF REVIEW / VOICE CALL

Конструктор форм — универсальный модуль для заявок, whitelist, набора staff, регистрации на ивенты, RP-анкет и заказов. Владелец создаёт форму на сайте, публикует её через Discord, а HELPER ведёт весь путь: плашка → modal → staff review → обзвон → вердикт → архив.

10вопросов максимум
2modal части
DBatomic workflow
VCприватный обзвон
Multi formsнесколько форм на одном сервере
Discord/constructor setup публикует форму
Staffвзять, одобрить, отказать, обзвон
Dashboardвопросы, каналы, роли, визуал
Safetycooldown, TTL, atomic states

Что делает Constructor

Это универсальный конструктор процессов. Вместо отдельного модуля под каждую анкету владелец создаёт сколько угодно форм: staff-заявку, whitelist, регистрацию на турнир, партнёрку, заказ услуги или RP-анкету.

01

Создание формы

На сайте задаются название, описание, вопросы, каналы и роли staff.

02

Публикация

Команда /constructor setup ставит выбранную форму в текущий Discord-канал.

03

Проверка

Ответы уходят в staff-канал с кнопками взять / одобрить / отклонить / обзвон.

04

Архив

Итог сохраняется в approved/rejected каналах, а временные ресурсы очищаются.

Больше информации картинками

Показываем весь путь в виде интерфейсных картинок: публичная форма, modal, продолжение второй части, staff-карточка, обзвон, архив и сайт.

01 / public panelПубличная форма
🧩
HELPER CONSTRUCTORФорма: staff application

🧩 Заявка в команду

Заполните форму ниже. Ответы попадут в закрытый staff-канал.

FORM BANNER
📝 Заполнить форму
02 / modal part 1Discord Modal
📝
Форма часть 1/2Первые вопросы

Поля формы

Ваш никнейм?
Сколько вам лет?
Почему хотите к нам?
Опыт / ссылка / описание
03 / bridgeЕсли вопросов больше 5
➡️
bridge viewПродолжение заполнения

✅ Первая часть сохранена

Нажмите кнопку, чтобы заполнить вторую часть формы.

➡️ Продолжить заполнение
04 / staff cardКарточка проверки
👀
staff channelНовый ответ

🧾 Ответ пользователя

Кандидат: @nickname · ID 123456789
Форма: Staff Application
Этап: pending

Взять
Обзвон
Одобрить
Отклонить
05 / voice callПриватный обзвон
🎙️
private voiceОбзвон-Nickname

Доступ к комнате

✅ кандидат видит комнату
✅ куратор и staff-роли могут зайти
❌ @everyone не видит канал

Пригласить
Завершить
06 / archiveИтог и архив
approved channelФорма одобрена

✅ Одобрено

Куратор: @Admin
Итог сохранён в архиве. Пользователь получил DM.

APPROVED FORM

Команды Discord

Discord-команды нужны для публикации уже созданных на сайте форм. Создание и тонкая настройка формы делается через Dashboard.

admin command/constructor setup
/constructor setup form_id:staff_application

Публикует выбранную форму в текущем канале. Если формы нет, бот предлагает создать её на сайте.

admin command/constructor deploy_all
/constructor deploy_all

Обновляет все формы сервера, у которых сохранён канал публикации.

Важно

Команды работают только на сервере и только для администраторов. Если модуль выключен, бот показывает disabled-панель и не даёт заполнять старые кнопки.

Путь формы от клика до архива

1Panel

публичная плашка

2Modal

до 5 вопросов

3Bridge

часть 2/2

4Review

staff-карточка

5Voice

обзвон

6Final

архив + DM

A

Защита от дублей

Пока у пользователя есть активная форма, новая такая же форма не создаётся.

B

Cooldown после отказа

После отклонения можно поставить блокировку повторной подачи на заданное число часов.

C

TTL и очистка

Зависшие creating/interview и старые финальные записи очищаются автоматически.

Что видит пользователь

public actionКнопка заполнения

📝 Заполнить форму

Обычный пользователь не видит staff-каналы и настройки. Он видит только аккуратную форму и понятный статус.

Открыть форму
private responseЛичный прогресс

📨 Ваш ответ отправлен

Если ЛС открыты, кандидат получает уведомление о принятии, отказе или следующем этапе.

Статусожидает проверки
pending

Как работает staff

Staff не копается в базе и не пишет команды. Всё делается кнопками на карточке ответа.

01

Взять в работу

Ответ закрепляется за конкретным проверяющим, чтобы два staff не конфликтовали.

02

Назначить обзвон

Бот создаёт приватный voice-канал и переводит статус в interview.

03

Одобрить

Итог уходит в approved-архив, пользователю отправляется DM.

04

Отклонить

Staff указывает причину, включается cooldown, итог уходит в rejected-архив.

Приватный обзвон

Если ответ нужно проверить голосом, HELPER создаёт отдельный voice-канал с ограниченными правами.

voice roomОбзвон-Nickname
permissionsprivatetemporary
Кандидатможет видеть и подключиться
allow
Staff-ролимогут зайти и провести беседу
allow
@everyoneне видит приватный канал
deny
voice controlПанель обзвона

🎙️ Управление интервью

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

Пригласить staff
Завершить

Настройка на сайте

На сайте владелец собирает форму как конструктор: название, описание, вопросы, каналы, роли, cooldown, баннер и публикация.

form builderОсновные поля
name/custom_titleназвание формы и заголовок публичной плашки.
custom_descriptionописание для пользователя перед заполнением.
custom_button_textтекст кнопки “Заполнить форму”.
custom_bannerсвоя картинка формы или fallback из центра баннеров.
routingКаналы и роли
banner_channel_idканал публичной формы.
log_channel_idзакрытый канал staff-карточек.
approved_channel_idархив одобренных ответов.
rejected_channel_idархив отклонённых ответов.
staff_role_idsроли проверяющих.
questionsВопросы формы
10 maxshortparagraphrequired
Вопрос 1Никнейм / ID / ссылка
short
Вопрос 2Возраст / часовой пояс
short
Вопрос 3Почему выбрали нас?
paragraph
Вопрос 6–10открываются через вторую часть
bridge
site syncСинхронизация
constructor_settings.json
{ "guild_id": { "staff_application": { "questions": [...], "deploy_requested": true, "banner_channel_id": "123" } } }

Что делает cog

site_sync_loop читает deploy_requested, публикует/обновляет форму и сохраняет deployed_forms.

Что можно собирать

STAFF APPLY

Набор staff

Анкета для модераторов, кураторов, саппорта или хелперов.

WHITELIST

Whitelist

Отбор игроков на закрытый сервер, RP-проект или клан.

EVENT SIGNUP

Ивенты

Регистрация на турнир, рейд, гонку, RP-событие или конкурс.

ORDER FORM

Заказы

Форма заказа услуги, товара, дизайна, приватки или консультации.

PARTNERS

Партнёрки

Заявка на сотрудничество с сервером, брендом или сообществом.

RP PROFILE

RP анкета

Карточка персонажа, фракции, биография или вступление в отдел.

Если модуль выключен

Отключение не удаляет настройки и историю. Старые кнопки становятся безопасными: они показывают disabled embed и не открывают новые формы.

disabled embedЧто видит пользователь
🔌
safe modeМодуль отключён

🔌 Конструктор форм обесточен

Новые формы сейчас нельзя заполнить. Данные, настройки и история сохранены.

🔌 ФОРМЫ ОБЕСТОЧЕНЫ
module statesПочему это безопасно
module_states.jsonхранит состояние constructor/forms alias.
is_module_active()проверяется перед командами и кликами.
DisabledModuleEmbedобъясняет пользователю, что система временно обесточена.

Карта технической логики

storageФайлы и циклы
SETTINGS_FILE

data/constructor_settings.json — формы, вопросы, каналы, роли и deploy_requested.

DB_FILE

data/constructor.db — активные формы, cooldown, admin stats, deployed forms.

site_sync_loop

Сайт ставит deploy_requested, cog обновляет Discord-плашку и пишет результат.

garbage_collector

Чистит зависшие creating/interview, старые active и финальные записи.

database tablesГлавные таблицы
🧾
active_formsответы и статусы
form_cooldownsповторная подача
📊
admin_statsдействия staff
📌
deployed_formsmessage_id панели
active statusesAtomic states
1creating

резерв

2pending

новый

3review

staff

4creating_call

канал

5interview

обзвон

6final

итог

api snippetsКак работает публикация
await update_form_config( guild_id, form_id, {"banner_channel_id": channel_id}, deploy=True ) message_id = await cog.deploy_form(guild_id, form_id, channel_id)

Ошибки и решения

Команда пишет “форма не найдена”

Сначала создайте форму на сайте в Dashboard → Сервер → Конструктор / Forms. Потом используйте /constructor setup.

Форма не публикуется в канал

Проверьте права бота: View Channel, Send Messages, Embed Links, Attach Files и Use External Emojis, если используются emoji.

Пользователь не может отправить форму

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

Staff не может нажимать кнопки

Нужны права администратора или роль из staff_role_ids. Иначе HELPER не даст проверять ответы.

Обзвон не создаётся

Проверьте права Manage Channels и категорию для обзвонов. Бот должен уметь создавать voice-каналы и настраивать overwrites.

DM кандидату не пришёл

У пользователя могут быть закрыты личные сообщения. Ответ всё равно обработается и попадёт в архив.

// WIKI_NAVIGATION

Вернуться к списку Wiki

Ты дошёл до конца страницы Constructor. Можно вернуться в общий центр документации, открыть Dashboard или подняться наверх к началу этой страницы.