3SELLER Journal 3SELLER →

Как сделать инлайн-кнопки в боте: 3 простых способа без чтения документации

06.10.2026

Инлайн-кнопки в боте это те самые кнопки, которые прикреплены к сообщению и исчезают, когда сообщение удаляется. Они нужны для всего: меню, оплаты, перехода по ссылкам, быстрых ответов. Без них бот выглядит как скучный автоответчик.

Сегодня разберем, как сделать инлайн-кнопки в боте тремя способами: код на Python, конструктор сценариев и готовый ИИ-сервис. Первый для тех, кто дружит с языком программирования, остальные - для тех, кто хочет обойтись без кода. Поехали.

Что такое инлайн-кнопки и чем они отличаются от обычных

В Telegram есть два типа клавиатур. Обычная reply-клавиатура появляется вместо основной панели ввода, она всегда видна пользователю. Инлайн-клавиатура привязана к конкретному сообщению. Если сообщение удалить, кнопки исчезнут. Внутри инлайн-кнопки можно передавать callback_data, url, switch_inline_query и другие параметры.

Инлайн-кнопки удобнее для сценариев. Например, сделать меню товара, кнопку перехода на сайт или опрос. Пользователь видит контекст и сразу кликает.

Как сделать инлайн-кнопки на Python с aiogram

Самый популярный способ создать инлайн-кнопки в боте написать код на Python с библиотекой aiogram. Это стандарт для Telegram-ботов. Если у тебя уже есть бот, тебе понадобится всего два класса из aiogram.types: InlineKeyboardMarkup и InlineKeyboardButton.

Установить aiogram просто. Выполни в терминале pip install aiogram и импортируй нужные классы.

Кстати, самый простой пример inline-кнопок, который ты видел, это меню @BotFather. С помощью него обычно создается робот-автоответчик в Телеграмме. А точнее, он выдает токен для доступа к API. По такому же принципу работают твои кнопки.

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

from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton

button_1 = InlineKeyboardButton('Кнопка один', callback_data='one')
button_2 = InlineKeyboardButton('Ссылка', url='https://example.com')
keyboard = InlineKeyboardMarkup(row_width=1)
keyboard.add(button_1, button_2)

Потом в обработчике команды отправляешь сообщение с этой клавиатурой как reply_markup. Например:

@dp.message_handler(commands=['start'])
async def start(message: types.Message):
    await message.answer('Привет! Вот твои кнопки', reply_markup=keyboard)

Если нужно обработать нажатие, используй callback_query_handler. Например:

@dp.callback_query_handler(text='one')
async def process_callback(callback: types.CallbackQuery):
    await bot.send_message(callback.from_user.id, 'Нажата кнопка один')

Этого достаточно для базовой навигации. Если нужно несколько кнопок в ряд, меняй row_width. Для разных действий задавай разные callback_data.

Как добавить инлайн-кнопки без программирования

Не все готовы писать код. Для таких случаев есть конструкторы ботов. Например, Aimylogic от Just AI. В их документации все разжевано. Смотри, как это выглядит.

Открой сценарий, найди экран, куда нужно добавить кнопки. Нажми «+ Кнопка». Введи пробел и Enter. Текст кнопки будет содержать один символ пробела. Затем нажми на значок ссылки и вставь любую ссылку. Сохрани. После этого опубликуй сценарий и дождись сообщения о публикации.

Если хочешь проверить, пошли боту /start. Обычные кнопки превратятся в инлайн-кнопки. Кнопка с пробелом не отображается, но занимает место, чтобы выровнять сетку.

Почему кнопки не обновляются и как это исправить

В документации Aimylogic есть полезное замечание. Не всегда новый вариант кнопок виден сразу. На Reddit разработчики подтверждают: нужно пройти по другой ветке бота, затем послать /start и вернуться на экран с кнопками. Если два экрана идут подряд, на первом обычные кнопки, на втором инлайн, то при переходе на второй экран обычные кнопки не исчезнут. Это нормально.

Главное не забыть опубликовать сценарий после изменений. Без публикации бот продолжит работать по старой версии.

Как запомнить выбор пользователя

Когда пользователь кликает по инлайн-кнопке, бот получает callback. Чтобы запомнить выбор, используй callback_data или переменные состояния. На Reddit советуют не перегружать callback_data, а для сложных сценариев применять state. Например, если пользователь выбрал тариф «Премиум», сохрани это значение в state и на следующем шаге предложи оплату. В aiogram для этого есть FSMContext, в конструкторах типа Aimylogic - переменные сессии.

Добавить пустую кнопку для красивого выравнивания

Иногда нужно добавить в ряд невидимую кнопку, чтобы другие кнопки выстроились ровно. Создай кнопку с текстом из одного пробела и без ссылки. Она не отобразится, зато займет место. Такой вариант подойдет, если кнопка-ссылка не подходит для твоего сценария.

Хватит программировать: ИИ создаст воронку с кнопками за 3 минуты

Ладно, код это круто. Но когда ты делаешь продающего бота, одного набора кнопок мало. Нужна логика прогрева, ответы на возражения, удержание внимания. Писать такое вручную долго. Я недавно нашел сервис, который решает это за пару минут.

Речь про Отклик AI. Работает он как ChatGPT, только для автоворонок в Telegram. Ты пишешь обычными словами, что хочешь продать, и он сам собирает воронку. С кнопками, текстами, сценариями общения. Никаких блок-схем и программистов.

Внутри каждой воронки встроен ИИ-продавец. Он общается с людьми в чате как живой человек, отвечает на вопросы, закрывает страхи и отрабатывает возражение «дорого». Конверсия вырастает до 37% без увеличения бюджета.

Выглядит это так:

Если устал собирать ботов по кусочкам, зайди на 3seller.com/funnels и напиши боту, что нужно. Через 3 минуты получишь готовую воронку, которая сама общается и продает.

Что делать дальше

Сделать инлайн-кнопки в боте не сложно. Если умеешь в Python, используй aiogram. Если нет, бери конструктор или ИИ-инструмент. Главное понимать, зачем тебе кнопки: вести на сайт, запускать сценарий или собирать заявки. Начни с простого: пропиши цель кнопок и собери первый прототип уже сегодня.

← Вернуться к блогу