Как создать бота в Telegram и подключить к Axle
С нуля — от установки Telegram до работающего бота заведения с кнопками. Бесплатно, минут 10.
Перед началом
- Telegram на телефоне или компьютере. Нет приложения — скачайте с telegram.org или из магазина приложений и войдите по номеру телефона. Бот создаётся и с телефона, и с компьютера.
- Аккаунт, который останется у заведения. Управлять ботом (менять имя, аватар, выпускать новый токен) можно только из аккаунта, который его создал. Не создавайте бота с личного номера сотрудника, который может уйти.
- 5 минут и адрес бота. Адрес потом печатается на QR-кодах и в ссылках — придумайте его сразу окончательным.
Шаг 1. Создайте бота в BotFather
- Найдите в поиске Telegram @BotFather — официального бота Telegram для создания ботов. У настоящего рядом с именем синяя галочка; копии без галочки — не он.
- Нажмите Старт (или Start) и отправьте команду
/newbot. BotFather отвечает по-английски — дальше он задаст два вопроса. - Имя — его видят гости в списке чатов, например «Кофейня на Ленина». Можно по-русски, поменять потом — команда
/setname. - Адрес (username) — латиницей, от 5 до 32 символов, можно цифры и
_, в конце обязательноbot:kofeynya_lenina_bot. Если адрес занят, BotFather так и напишет — придумайте другой. - BotFather пришлёт сообщение с токеном — длинной строкой вида
1234567890:AAH…. Нажмите на неё — Telegram скопирует. Токен — полный доступ к боту: не пересылайте его в чаты и не публикуйте.
/setuserpic) и описание (/setdescription) — гости видят их до первого нажатия «Старт».Шаг 2. Подключите бота к Axle
- Кабинет → Интеграции → карточка Telegram.
- Вставьте токен в поле «Токен бота из @BotFather» и нажмите Подключить. Мы сами установим вебхук и кнопку мини-приложения — бот оживает сразу.
- Статус карточки сменится на «подключён» с адресом бота.

Если токен не принимается
- Скопирован не целиком или с пробелом в начале или в конце — скопируйте заново.
- Токен перевыпущен. В BotFather
/mybots→ ваш бот → API Token → Revoke current token выдаёт новый токен, а старый сразу перестаёт работать. Так же делают, если токен кому-то попал: выпустите новый и вставьте его в Axle. - Бот уже работает в другом сервисе. У бота Telegram может быть только один получатель сообщений: подключив его к Axle, вы отключите его от прежнего сервиса. Для Axle лучше завести отдельного бота.
Если включаете «Main App» в BotFather
BotFather умеет назначать боту главное мини-приложение — тогда в списке чатов у бота появляется кнопка «Открыть». Настройка там же: /mybots → ваш бот → Bot Settings → Main App. Два условия, иначе приложение откроется сломанным:
- Launch Mode = Fullsize. Режим Fullscreen прячет шапку заведения под системную строку телефона и накрывает её плавающими кнопками Telegram — гость не видит, где он. Compact открывает приложение в половину экрана. Правильный режим — Fullsize.
- Ссылка — адрес вашего приложения из карточки Telegram в «Интеграциях», без параметров:
https://axleapp.ru/app/{номер организации}/. Приложение откроется на разделе, который выбран первым в «Нижней панели» (Профиль → «Приложение гостя»).
Шаг 3. Настройте кнопки меню
Карточка Telegram → вкладка Меню. У бота есть готовые кнопки: Бронь, Меню, Вызвать официанта, Моя карта, Как добраться, Написать нам. Для каждой:
- тумблер — показывать или нет;
- Настроить — подпись у гостя, текст сообщения (поддерживает макросы
{имя},{баланс},{карта},{уровень}— чипы под полем вставляют их в текст) и режим: - «Меню»: встроенное меню из вкладки «Прайс» тариф «Старт» или своя ссылка (сайт, PDF); - «Бронь»: наша онлайн-бронь тариф «Старт» или внешний сервис (Restoplace и т.п.); - «Моя карта»: текст + кнопки «Добавить в Google/Apple Wallet» (можно переименовать и выключать). - Как добраться — вставьте ссылки на 2ГИС / Яндекс Карты / Google Maps.
Макет чата справа
Рядом со списком кнопок — телефон с перепиской: то же меню, что получит гость, и живые кнопки. Нажмите любую — увидите сообщение, которым ответит бот, с вашими текстами, подставленными макросами и ссылками. Тумблеры и настройки кнопок макет подхватывает сразу, перезагружать страницу не нужно.
Макет честный и подсказывает недоделки: у «Как добраться» без ссылок гость получит «Адрес пока не указан», у «Моей карты» без включённых площадок Wallet не будет кнопок добавления, а вызов официанта без сценария в «Автоматизации» ответит дежурной фразой. Если у кнопки «Вызвать официанта» есть касса или режим «только во время визита», под телефоном появится переключатель «Гость сейчас: за столом / не в заведении» — им проверяют оба случая.
Площадки в макете разные, потому что разные на самом деле: в Telegram это нижнее меню под полем ввода, и нажатие отправляет боту текст кнопки (он виден в переписке); в MAX нижнего меню нет — кнопки приходят вложением к приветствию, остаются в истории, а нажатие уходит боту скрытым сигналом.
Тот же телефон стоит и на странице Настроить — там он показывает нажатие именно этой кнопки и пересобирается прямо во время правки: меняете текст сообщения, подпись кнопки, режим или ссылку — сообщение в чате меняется на каждой букве, сохранять для проверки не нужно. Выключенная кнопка и режим «только во время визита» подписаны: макет объяснит, почему сейчас гость её не увидит.
Вернуться к списку кнопок — ← Все кнопки меню вверху страницы или Отмена под формой; правки при этом не сохраняются. Кнопка Сохранить уводит туда же, но уже с сохранёнными настройками.
Когда гость увидит новые кнопки
Нижнее меню в Telegram приходит гостю вместе с сообщением бота и остаётся у него до следующего такого сообщения. Обновить меню отдельно, без сообщения, Telegram не даёт — так устроен сам Telegram, обойти это нельзя.
- Поменяли кнопки в кабинете — гость увидит новый набор со следующим сообщением бота. До тех пор у него остаются прежние кнопки. Меню обновляют: ответ бота на нажатие кнопки, сообщение сценария из «Автоматизации», ответ сотрудника из «Диалогов», приветствие на команду
/start. - Сообщение с кнопками под текстом меню не обновляет. У одного сообщения в Telegram бывают либо кнопки под текстом, либо нижнее меню — не оба сразу. Например, опрос с оценками 0–10 или «Моя карта» с кнопками Wallet меню не поменяют — поменяет следующее сообщение без кнопок.
- Кнопки визита живут по тому же правилу. «Вызвать официанта» в режиме «только во время визита» появится у гостя с первым сообщением бота после того, как касса открыла чек, и уйдёт с первым сообщением после закрытия чека. Если сообщения не было, кнопка какое-то время остаётся на месте — нажатие вне визита зал не поднимет, бот попросит показать сотруднику QR-код.
Поэтому ситуация «у гостя кнопка то есть, то нет» — обычно не сбой: меню у него обновилось не сразу после правки или смены визита, а с ближайшим сообщением бота.
Если гость не видит кнопок
- Меню свёрнуто. Telegram разрешает гостю спрятать нижнее меню, и оно прячется само, когда гость открывает клавиатуру, чтобы написать текст. Тогда в поле ввода остаётся значок с квадратиками ⊞ — нажатие на него возвращает кнопки. На iPhone, Android и Huawei значок выглядит немного по-разному, но работает одинаково.
- Кнопок нет совсем, и значка тоже нет. Попросите гостя отправить боту команду
/start— бот ответит приветствием и пришлёт актуальное меню.
Шаг 4. Включите пересылку сообщений
Вкладка Настройка → тумблер пересылки: всё, что гость пишет боту, прилетает в ваш админ-бот. Ответьте на пересланное сообщение (reply) — ответ уйдёт гостю от имени заведения.
Шаг 5. Проверьте глазами гостя
Откройте своего бота, нажмите «Старт», потыкайте кнопки: карта с QR, меню, бронь. Всё, что видите вы — увидят гости. Быстрая сверка без телефона — макет чата на вкладке «Меню»: он собирает то же меню и те же ответы, что и живой бот.
Шаг 6. Раздайте ссылку
t.me/ваш_бот — в соцсети, на столы (QR), в чеки. Для каждого канала добавляйте свою метку: t.me/ваш_бот?start=utm_instagram — вкладка «Когорты» потом покажет, какой канал приводит гостей.