БЕСПЛАТНЫЙ ИНСТРУМЕНТ

Генератор меню и кнопок для бота MAX

Соберите клавиатуру бота: выберите типы кнопок, разложите по рядам, добавьте вложенные подменю. Справа — предпросмотр с кликабельными кнопками и проверка лимитов MAX, ниже — готовый код или JSON для Bot API.

Бесплатно и без регистрации. Ничего никуда не отправляется — результат собирается прямо в браузере.

Кнопки меню4 кнопки + 2 в подменю

payload — придёт боту в событии message_callback. Латиница и подчёркивания удобнее для кода

payload — придёт боту в событии message_callback. Латиница и подчёркивания удобнее для кода

payload — придёт боту в событии message_callback. Латиница и подчёркивания удобнее для кода

Адрес, куда ведёт кнопка. MAX принимает ссылку до 2048 символов

Главное меню
Выберите пункт:
Результат
import { Keyboard } from '@maxhub/max-bot-api';

const menu = Keyboard.inlineKeyboard([
    [Keyboard.button.callback('Цены', 'prices'), Keyboard.button.callback('Записаться', 'booking')],
    [Keyboard.button.callback('Адрес', 'address'), Keyboard.button.link('Позвонить', 'tel:+79000000000')],
]);

// Подменю «Цены»
const submenu_prices = Keyboard.inlineKeyboard([
    [Keyboard.button.callback('Стрижка', 'price_haircut'), Keyboard.button.callback('Окрашивание', 'price_color')],
    [Keyboard.button.callback('← Назад', 'menu_root')],
]);

// Показать главное меню
bot.command('start', (ctx) => ctx.reply('Выберите пункт:', { attachments: [menu] }));
bot.action('menu_root', (ctx) => ctx.reply('Выберите пункт:', { attachments: [menu] }));

bot.action('prices', (ctx) =>
    ctx.reply('Цены', { attachments: [submenu_prices] })
);
Что дальше

Меню — это навигация по частым действиям. Всё остальное закрывает свободный текст: соберите бота целиком в конструкторе бота или прочитайте, как устроены кнопки и меню в MAX.

Кнопки закрывают частые действия, но не все вопросы

Как только клиент напишет своими словами, меню кончается. Подключите к боту ИИ-ассистента — он ответит по вашему прайсу на любой вопрос, а кнопки останутся для быстрых действий.

Генератор меню и кнопок для MAX: частые вопросы

Сколько кнопок можно поставить в боте MAX?

По документации MAX одна клавиатура вмещает до 210 кнопок, сгруппированных максимум в 30 рядов, до 7 кнопок в ряду. Для кнопок типов link, open_app, request_contact и request_geo_location — не больше 3 в ряду. Лимит действует на каждую клавиатуру отдельно, поэтому подменю считается своей клавиатурой; генератор проверяет их по одной и предупреждает, когда вы выходите за рамки.

Какие типы кнопок бывают в MAX?

Bot API MAX поддерживает семь типов: callback (бот получает событие message_callback с payload), link (открывает ссылку, до 2048 символов), message (отправляет заранее заданный текст), clipboard (копирует payload в буфер обмена), open_app (открывает мини-приложение, поле web_app), request_contact и request_geo_location (запрашивают телефон и геопозицию). Все семь есть в генераторе.

Чем кнопка «Ответ бота» отличается от «Ссылки»?

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

Как сделать многоуровневое меню?

Добавьте кнопке типа «Ответ бота» вложенные пункты — генератор соберёт отдельную клавиатуру для подменю и обработчик, который её показывает. Внутри подменю автоматически появляется кнопка «Назад» к главному меню.

Что делать с полученным кодом?

Вставить в файл бота рядом с остальными обработчиками. Код рассчитан на официальный пакет @maxhub/max-bot-api. Если бот работает через прямые HTTP-запросы, возьмите вкладку JSON — там готовое вложение inline_keyboard для метода отправки сообщения.