Поддержка клиентов
Кнопки в Telegram-боте: reply-клавиатура, инлайн-кнопки и запрос телефона или геолокации в одно касание
У Telegram-бота два вида кнопок, и работают они совсем по-разному. Reply-клавиатура отправляет текст и умеет запросить номер телефона или геолокацию; инлайн-кнопки висят под сообщением и открывают ссылки или запускают действия. Разбираем, когда что использовать и как настроить это в MonoChat.
Команда MonoChat Обновлено: 7 мин чтения
На этой странице
От кнопок зависит, будет ли Telegram-бот похож на толкового продавца или на анкету. Клиент, который может нажать «Где мой заказ» или «Отправить номер», отвечает за секунду. Тот, кому нужно вводить номер заказа, телефон в правильном формате или полный адрес, часто бросает на полпути.
Telegram даёт ботам два очень разных вида кнопок, и путаница между ними — самая частая причина, по которой бот кажется неуклюжим. В этой статье разбираем reply-клавиатуру и инлайн-кнопки, показываем, как одним нажатием запросить номер телефона или геолокацию, и как собрать всё это в MonoChat. Telegram сообщает о более чем 1 миллиарде активных пользователей, и для многих клиентов бот становится первой точкой контакта с вашей компанией.
Два вида кнопок коротко
| Reply-клавиатура | Инлайн-клавиатура | |
|---|---|---|
| Где появляется | Вместо клавиатуры клиента, под полем ввода | Под конкретным сообщением |
| Что делает нажатие | Отправляет текст кнопки в чат, как будто его напечатали | Передаёт боту скрытые данные, открывает ссылку или Mini App; в чат ничего не пишется |
| Может запросить телефон или геолокацию | Да (request_contact, request_location), в личных чатах | Нет |
| После нажатия | Может скрыться (one_time_keyboard) | Остаётся под сообщением |
| Подходит для | Ответов, которые должны остаться в чате: меню, Да/Нет, отправка контакта или геолокации | Действий над сообщением: ссылки, подтвердить/отменить, выбор из карточки |
В Bot API это ReplyKeyboardMarkup с объектами KeyboardButton и InlineKeyboardMarkup с объектами InlineKeyboardButton. Руководство Telegram по ботам формулирует разницу просто: в отличие от reply-клавиатуры, нажатие инлайн-кнопки не отправляет сообщение в чат.
Reply-клавиатура: ответы, будто клиент их напечатал
Reply-клавиатура заменяет буквы на сетку ваших кнопок. Когда клиент нажимает «Часы работы», в чате появляется «Часы работы» от его имени, и бот читает это как обычное сообщение. Поэтому она отлично подходит для меню и коротких ответов: история переписки остаётся понятной, а оператор, открывший диалог позже, видит, что именно выбрал клиент.
Поведение задают несколько параметров:
resize_keyboardуменьшает клавиатуру по высоте кнопок. Без него даже две кнопки занимают высоту полной клавиатуры.one_time_keyboardскрывает клавиатуру сразу после нажатия. Её можно вернуть значком в поле ввода, но клиент снова видит буквы.input_field_placeholderпоказывает подсказку длиной от 1 до 64 символов в поле ввода, например «Выберите вариант».is_persistentоставляет кнопки на экране, даже когда обычная клавиатура скрыта.
Поскольку нажатие отправляет обычный текст, подпись кнопки — это ещё и ключ маршрутизации. Делайте её короткой, уникальной и неизменной: если «Отследить заказ» превратится в «Где моя посылка?», обновите и условие в сценарии, которое ждёт этот текст.
Запрос номера телефона через «Поделиться контактом»
Telegram-бот никогда сам не видит номер клиента. Единственный способ — попросить: кнопка клавиатуры с request_contact, равным true. Когда клиент её нажимает, Telegram отправляет боту его номер в виде контакта. В Bot API отдельно сказано, что это работает только в личных чатах.
Это гораздо надёжнее, чем «введите номер телефона»: не потерян код страны, нет лишних пробелов, и это номер, на который зарегистрирован аккаунт Telegram. Естественный первый шаг, когда клиента нужно связать с заказом, записью или карточкой в CRM.
Две привычки помогают клиенту решиться:
- Объясните зачем. «Поделитесь номером, чтобы мы нашли вашу запись» работает лучше, чем голая кнопка. Телефон — персональные данные по законам многих стран, например по Закону Республики Казахстан «О персональных данных и их защите» или по GDPR; цель запроса лучше назвать прямо.
- Оставьте другой путь. Не все готовы делиться номером. Примите номер брони или e-mail либо передайте диалог оператору.
Запрос геолокации
request_location работает так же: одно нажатие отправляет текущее местоположение клиента в виде геолокации. Подходит для адреса доставки, ближайшего филиала, выезда мастера или проверки, попадает ли адрес в зону обслуживания. Тоже только в личных чатах, и решает клиент.
Инлайн-кнопки: действия под сообщением
Инлайн-кнопки принадлежат одному сообщению, поэтому уместны, когда выбор касается именно его: «Подтвердить» и «Перенести» под сводкой записи, «Открыть меню» под приветствием ресторана, «Оплатить через Kaspi» под счётом. Чаще всего используют три типа:
- Callback-кнопки передают боту до 64 байт данных (
callback_data). В чате ничего не появляется; что дальше, решает бот. - URL-кнопки открывают страницу, например прайс-лист или отслеживание посылки.
- Кнопки Web App открывают Mini App внутри Telegram, например форму записи или каталог.
Одна деталь сильно влияет на ощущения. После нажатия callback-кнопки Telegram показывает индикатор загрузки, пока бот не вызовет answerCallbackQuery, и просит ботов вызывать его, даже если показывать нечего. Бот, который пропускает этот шаг, оставляет кнопку «в загрузке», и клиент жмёт снова и снова.
О бизнес-аккаунтах Telegram Business. Если подключить бота к аккаунту Telegram Business, чтобы он отвечал в ваших личных чатах, Telegram не поддерживает reply-клавиатуру и кнопки Web App в сообщениях, отправленных от имени этого аккаунта. Они работают в чате с самим ботом — именно так с клиентами общается бот, подключённый по токену из BotFather, как в MonoChat.
Что выбрать
| Ситуация | Используйте |
|---|---|
| Главное меню: «Цены», «Часы работы», «Связаться с оператором» | Reply-клавиатуру (быстрые ответы) |
| Да/Нет, оценка, выбор времени | Reply-клавиатуру, скрывающуюся после нажатия |
| Получить номер телефона клиента | Кнопку отправки контакта |
| Адрес доставки или ближайший филиал | Кнопку отправки геолокации |
| Подтвердить или отменить запись из этого сообщения | Инлайн callback-кнопки |
| Открыть сайт, трекинг или страницу оплаты | Инлайн URL-кнопку |
| Форма или каталог внутри Telegram | Инлайн-кнопку Web App |
Простое правило: если ответ должен остаться в переписке — reply-клавиатура. Если кнопка действует над сообщением или ведёт за пределы Telegram — инлайн-кнопка.
Как собрать кнопки Telegram в MonoChat
MonoChat подключает вашего бота по токену из BotFather (см. как создать бота и получить токен). С версии 3.8.41 (1 ноября 2026 года) MonoChat отправляет быстрые ответы, запросы геолокации и запросы контактных данных кнопками reply-клавиатуры Telegram, показывает заголовок с изображением, видео или документом в сообщениях с кнопками, отвечает на каждое нажатие, чтобы кнопки больше не зависали, и умеет показывать индикатор набора текста.
1. Быстрые ответы (reply-клавиатура). Добавьте в сценарий узел Отправить сообщение (или создайте одно из Коротких сообщений) и выберите тип Текст. Напишите текст, включите Быстрый ответ и в разделе Кнопки нажмите Добавить для каждой кнопки. Укажите Тип text и впишите подпись для каждого языка, на котором вы работаете. Telegram покажет кнопки под полем ввода, по две в ряд, подогнав размер. Быстрые ответы можно добавить и к сообщениям с изображением, видео и документом.
2. Запросите телефон. Выберите тип Запрос контактных данных и напишите сообщение, например «Чтобы найти ваш заказ, поделитесь, пожалуйста, номером телефона». Telegram покажет кнопку Поделиться контактными данными на языке клиента. После одного нажатия она скрывается, а номер приходит в чат контактом. Быстрый ответ типа user-phone-number делает то же самое внутри меню.
3. Запросите геолокацию. Выберите тип Запрос геолокации. Клиент увидит кнопку Отправить местоположение, а его местоположение придёт сообщением с геолокацией.
4. Инлайн-кнопки. Выберите тип Кнопка. В поле Тип заголовка можно добавить изображение, видео или документ сверху; напишите текст (до 1024 символов) и добавьте кнопки: postback для callback, web-url для ссылки и app-url для Mini App. Подпись — до 20 символов. Нажатие на postback приходит в чат как Ответ кнопкой.
5. Ветвление по ответу. Запустите бот-сценарий событием Получено новое сообщение и включите Это бот?. После вопроса добавьте узел Если с условием Текст сообщения для быстрых ответов или Тип сообщения, чтобы отличить присланный контакт или геолокацию от набранного текста. Клиента, выбравшего «Связаться с оператором», отправьте в узел Назначить диалог.
6. Покажите, что вы печатаете. В настройках канала включите Включить индикатор набора текста. Клиент увидит «печатает…», пока оператор набирает ответ и пока ИИ-узел в сценарии готовит ответ; при загрузке изображения или документа Telegram покажет, что отправляется фото или файл.
Каждый диалог, каждое нажатие и каждый присланный контакт попадают в те же общие входящие, что и переписка в WhatsApp, Instagram и Messenger, так что оператор, принявший диалог, видит, что выбрал клиент.
Пример: бот доставки аптеки
Клиент: /start Бот: Здравствуйте, это аптека «Достар» в Алматы. Чем можем помочь? (кнопки: Доставка на дом · Часы работы · Спросить фармацевта) Клиент: Доставка на дом Бот: Поделитесь, пожалуйста, номером, чтобы мы нашли ваш рецепт. (кнопка: Поделиться контактными данными) Клиент: (отправляет контакт) Бот: Спасибо. Куда доставить? (кнопка: Отправить местоположение) Клиент: (отправляет геолокацию) Бот: Привезём сегодня с 16:00 до 18:00. (инлайн-кнопки: Подтвердить · Изменить время)
Три reply-клавиатуры собирают ответы в чате, одна инлайн-клавиатура подтверждает итог. «Спросить фармацевта» сразу ведёт к человеку.
Каких ошибок избегать
- Слишком много кнопок. От двух до шести вариантов на клавиатуру легко читать с телефона. Длинные меню лучше вынести в Mini App или на второй шаг.
- Запрос номера с порога. Просите, когда клиент понимает зачем.
- Клавиатура, которая не исчезает. Клиенту кажется, что писать нельзя. Для разовых вопросов используйте одноразовую клавиатуру.
- Молчащие кнопки. Каждое нажатие заслуживает ответа, хотя бы «Принято, секунду».
- Нет пути к человеку. Всегда оставляйте «Связаться с оператором». В статье Telegram для бизнеса мы разбираем передачу диалога и рабочие часы.
Если вы работаете и с WhatsApp, идеи те же, но ограничения другие: см. статью об интерактивных сообщениях WhatsApp. Чтобы добавить ИИ-ответы между кнопками, прочитайте, как создать ИИ-бота в Telegram.
Начните бесплатно на app.monochat.ai и подключите Telegram-бота за несколько минут.
Источники
- Telegram Bot API: ReplyKeyboardMarkup, KeyboardButton, InlineKeyboardButton, answerCallbackQuery, sendChatAction (Bot API 10.3) (открыто 2 ноября 2026 года)
- Telegram: возможности ботов, клавиатуры (открыто 2 ноября 2026 года)
- FAQ Telegram: более 1 миллиарда активных пользователей (открыто 2 ноября 2026 года)
- Справочный центр MonoChat: типы сообщений, быстрые ответы, запросы и индикатор набора в Telegram (открыто 2 ноября 2026 года)
- Журнал изменений MonoChat 3.8.41 (открыто 2 ноября 2026 года)
Применяйте это на практике с MonoChat