Вопрос «как создать чат бота в телеграмме» распадается на три решения: где регистрировать бота, чем собирать логику и куда положить код, чтобы он работал круглосуточно. Регистрация занимает пять минут и всегда идёт через @BotFather, остальные два шага определяют бюджет и потолок возможностей. Ниже весь путь с опорой на документацию Telegram: лимиты Bot API, порты для вебхука, правила приватности в группах и порядок приёма оплаты.
Актуальная версия платформы: Bot API 10.2 от 14 июля 2026 года, в ней появились эфемерные сообщения, видимые в группе только одному пользователю. Номер версии проверяйте в разделе Recent changes на core.telegram.org/bots/api: часть примеров из старых руководств уже не соответствует поведению API.
Создать чат бота можно тремя путями, и отличаются они не качеством, а тем, где проходит потолок: конструктор закрывает кнопочные сценарии и анкеты, свой код снимает ограничения по логике, разработка под задачу нужна там, где бот встраивается в бизнес-процесс.
| Параметр | Конструктор | Свой код на Bot API | Разработка под задачу |
|---|---|---|---|
| Срок до первого диалога | Несколько часов | Один вечер для эхо-бота | Недели |
| Что нужно уметь | Собирать блок-схему | Python или JavaScript | Ничего, работу ведёт команда |
| Постоянные расходы | От 990 до 3 999 рублей в месяц | Сервер и домен с SSL | Сервер плюс сопровождение |
| Где упирается | Лимиты тарифа: подписчики, команды, запросы | В квалификации разработчика | В бюджете |
| Интеграции | Готовый список, вебхук на верхних тарифах | Любые по HTTP | Любые, включая внутренние системы |
Единственный официальный способ завести бота: написать @BotFather и отправить /newbot. Сервис попросит два значения. Имя отображается в контактах и меняется в любой момент. Юзернейм длиной от 5 до 32 символов, только латиница, цифры и подчёркивания, обязательно заканчивается на bot, например tetris_bot. Команды смены юзернейма в @BotFather нет: освободить имя можно только командой /deletebot, а она удаляет бота без отката. Выбирайте до того, как раздадите ссылку.
В ответ придёт токен вида 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw. Это единственный ключ доступа: кто им владеет, тот управляет ботом и читает переписку. Если токен утёк, команда /token у @BotFather выдаёт новый, старый перестаёт работать.
Там же настраивается витрина. Команда /setdescription задаёт текст до 512 символов на экране «Что умеет этот бот», /setabouttext короткое описание до 120 символов для профиля, оно уходит вместе со ссылкой при пересылке. Передача бота другому владельцу идёт через /mybots и возможна только тому, кто хотя бы раз с ботом взаимодействовал: новый владелец получает доступ к переписке и право удалить бота, откатить передачу нельзя.
Конструктор берёт на себя сервер, хранение подписчиков и редактор сценария, токен из @BotFather вставляется в панель площадки. Разница между сервисами видна не в функциях, а в том, на каком объёме включается следующий тариф. Цены проверены 22 августа 2026 года на страницах тарифов.
Считайте год, а не месяц, и не по цене входа, а по строке, в которую упрётесь первой. У PuzzleBot это подписчики: 3 000 на ресурс за 990 рублей, следующая ступень 30 000 уже за 1 690, дальше 60 000 за 2 990. У Salebot первой упирается не база, а суточный объём сообщений. Бесплатные тарифы этих же площадок и их потолки разобраны в материале о бесплатных чат-ботах для Telegram.
Bot API это обычный HTTPS-интерфейс: запросы идут по схеме https://api.telegram.org/bot<token>/METHOD_NAME, поддерживаются GET и POST. Первый запрос после регистрации: getMe, он проверяет токен. Второй: sendMessage, где поле text принимает от 1 до 4096 символов после разбора разметки, длинный ответ придётся резать на части самому.
Писать запросы руками не нужно. Актуальные версии библиотек на 22 августа 2026 года: aiogram 3.30.0 и python-telegram-bot 22.8 для Python, обе требуют Python 3.10 и выше, pyTelegramBotAPI 4.36.1 как более простой вариант, grammY 1.45.1 и Telegraf 4.16.3 для Node.js. Библиотека закрывает маршрутизацию апдейтов, состояния диалога и повторы при ошибках сети.
Если бот должен отвечать свободным текстом, к этому же коду подключается языковая модель и база знаний компании. Это отдельная работа, она разобрана в статье о том, как собрать чат-бота на нейросети.
Способов получать апдейты ровно два, и они взаимоисключающие: пока установлен вебхук, getUpdates не работает. Непрочитанные апдейты хранятся на сервере Telegram не дольше 24 часов.
Long polling. Бот сам опрашивает сервер методом getUpdates и получает до 100 самых ранних неподтверждённых апдейтов. Подтверждение делается параметром offset: update_id последнего обработанного апдейта плюс единица. Забыли пересчитать offset, получите одни и те же сообщения по кругу. Зато не нужны ни домен, ни сертификат.
Вебхук. Telegram сам шлёт POST-запрос на ваш URL. Требования объясняют большую часть проблем на старте: валидный SSL-сертификат, только порты 443, 80, 88 и 8443, редиректы не обрабатываются, CN сертификата точно совпадает с доменом, wildcard может не приниматься. Параметр max_connections задаёт от 1 до 100 одновременных подключений, по умолчанию 40. От подделки запросов защищает secret_token от 1 до 256 символов, он приходит в заголовке X-Telegram-Bot-Api-Secret-Token.
Нужен бот, который переживёт нагрузку
Соберём Telegram-бота под ваш сценарий: вебхук на своём сервере, интеграция с CRM и оплатой, сопровождение после запуска. Срок и смету называем до старта работ.
Боту нужен процесс, который работает постоянно: закрыли крышку ноутбука, бот замолчал. Минимум это виртуальный сервер с Linux, systemd-юнит или контейнер для автозапуска и мониторинг. Для вебхука добавляются домен и сертификат: HTTP Telegram не принимает.
Второй сценарий: свой сервер Bot API из репозитория telegram-bot-api. Он снимает ограничения облачного: скачивание без лимита по размеру, загрузка до 2000 МБ, для вебхука разрешены HTTP-адрес, любой локальный IP и любой порт, max_webhook_connections до 100 000. Перед переходом нужно вызвать метод logOut, иначе доставка апдейтов не гарантируется.
Ограничения облачного Bot API знайте заранее: бот отправляет файлы до 50 МБ и скачивает через getFile файлы до 20 МБ. Идентификаторы file_id постоянны, поэтому загруженный однажды документ пересылается по идентификатору без повторной заливки.
Диалог держится на четырёх элементах, у каждого свои ограничения в API.
Отдельный формат это Mini App: веб-интерфейс внутри мессенджера, который открывается из кнопки. Оправдан там, где нужны каталог, календарь записи или личный кабинет.
В личном чате бот видит все сообщения. В группе по умолчанию включён режим приватности, и до бота доходят только команды с явным адресом вида /command@this_bot, общие команды вроде /start, если бот писал последним, сообщения, отправленные через него, и ответы на его сообщения. Плюс служебные сообщения и сообщения каналов, где бот состоит.
Режим отключается командой /setprivacy, но изменение сработает только после того, как бота заново добавят в группу. Бот-администратор получает все сообщения независимо от настройки. И правило, о которое спотыкаются при связке двух ботов: бот никогда не видит сообщения других ботов, это защита от циклов.
Следствие для рассылок: бот не пишет человеку первым. Диалог начинает пользователь кнопкой «Начать», и только после этого бот получает право отправлять сообщения в этот чат.
Разделение жёсткое. Цифровые товары и услуги, то есть доступы, подписки, курсы и генерации, продаются только за Telegram Stars с кодом валюты XTR: других валют платформа для цифровых продаж не принимает. Физические товары проводятся через сторонних платёжных провайдеров с токеном от @BotFather.
Порядок оплаты в Stars: sendInvoice с currency XTR и пустым provider_token, апдейт с полем pre_checkout_query, подтверждение методом answerPreCheckoutQuery, апдейт successful_payment и только после него выдача товара. На ответ по pre_checkout_query документация даёт ровно 10 секунд, значит проверку остатка и брони надо укладывать в этот интервал. Идентификатор telegram_payment_charge_id сохраняйте: без него не сделать возврат методом refundStarPayment.
Параметр start_parameter задаёт поведение пересылки: мультичатовый счёт сохраняет кнопку оплаты в копиях и может быть оплачен несколькими людьми, одночатовый превращается в ссылку на бота. Тестировать оплату можно бесплатно в отдельном тестовом окружении Telegram.
Отправка ограничена не объёмом в месяц, а скоростью. Официальные значения: не больше одного сообщения в секунду в один чат, не больше 20 сообщений в минуту в одну группу, не больше примерно 30 сообщений в секунду на массовой рассылке. Короткие всплески иногда проходят, затем начинают возвращаться ошибки 429.
Платные рассылки поднимают потолок до 1000 сообщений в секунду. Каждое сообщение сверх бесплатных 30 в секунду стоит 0,1 Stars с баланса бота, но порог входа высокий: минимум 100 000 Stars на балансе и 100 000 активных пользователей в месяц. Без этих объёмов документация советует растягивать рассылку на 8-12 часов.
Для базы в 50 000 подписчиков это значит: при потолке около 30 сообщений в секунду идеальная отправка займёт примерно 28 минут, с повторами закладывайте час. Как считать эффект от таких сообщений, разобрано в материале о чат-ботах для бизнеса.
Бот ломается не на главном сценарии, а на боковых ветках. Перед раздачей ссылки пройдите проверку по списку.
После запуска смотрите не на число подписчиков, а на долю диалогов, дошедших до целевого действия, и на шаг, где люди отваливаются: обычно это длинное сообщение, непонятная кнопка или ввод данных руками там, где хватило бы списка.
Проверьте за минуту, какой путь ваш
Три ответа в пользу интеграций и своего сервера означают, что конструктор станет ограничением уже на старте.
Регистрация в @BotFather занимает пять минут, эхо-бот на aiogram 3.30.0 собирается за вечер. Сценарий с меню, сбором заявки и отправкой в CRM это от нескольких дней до пары недель по числу интеграций. На конструкторе простая анкета собирается за несколько часов.
Да, если брать конструктор: он держит бота на своей инфраструктуре, вы вставляете токен. При long polling сервер формально не нужен, но процесс должен где-то работать постоянно. Вебхук без сервера невозможен: нужны домен, валидный SSL и порт 443, 80, 88 или 8443.
Скорее всего включён режим приватности, он стоит по умолчанию и обрезает всё, кроме адресных команд и ответов боту. Проверьте два пункта: обращаются ли к боту через /command@this_bot и не остался ли включённым режим после /setprivacy, ведь изменение вступает в силу только после повторного добавления бота в группу. Быстрый обход без отключения режима: выдать боту права администратора, тогда он получает все сообщения.
Цифровые товары и подписки проводятся только через Telegram Stars, валюта XTR, provider_token при этом пустой. Цепочка: sendInvoice, затем pre_checkout_query с ответом в течение 10 секунд, затем successful_payment. Сохраняйте telegram_payment_charge_id, без него возврат через refundStarPayment невозможен.
Это превышение скорости отправки, а не месячной квоты. Лечится очередью на стороне бота: одна отправка за раз с паузой, повтор упавших сообщений с задержкой и растягивание рассылки на 8-12 часов, как советует документация. Если очередь уже стоит, а 429 продолжаются, значит бот шлёт быстрее 30 сообщений в секунду и упирается в бесплатный потолок, снять который можно только платными рассылками.