HELPER Discord Bot
APPLICATION CORE // ATOMIC FLOW

HELPER APPLICATIONS СИСТЕМА ЗАЯВОК DISCORD MODAL / STAFF REVIEW / VOICE INTERVIEW

Модуль заявок превращает набор игроков, staff или участников проекта в понятный pipeline: публичная плашка, Discord Modal, staff-карточка, приватный обзвон, DM-прогресс, архив решений и защита от дублей.

5вопросов Modal
DBatomic заявки
DMпрогресс кандидата
VCприватный обзвон
Discord/application_setup запускает модуль
Panelкнопка подачи в выбранном канале
Staffпроверка, обзвон и вердикт
Dashboardвопросы, каналы, роли, баннеры
Safetyзащита от дублей и cooldown

Что делает Applications

Applications — это система подачи и проверки заявок внутри Discord. Она заменяет личные сообщения администраторам на единый маршрут: публичная панель → анкета → staff-проверка → обзвон → решение → архив.

01

Публичная витрина

Бот публикует embed с баннером, статусом набора и кнопкой подачи заявки.

02

Анкета в Modal

Кандидат заполняет до пяти вопросов. Ответы уходят не в общий чат, а в staff-канал.

03

Staff pipeline

Проверяющие берут заявку в работу, создают обзвон, одобряют или отклоняют.

Как быстро запустить

Рекомендуемый порядок: подготовить каналы и роли, выполнить slash-команду настройки, выбрать стандартные или свои вопросы, затем проверить публичную панель.

01

Канал витрины

Например #заявки. Тут будет публичная кнопка подачи.

02

Канал проверок

Например #staff-apps. Доступ только у staff и бота.

03

Архивы

Отдельные каналы для одобренных и отклонённых заявок.

04

Staff-роль

Роль проверяющих, которые смогут нажимать кнопки staff-панели.

Что происходит после setup

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

Настройка через Discord

Администратор может запустить модуль без сайта через slash-команды. Команды доступны только на сервере и только администраторам.

slash command/application_setup
/application_setup banner_channel: #заявки log_channel: #staff-apps approved_channel: #apps-approved rejected_channel: #apps-rejected staff_role: @Curator banner_approve: https://... banner_reject: https://...

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

slash command/application_deploy
/application_deploy

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

Как выглядит в Discord

Ниже — визуальные макеты того, что увидит покупатель, кандидат и staff-команда после запуска модуля.

public panelПанель подачи
🛰️
HELPER APPLICATIONSПРИЁМНАЯ КОМИССИЯ

🟢 Набор открыт

01 → подача анкеты
02 → проверка staff
03 → возможный обзвон
04 → финальный вердикт

📋 Заполнить анкету
candidate modalАнкета
staff cardКарточка проверки

📌 Новая заявка

Ответы кандидата, ID пользователя, статус и текущий этап проверки.

Взять в работу
Обзвон
Одобрить
Отклонить
dm progressЛС кандидату

👀 Заявку взяли в работу

🟦⬛⬛⬛ → подана
✅ Проверка staff · сейчас
⬛ Обзвон · ожидает
⬛ Вердикт · ожидает

Путь обычного пользователя

1Панель

видит кнопку подачи

2Modal

заполняет вопросы

3DM

получает статус

4Voice

заходит на обзвон

5Итог

получает вердикт

Защита от повторной подачи

Если у кандидата уже есть активная заявка или действует cooldown, бот не откроет новую заявку и покажет понятное ephemeral-сообщение.

Путь администратора

Staff работает не через команды, а через кнопки в закрытой карточке заявки.

01

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

Заявка закрепляется за проверяющим, другие staff не перехватывают её.

02

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

Бот создаёт приватную voice-комнату и отправляет кандидату DM.

03

Одобрить

Итог уходит в approved-архив, кандидат получает поздравление.

04

Отклонить

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

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

Для собеседования бот использует категорию из настроек. Если категория не задана, он ищет управляемую категорию HELPER ОБЗВОНЫ, а при необходимости создаёт её сам.

voice roomКомната обзвона
🎙️
PRIVATE VOICEОбзвон · Никнейм

Доступ

Кандидат + staff-роли + бот. Посторонние пользователи не видят комнату.

control viewУправление
Пригласить админа
Обновить приглашение
Завершить обзвон
Отмена

После завершения временная voice-комната очищается, а staff-карточка возвращается к финальному решению.

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

На сайте владелец управляет теми же параметрами, что и через Discord setup, но с визуальными полями, предпросмотром и сохранением по серверу.

dashboard mockupApplications Settings
banner_channel_idканал публичной панели
log_channel_idstaff-канал или forum для новых заявок
approved_channel_idархив одобренных заявок
rejected_channel_idархив отклонённых заявок
staff_role_idsроли, которые могут проверять заявки
content settingsТексты и баннеры
custom_titleзаголовок публичной панели
custom_descriptionописание для кандидата
custom_button_textтекст кнопки подачи
questionsсписок вопросов, максимум 5
banner_app_*баннеры для панели, review, interview, approve, reject

Почему не ломается

Модуль использует состояния и atomic-операции, чтобы один пользователь не создал несколько активных заявок, а две staff-кнопки не финализировали одну заявку одновременно.

1creating

резерв заявки

2pending

карточка создана

3review

staff проверяет

4interview

идёт обзвон

5final

approved/rejected

Автоочистка

Garbage collector чистит устаревшие рабочие заявки, удалённые сообщения, временные voice-комнаты и старые cooldown/history-записи.

Права и каналы

01

Панель

Бот должен видеть канал и отправлять embed с кнопками.

02

Staff-канал

Нужны сообщения, embeds, threads и webhooks для красивой карточки заявки.

03

Voice

Для обзвонов нужны Manage Channels, View Channel и Connect.

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

Старые кнопки не удаляются, но ProtectedView блокирует действия. Пользователь увидит, что модуль обесточен, а настройки и данные сохранятся.

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

Панель не появилась после setup

Проверьте, что у бота есть права отправлять сообщения и embeds в banner_channel_id. Затем выполните /application_deploy.

Кандидат не может подать заявку

Проверьте, открыт ли набор is_open=true, включён ли модуль на сайте и нет ли активной заявки или cooldown у пользователя.

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

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

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

Проверьте права Manage Channels и наличие категории category_id. Если категории нет, бот попробует создать управляемую категорию HELPER ОБЗВОНЫ.

DM не приходит кандидату

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