Как создать бота Discord, приветствующего участников, ветки и заявки

Piotr Grudzień
Опубликовано Обновлено Время чтения: 9 мин
Discord-бот приветствует нового участника, ветку форума и новый канал заявки

Приветственный бот Discord публикует подготовленное сообщение при событии на сервере: вступлении участника, открытии ветки или создании канала. Quickchat AI отправляет такие сообщения по трём правилам из панели управления, без кода и собственного хостинга.

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

Зачем это появилось: три просьбы из нашего Discord

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

Три настоящих сообщения на сервере Quickchat AI: просьба приветствовать новичков с ответом об отсутствии триггера; просьба автоматически приветствовать автора заявки с ответом о невозможности обнаружить её создание; вопрос о поддержке без упоминания бота.

Все три запроса сводятся к одному: пусть бот заговорит первым. Приветствует вступившего. Представится автору ветки. Поздоровается в новом канале заявки до того, как человек начнёт искать, есть ли там бот.

Вопрос приходил весь год в Discord и виджете. С этой недели все три сценария доступны как правила автоматических сообщений, включаемые в диалоге. Далее показана их полная настройка.

Почему Discord-бот по умолчанию никого не приветствует

Quickchat AI отвечает на упоминания и ответы на свои сообщения. Общий бот также поддерживает /ask. Это намеренно: отвечать на каждое сообщение активного сервера было бы неудобно. Но в канале, созданном десять секунд назад, никто не знает о боте. Он не начинает, поэтому к нему не обращаются.

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

Новый канал заявки только с панелью ticket-бота и тот же канал с приветствием Quickchat AI спустя две секунды

Автоматическое сообщение позволяет начать первым. Это фиксированный текст без расходов на AI, содержащий только написанное вами. В конце он объясняет, как начать настоящий разговор. Три правила: New member joins, New channel, New thread or forum post.

Что вы создадите

Демонстрационный сервер называется Nebula Lounge, агент Orbit. В результате работают три приветствия:

ПравилоКогда запускаетсяКуда пишет
New member joinsНа сервер вступает человекВыбранный канал #welcome
New thread or forum postСоздана публичная ветка или публикация форумаВ новую ветку
New channelСоздан текстовый каналВ новый канал

Нужны бесплатный аккаунт Quickchat AI и право добавлять бота на сервер. Ticket Tool или похожий бот необязателен и нужен только для сценария заявок.

Как работают автоматические сообщения

Процесс детерминирован: Discord отправляет событие, Quickchat AI проверяет область действия, ждёт заданное время, подставляет переменные и публикует текст.

Модель не решает, что сказать. Это делает приветствие предсказуемым для публичного сервера и объясняет отсутствие расхода кредитов.

Путь от события к сообщению: проверка области, ожидание, подстановка переменных и публикация. AI-разговор показан отдельно.

AI-разговор начинается позже, когда участник упоминает бота или отвечает ему.

Чем автоматические сообщения не являются

Четыре функции, которых можно ожидать от приветственного бота, сюда не входят:

  • Верификация: Нет CAPTCHA, проверки возраста или личности и выдачи подтверждённой роли. Для этого нужен отдельный бот.
  • Текст от AI: Отправляется ваш шаблон с заполненными переменными. Модель не получает событие и не пишет приветствие.
  • Создание заявок: Канал открывает ваш ticket-бот. Quickchat AI приветствует человека внутри.
  • Рассылка или расписание: Правило отвечает на событие Discord. Отправки каждый понедельник или списку участников нет.

Подключите бота к серверу

Откройте External Apps и выберите Discord. При желании задайте Bot name in the new server, нажмите Add to your Discord server и авторизуйте подключение. Общий бот Quickchat AI вступит в сервер без создания приложения и работы с токеном.

Интеграция Discord с подключённым Nebula Lounge и кнопкой Automated messages

Предоставьте View Channel и Send Messages во всех местах публикации. Невидимый боту канал не появится в списке. Если в канал нельзя писать, сообщение будет молча пропущено при отправке.

Какой вариант подключения у вас и что меняется

Оба варианта поддерживают автоматические сообщения. Отличаются расположение настроек и необходимость одного переключателя Developer Portal.

Один кликСобственное приложение, Advanced
Кто пишетОбщее приложение Quickchat AIСозданное вами приложение
Где правилаAutomated messages сервера в Connected serversAutomated messages на странице Discord, Configure у сервера
New channel и New thread or forum postСразуОбновляются примерно за минуту
New member joinsСразуТребует Server Members Intent, затем обновляется примерно за минуту

Сравнение двух подключений: Server Members Intent нужен только правилу участников собственного приложения

Последняя строка связана с ограничением Discord и объясняет единственный дополнительный ручной шаг.

Intent означает подписку на категории событий. При подключении бот объявляет нужные категории, и Discord отправляет только их. Большинство можно просто запросить. Три считаются привилегированными: владелец приложения должен включить их вручную. Одна касается участников сервера.

Поэтому события вступления приходят лишь с включённым Server Members Intent в Developer Portal. В новых приложениях он выключен. Создание каналов и веток не относится к привилегированным событиям, поэтому остальные два правила ничего не требуют.

У общего приложения intent уже включён. При подключении в один клик дополнительных действий нет.

Раздел Automated messages в Advanced со списком серверов собственного бота и Configure у каждого

Для собственного приложения Quickchat AI проверяет настройку. В New member joins появится уведомление, если intent выключен; после включения его нет. Откройте приложение в Discord Developer Portal, перейдите в Bot → Privileged Gateway Intents, включите Server Members Intent, сохраните и ещё раз сохраните правило в Quickchat AI. Бот продолжает обычные ответы, ожидает только это правило.

Правило вступления с предупреждением о выключенном Server Members Intent

Если собственный бот подключён более чем к 100 серверам, Discord потребует верификацию приложения перед предоставлением intent.

Откройте Automated messages

Найдите сервер и откройте Automated messages под Connected servers при подключении одним кликом либо через Configure раздела Automated messages собственного приложения. Каждое из трёх правил имеет свой переключатель; изначально все выключены.

Три правила автоматических сообщений с описаниями и переключателями

Обратите внимание на две особенности:

Правила сохраняются отдельно. Открытие, изменение и Save сохраняют только выбранное правило и возвращают к списку. Остальные не меняются.

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

Приветствуйте каждого нового участника

Выберите New member joins. Откроются переключатель, место назначения, шаблон и задержка.

Правило нового участника с каналом приветствия, шаблоном, переменными и задержкой

Установите Welcome channel в #welcome, затем задайте Message template:

Welcome to {server_name}, {username}! I'm {bot_name}. Mention me or use /ask whenever you need help.

Оставьте Delay равной 2 секундам, включите Turn this message on и нажмите Save.

Для собственного приложения уберите часть о /ask: команда есть только у общего бота.

Поле шаблона с переменными username, bot_name, server_name и channel_name

Кнопки под шаблоном вставляют переменную в позицию курсора. Не нужно помнить точное написание. {username} обозначает вступившего, {server_name} сервер, {bot_name} имя бота на этом сервере, включая заданное при подключении.

Проверьте правило, вступив со второго аккаунта.

Discord сообщает о вступлении Марты в #welcome, а через две секунды Orbit приветствует её по имени

Промежуток между системным уведомлением и приветствием показывает работу задержки. Она есть у каждого правила: от отсутствия ожидания до 30 секунд.

Варианты задержки: No delay, 2, 5, 10 и 30 секунд

Контрольная проверка: Пригласите другого бота. Ничего не публикуется. Учётные записи ботов игнорируются намеренно, поэтому установка приложения или webhook не вызовет приветствие программы.

Приветствуйте новые ветки и публикации форума

Выберите New thread or forum post и укажите форум помощи в Parent channel. Правило срабатывает на публичные ветки и публикации под выбранным каналом, игнорируя приватные.

Parent channel является родительским каналом. Им может быть обычный текстовый канал, где ветка ответвляется от сообщения, или форум, где каждая публикация сама является веткой и общей истории обычных сообщений нет. Форумы доступны после включения Community в настройках сервера. Подходят оба типа, но форум помощи удобен тем, что каждый вопрос уже отдельная ветка. Приватных веток у форума нет, поэтому подходит любая его публикация.

Hi {username}, I'm {bot_name}. Mention me in this thread if you'd like help. If you prefer a human, leave your question here and they'll follow up.

Правило новой ветки с форумом помощи в качестве родительского канала

Новая публикация о собственном домене с приветствием Orbit автору

Здесь {username} является автором ветки, напрямую указанным Discord. Поэтому соответствие однозначно. {channel_name} означает саму ветку.

Так реализуется запрос на присутствие бота в каждом новом вопросе: ветка сразу содержит его сообщение с инструкцией обращения.

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

Приветствуйте каждый новый канал или только категорию заявок

Выберите New channel. По умолчанию правило пишет в каждый новый текстовый канал сервера. Для небольшой группы это часто желаемое поведение: бот представляется в любом появившемся канале.

Hi {username}, I'm {bot_name}. Reply to me or mention me if you need help. If you'd rather wait for a human, share your question and they'll get back to you as soon as possible.

Чтобы ограничить область, замените Any category на Only in this category и выберите категорию.

Категория в Discord представляет собой сворачиваемую группу каналов слева: серый заголовок и вложенные каналы. Ticket-боты почти всегда создают каналы в группе Tickets или Support, что делает её удобным фильтром.

Выберите категорию вашего ticket-бота. Каналы, созданные в других местах, будут игнорироваться.

Список категорий в правиле нового канала с Any category и категориями сервера

Новый канал за пределами Active Tickets без приветствия

Контрольная проверка: Ограничив правило Active Tickets, создайте канал в другой категории. Там ничего не появится, а открытая следом заявка по-прежнему получит приветствие.

Как приходит приветствие заявки

Ticket Tool создаёт ticket-0042 под Active Tickets и публикует панель. Через несколько секунд Quickchat AI пишет приветствие ниже. Именно для этой последовательности нужна задержка. При No delay сообщения конкурируют, и приветствие может оказаться над панелью, которую надо читать первой. Начните с пяти секунд: ticket-боту также нужно время на разрешения канала.

Как бот определяет автора заявки

{username} в канале заявки выводится из данных, а не сообщается напрямую. Событие создания содержит канал и категорию, но не человека, для которого открыта заявка: с точки зрения Discord канал создал бот.

Зато событие содержит переопределения разрешений канала.

Permission overwrite задаёт права конкретной роли или человека в одном канале поверх серверных. Так устроены приватные каналы: View Channel убирают у @everyone и дают нужным людям.

Ticket-бот выдаёт заявителю персональное View Channel, чтобы канал видели он и поддержка. Quickchat AI читает такие разрешения и ищет одну человеческую учётную запись. Поскольку боты часто дают доступ и себе, каждую персональную запись проверяют через Discord, исключая ботов. Если остаётся один человек, это заявитель. В остальных случаях, включая недоступные сведения об аккаунте, используется there вместо догадки.

Определение заявителя через разрешения: выбирается единственный персональный доступ человека, а не бота

Orbit приветствует заявителя по имени в приватном канале

Права канала: @everyone запрещён, роль поддержки разрешена, персональный доступ есть у заявителя и ticket-бота

Если данных нет или они указывают на нескольких людей, {username} становится there. Английский пример естественно читается в обоих случаях. Учитывайте эту буквальную подстановку в своём шаблоне. Имя не является проверкой личности, это удобная подсказка из разрешений.

Переменные и их значения

ПеременнаяNew member joinsNew thread or forum postNew channel
{username}Новый участникАвтор веткиЗаявитель из разрешений или there
{bot_name}Имя бота на сервереТо жеТо же
{server_name}Имя сервераТо жеТо же
{channel_name}Канал приветствияНовая веткаНовый канал

Максимальная длина шаблона 1 500 символов. Другие переменные отклоняются при сохранении, а не выводятся позднее как буквальные {braces}. Ошибку вы увидите в панели раньше сообщества.

Выбор задержки

ЗадержкаКогда применять
No delayНикто другой не пишет в назначение, приветствие должно быть первым
2 секундыПо умолчанию. Другой бот сначала публикует панель или embed, как в большинстве заявок и приветственных сценариев
5-30 секундДругой бот медленный, отправляет несколько сообщений или переименовывает канал

Более долгая задержка также позволяет назначить права, из которых берётся {username}. Обычно это завершается за секунду-две. Если всегда получается there, дальнейшее увеличение ожидания не поможет.

Что происходит после приветствия

Приветствие объясняет, как обратиться к боту. Далее идёт обычная беседа Quickchat AI с ответами по базе знаний. Сотрудник может в любой момент принять разговор через Quickchat AI Inbox. Пользователь остаётся в Discord.

Участник отвечает на приветствие, и Orbit использует базу знаний

Тот же разговор в Quickchat AI Inbox с каналом Discord

Фиксированный текст решает проблему начала, а AI ведёт продолжение.

Устранение проблем

СимптомПричина
Совсем нет приветствияНет View Channel или Send Messages, отправка пропускается
Нет сообщения в веткеНет Send Messages in Threads либо ветка приватная
Собственное приложение не приветствует вступившихВыключен Server Members Intent. Включите и снова сохраните правило
Ничего при вступлении ботаТак и задумано, боты игнорируются
{username} превращается в thereНет единственного человека с персональным View Channel. Доступ по роли не позволяет установить заявителя
Приветствие выше панелиНедостаточная задержка, увеличьте до 5 секунд
Сообщения в неожиданных каналахNew channel использует Any category. Выберите Only in this category
Сохранение сообщает о недоступном выбореКанал или категория удалены. Выберите актуальное назначение

Запуск

Включайте по одному правилу и наблюдайте день перед следующим. Безопаснее начать с участников, поскольку канал задан явно. New channel с Any category создаёт больше всего сообщений, поэтому требует особого наблюдения.

Измеряйте приветствия и разговоры отдельно. Попытка приветствия бесплатна; важна доля доставленных сообщений, после которых человек действительно заговорил с ботом. Если доставка отсутствует, проверьте права Discord.

FAQ

Как создать приветственного бота Discord?

Добавьте Quickchat AI одним кликом, откройте сервер в Connected servers и выберите Automated messages. Включите New member joins, задайте канал и шаблон, нажмите Save. Хостинг, код и собственное приложение не нужны.

Может ли бот писать при вступлении человека?

Да. New member joins пытается отправить одно фиксированное сообщение в выбранный канал при вступлении человека. Нужны права просмотра и отправки. Учётные записи ботов игнорируются, поэтому webhook и установки приложений не вызывают приветствия.

Может ли бот приветствовать в новом канале заявки?

Да, ради этого функция и появилась. Ticket Tool или аналог создаёт канал, New channel приветствует внутри. Начните с пяти секунд, чтобы ticket-бот успел опубликовать панель и назначить права.

Можно писать во всех новых каналах или только в категории?

Оба варианта поддерживаются. New channel по умолчанию охватывает все текстовые каналы. Смените Any category на Only in this category, выбрав нужную категорию. Остальные каналы будут игнорироваться.

Можно ли отложить приветствие?

Да. Доступны No delay, 2, 5, 10 и 30 секунд. Стандартные две секунды позволяют другому боту отправить панель первой, а приветствию оказаться ниже.

Можно ли изменить приветственный текст?

Да. Для каждого правила есть шаблон до 1 500 символов с {username}, {bot_name}, {server_name}, {channel_name}. Кнопка под полем вставляет переменную в позицию курсора.

Расходует ли приветствие AI-кредиты?

Нет. Фиксированный текст с переменными не вызывает агента, не использует кредиты разговоров и не запускает AI Actions. Кредиты расходуются только в последующей беседе.

Нужен ли код?

Нет. Всё настраивается в панели Quickchat AI. Один клик не требует своего приложения, хостинга или токена.

Работает ли это с моим собственным токеном?

Да. В Advanced правила находятся в Automated messages на странице Discord, с Configure у каждого сервера. Для New member joins дополнительно нужен Server Members Intent у вашего приложения.

Что такое Server Members Intent и зачем он нужен?

Discord считает данные участников привилегированными. События вступления получает лишь приложение с Server Members Intent, включённым в Developer Portal. Каналы и ветки используют стандартный intent. Quickchat AI проверяет настройку и показывает предупреждение, если она выключена.

Что происходит после публикации приветствия?

Ничего, пока человек не упомянет бота или не ответит ему. Общий бот также поддерживает /ask. Приветствие сообщает людям в новом канале о доступном собеседнике.

Это бот верификации Discord?

Нет. Здесь нет CAPTCHA, проверки личности или возраста и подтверждённых ролей. Для этого используйте отдельного бота параллельно.

Может ли он прощаться при выходе участника?

Нет. Правила охватывают вступление, новую ветку или форумную публикацию и новый канал. Выход участника не поддерживается. Для приветствий и прощаний вместе используйте дополнительного специализированного бота.

Заменяет ли это Ticket Tool?

Нет. Ticket Tool создаёт канал, а Quickchat AI приветствует внутри. Они работают одновременно, поэтому и нужна задержка.

Поддерживаются ли другие ticket-боты?

Да. Зависимости от Ticket Tool нет. Любой бот, создающий канал и персональное View Channel для заявителя, работает аналогично, как и ручное создание. Ticket Tool приведён как распространённый пример.

Узнает ли бот автора заявки?

Обычно да. Quickchat AI читает персональное View Channel и игнорирует разрешения ботов, заполняя {username}. Если единственного человека определить нельзя, подставляется there. Учтите эту буквальную замену в тексте.

Приветствует ли бот приватные ветки?

Нет. Поддерживаются только публичные ветки и публикации форума под выбранным родителем. Приватные пропускаются.

Какие разрешения нужны?

View Channel, Send Messages в каждом назначении и Send Messages in Threads для веток. При невозможности отправки сообщение молча пропускается. Сначала проверяйте права, если приветствия нет.

Можно быстро отключить слишком частое правило?

Да. Переключатель списка сохраняет сразу. Общий бот применяет настройку немедленно, Advanced обновляет примерно за минуту. Открывать правило и дополнительно сохранять не нужно.

Сколько стоит приветственный бот?

Настройка бесплатна. Автоматические сообщения не являются AI-генерацией и не расходуют кредиты ни на одном тарифе. Бесплатного плана достаточно для всех трёх правил.

Связанные руководства Discord