Перейти к содержимому

Шаблоны приветственных сообщений Discord: 6 готовых JSON

Шесть шаблонов приветственного сообщения Discord — готовый JSON для вебхука: классический embed, минимализм, игровой, бизнес, чеклист правил и Components V2.

6 мин чтения Доступно также на English
На этой странице

Приветственное сообщение — первое, что читает новый участник. Отправляют его двумя способами: один раз через вебхук в #welcome и закрепляют, либо бот или автоматизация шлёт его при каждом входе. Тело запроса в обоих случаях одно и то же — JSON, и именно его вы получите ниже: шесть шаблонов приветственных сообщений Discord, которые можно отправить на URL вебхука как есть, плюс несколько настроек, которые стоит поменять под себя.

Каждый шаблон — полное тело запроса, а не фрагмент. Замените плейсхолдеры (название сервера, ссылки на картинки, ID каналов), отправьте через curl или импортируйте в конструктор — и приветственный embed готов за минуту.

Как отправить любой шаблон

Сохраните JSON в welcome.json и отправьте:

curl -H "Content-Type: application/json" \
     -d @welcome.json \
     "https://discord.com/api/webhooks/YOUR_ID/YOUR_TOKEN"

Ответ 204 No Content означает, что сообщение доставлено. Три момента, которые стоит знать до того, как вставлять:

  • Упоминания каналов вида <#111111111111111111> рендерятся кликабельными ссылками без дополнительных настроек. ID копируется из контекстного меню канала при включённом режиме разработчика. Будут ли пользователи, роли или @everyone реально получать пинг, определяет allowed_mentions — см. гайд по упоминаниям.
  • Плейсхолдеры вроде {member} Discord не подставляет. Вебхук — обычный HTTP-эндпоинт; реальные значения подставляет ваш бот или скрипт перед отправкой.
  • Картинки — только публичные HTTPS-ссылки или attachment://file.png с файлом, загруженным в том же запросе. Приватная ссылка с Google Drive не отобразится.

Шаблон 1: классический приветственный embed

Как выглядит: полоса цвета blurple слева, иконка сервера маленькой картинкой в правом верхнем углу, жирный заголовок, описание в одну строку, три inline-поля со ссылками на правила, роли и знакомства, футер с номером участника и временная метка рядом с ним.

{
  "embeds": [
    {
      "title": "Добро пожаловать в Nightshift Studio 👋",
      "description": "Рады видеть! Возьмите роль, поздоровайтесь и чувствуйте себя как дома.",
      "color": 5793266,
      "thumbnail": { "url": "https://example.com/server-icon.png" },
      "fields": [
        { "name": "📜 Правила", "value": "<#111111111111111111>", "inline": true },
        { "name": "🎭 Роли", "value": "<#222222222222222222>", "inline": true },
        { "name": "💬 Знакомства", "value": "<#333333333333333333>", "inline": true }
      ],
      "footer": { "text": "Участник №1248" },
      "timestamp": "2026-09-17T12:00:00.000Z"
    }
  ]
}

footer.text — естественное место для того, что скрипт знает в момент отправки: счётчик участников, использованный инвайт или вообще ничего.

Шаблон 2: минималистичный

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

{
  "username": "Welcome",
  "content": "👋 Добро пожаловать, {member}!",
  "allowed_mentions": { "parse": ["users"] },
  "embeds": [
    {
      "description": "Поздоровайтесь в <#333333333333333333> и возьмите роль в <#222222222222222222>.",
      "color": 3066993
    }
  ]
}

Замените {member} на <@userId> из обработчика входа. Упоминание стоит в content не случайно: внутри embed оно отрисуется ссылкой, но никого не уведомит, а allowed_mentions.parse: ["users"] разрешает упоминанию из content пингануть новичка.

Шаблон 3: игровое сообщество

Как выглядит: фиолетовая полоса, своё имя и аватар у сообщения, баннер внизу, два inline-поля (роли платформ и поиск команды) и поле «Ближайший ивент» на всю ширину с живой временной меткой Discord, которая показывается в локальном времени каждого участника.

{
  "username": "Raid Lobby",
  "avatar_url": "https://example.com/raid-lobby.png",
  "embeds": [
    {
      "title": "GG, добро пожаловать в Raid Lobby 🎮",
      "description": "У нас кооп-вечера, рейтинговые скримы и иногда спидран-гонки.\n\nСначала возьмите роль платформы, иначе не увидите каналы поиска команды.",
      "color": 10181046,
      "fields": [
        { "name": "🕹️ Выбрать платформу", "value": "<#444444444444444444>", "inline": true },
        { "name": "🔍 Найти отряд", "value": "<#555555555555555555>", "inline": true },
        {
          "name": "📅 Ближайший ивент",
          "value": "<t:1789844400:F> (<t:1789844400:R>)",
          "inline": false
        }
      ],
      "image": { "url": "https://example.com/welcome-banner.png" },
      "footer": { "text": "Будьте дружелюбны. Злитесь в войсе, а не в тексте." }
    }
  ]
}

<t:1789844400:F> рендерится полной датой, <t:1789844400:R> — «через 2 дня». Генерируйте Unix-время из календаря ивентов, и поле никогда не устареет.

Шаблон 4: бизнес или сервер поддержки

Как выглядит: приглушённый синий, логотип компании в thumbnail, заголовок без эмодзи, два inline-поля (канал тикетов и замаскированная ссылка на статус-страницу), поле с часами работы на всю ширину и футер с целевым временем ответа.

{
  "embeds": [
    {
      "title": "Добро пожаловать в поддержку Acme Cloud",
      "description": "Этот сервер — самый быстрый способ связаться с нашими инженерами. Перед вопросом загляните в закреплённый FAQ. По вопросам оплаты откройте тикет и не публикуйте данные аккаунта в общих каналах.",
      "color": 3447003,
      "thumbnail": { "url": "https://example.com/acme-logo.png" },
      "fields": [
        { "name": "Открыть тикет", "value": "<#666666666666666666>", "inline": true },
        {
          "name": "Статус-страница",
          "value": "[status.acme.example](https://status.acme.example)",
          "inline": true
        },
        { "name": "Часы поддержки", "value": "Пн–Пт, 09:00–18:00 МСК\nСбои: 24/7", "inline": false }
      ],
      "footer": { "text": "Acme Cloud · Целевое время ответа: 1 рабочий день" },
      "timestamp": "2026-09-17T09:00:00.000Z"
    }
  ]
}

Замаскированные ссылки [текст](https://…) работают внутри полей embed, поэтому статус-страница выглядит одним аккуратным словом, а не голым URL.

Шаблон 5: приветствие с чеклистом правил

Как выглядит: золотая полоса, чекбокс-список в начале описания, дальше краткая версия правил в четыре строки, поле «Нужна помощь?» и футер с формулировкой согласия. Полные правила лучше вынести в отдельное сообщение — см. шаблон embed с правилами сервера.

{
  "allowed_mentions": { "parse": [] },
  "embeds": [
    {
      "title": "Добро пожаловать! Три шага перед стартом ✅",
      "description": "☑️ **Прочитайте правила** в <#111111111111111111>\n☑️ **Выберите роли** в <#222222222222222222>\n☑️ **Представьтесь** в <#333333333333333333>\n\nКраткая версия правил:\n1. Уважайте друг друга. Никакой травли и оскорблений.\n2. Без спама, нежелательных ЛС и самопиара вне <#777777777777777777>.\n3. Пишите в подходящий канал и прячьте спойлеры под тег.\n4. Последнее слово за модераторами. Обжалуйте в тикете, не публично.",
      "color": 15844367,
      "fields": [
        {
          "name": "Нужна помощь?",
          "value": "Упомяните <@&888888888888888888> в любом канале.",
          "inline": false
        }
      ],
      "footer": { "text": "Оставаясь на сервере, вы соглашаетесь с правилами выше." }
    }
  ]
}

allowed_mentions.parse: [] гарантирует, что это сообщение никого не пинганёт, что бы ни оказалось в тексте, — именно это нужно сообщению, которое уходит сотни раз.

Шаблон 6: контейнер Components V2 с кнопкой-ссылкой

Как выглядит: одна скруглённая карточка с цветной полосой, заголовок и вводный текст, тонкий разделитель, нумерованный чеклист и кнопка внизу, открывающая ссылку. Сетки «заголовок/поля» нет — раскладку задают компоненты. Это формат Components V2, поэтому flags должен быть 32768, а content и embeds — пустыми.

{
  "flags": 32768,
  "components": [
    {
      "type": 17,
      "accent_color": 5793266,
      "components": [
        {
          "type": 10,
          "content": "## Добро пожаловать в Nightshift Studio 👋\nВы участник **№1248**. Две минуты на настройку — и вы в деле."
        },
        { "type": 14 },
        {
          "type": 10,
          "content": "**1.** Прочитайте правила\n**2.** Выберите роли в <#222222222222222222>\n**3.** Поздоровайтесь в <#333333333333333333>"
        },
        {
          "type": 1,
          "components": [
            {
              "type": 2,
              "style": 5,
              "label": "Прочитать правила",
              "url": "https://example.com/rules"
            }
          ]
        }
      ]
    }
  ]
}

Отправляйте с ?with_components=true в URL, иначе Discord проигнорирует поле components:

curl -H "Content-Type: application/json" \
     -d @welcome-v2.json \
     "https://discord.com/api/webhooks/YOUR_ID/YOUR_TOKEN?with_components=true"

Кнопки-ссылки (style: 5) — единственные кнопки, которые может отправить обычный вебхук; в тот же action row можно добавить ещё несколько, например «Гид по сообществу» рядом с «Прочитать правила». Кнопка «Получить роли», которая реально выдаёт роль, — интерактивная, ей нужен бот; как это работает через бота сайта, описано в гайде по интерактивным кнопкам.

Как настроить шаблон под себя

Цвет

color — десятичное целое, а не hex-строка. 5793266 — это blurple Discord #5865F2; любой hex переводится через parseInt("5865F2", 16) в JavaScript или int("5865F2", 16) в Python. В шаблоне Components V2 то же значение идёт в accent_color контейнера. Готовая палитра — в гайде по цветам embed.

Thumbnail и баннер

thumbnail.url — маленькая картинка справа вверху, image.url — большая под полями. Обеим нужны публичные HTTPS-ссылки. Если баннер лежит на диске, загрузите его как files[0] в multipart-запросе и сошлитесь через attachment://banner.png — см. отправку файлов. В thumbnail хорошо смотрится аватар нового участника: передавайте его URL из события входа.

Временная метка

timestamp — ISO 8601 (2026-09-17T12:00:00.000Z), Discord показывает её рядом с футером в часовом поясе читателя. Генерируйте в момент отправки: new Date().toISOString() в JavaScript, datetime.now(timezone.utc).isoformat() в Python. Для дат внутри текста используйте <t:UNIX:R> — она остаётся относительной («3 минуты назад») без повторной отправки.

Плейсхолдеры и упоминания

Подставьте плейсхолдеры в коде и только потом отправляйте. Минимальный обработчик на discord.js, который шлёт шаблон 2 при каждом входе (включите боту intent Server Members в Developer Portal):

import { readFileSync } from 'node:fs';
import { Client, GatewayIntentBits } from 'discord.js';

const template = readFileSync('./welcome.json', 'utf8');
const client = new Client({
  intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMembers],
});

client.on('guildMemberAdd', async (member) => {
  const body = JSON.parse(template.replaceAll('{member}', `<@${member.id}>`));
  body.embeds[0].thumbnail = { url: member.displayAvatarURL({ size: 256 }) };
  await fetch(process.env.WEBHOOK_URL, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify(body),
  });
});

client.login(process.env.DISCORD_TOKEN);

Если бота нет, тот же JSON можно отправлять из платформы автоматизации по любому доступному там триггеру — см. Zapier, Make и n8n.

Имя и аватар

username и avatar_url переопределяют настройки вебхука для конкретного сообщения (до 80 символов, без «discord» и «clyde» в имени). Так приветствие приходит от лица «Welcome», а не «Deploy Bot». Подробнее — в статье про имя и аватар вебхука.

Как загрузить шаблон в конструктор

Если хочется увидеть результат до отправки:

  1. Откройте конструктор Discord Webhook и выберите импорт JSON.
  2. Вставьте один из шаблонов выше. Предпросмотр отрисует embed так, как его покажет Discord, включая цвет, thumbnail и временную метку.
  3. Поправьте текст, замените ссылки на картинки, поменяйте цвет пикером. Для шаблона Components V2 конструктор показывает контейнер, разделитель и кнопку как редактируемые блоки.
  4. Вставьте URL вебхука и отправьте — или экспортируйте результат как JSON, код discord.js или discord.py для обработчика входа.

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

Частые ошибки

  • 400 с embeds.0.color — вы отправили "#5865F2" или "5865F2". color должен быть десятичным целым.
  • 400 с embeds.0.description exceeds limit — описание ограничено 4096 символами, все embed одного сообщения вместе — 6000. Длинные правила вынесите во второе сообщение.
  • Шаблон Components V2 возвращает 400 или приходит без кнопки — проверьте все три условия: flags: 32768, ?with_components=true в URL и отсутствие content/embeds в теле.
  • Thumbnail или баннер пустой — ссылка не ведёт напрямую на публичную картинку. Откройте её в приватном окне браузера: если там не «голое» изображение, Discord его тоже не загрузит.
  • Упоминание видно, но никто не получил пинг — упоминание стоит внутри embed или allowed_mentions его не разрешает (например, parse: []). Поместите <@userId> в content и разрешите его через allowed_mentions.
  • 404 {"message":"Unknown Webhook","code":10015} — URL неверный или вебхук удалён. Создайте новый: Настройки сервера → Интеграции → Вебхуки.
  • 429 Too Many Requests при волне новых участников — прочитайте retry_after из тела ответа и подождите; см. лимиты запросов.

FAQ

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

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

Можно ли упомянуть нового участника в приветственном embed?

<@userId> внутри embed отрисуется кликабельным упоминанием, но упоминания в embed никого не уведомляют. Чтобы пингануть новичка, поставьте упоминание в content и разрешите его через "allowed_mentions": { "parse": ["users"] } или { "users": ["userId"] }. Роли и каналы упоминаются через <@&roleId> и <#channelId>.

Что выбрать для приветствия — классический embed или Components V2?

Embed — когда нужна привычная раскладка «заголовок/поля/thumbnail» и максимальная совместимость с существующими инструментами. Components V2 — когда в той же карточке нужны кнопки-ссылки, разделители или медиагалерея. Оба формата отправляет любой вебхук без бота.

Считается ли приветственный embed в лимит 2000 символов content?

Нет. У content свой лимит в 2000 символов; embed ограничены отдельно (4096 на описание и 6000 суммарно на все embed одного сообщения).

Что дальше

Возьмите шаблон, ближайший к вашему серверу, поменяйте цвет и ID каналов и отправьте. Чтобы увидеть результат до отправки и экспортировать его в код, откройте бесплатный конструктор Discord Webhook. Разбор каждого поля — в гайде по конструктору embed, формат контейнеров — в гайде по Components V2, а когда дойдёте до кнопок, выдающих роли, — в гайде по интерактивным кнопкам.

Теги: шаблон приветствия discordприветственное сообщение discorddiscord welcome message templatediscord welcome embedembedcomponents v2вебхук discorddiscord webhook

Похожие статьи

Все статьи

Соберите это в визуальном редакторе

Embed, Components V2, кнопки и опросы с живым предпросмотром Discord. Бесплатно, без регистрации.