Игорь ЗагоняйлоSEO Team Lead
Владислав ПанасюкFounder, CEO
Как создать бота в Телеграм: пошаговая инструкция
Разобраться, как создать бота в Телеграм, можно за несколько минут: регистрация бесплатна, но отвечать людям он начнет только после того, как к нему подключат сценарий в конструкторе или код. Простой сценарий для заявок и частых вопросов собирают за вечер без разработчика, а оплату, базу клиентов и ответы нейросети пишут программисты. Ниже по шагам: регистрация, два способа научить его отвечать, запуск и проверка.
Что такое бот и что он умеет
Чат-бот - это программа, которая ведет диалог с человеком в мессенджере по заранее заданному сценарию или по коду. Он принимает нажатия кнопок и команды, сохраняет ответы и передает их менеджеру, в таблицу или в учетную систему. Для малого бизнеса это обычно пять задач:
- заявки и запись в нерабочее время: человек выбирает услугу и день, а менеджер утром получает готовую заявку с именем и телефоном;
- ответы на частые вопросы кнопками: цены, адреса, график работы, условия доставки и возврата;
- статус заказа по номеру без звонка в магазин, а с чего начинается автоматизация процессов в интернет-магазине, мы разбирали отдельно;
- рассылки пользователям, которые сами открыли диалог: акции, напоминания о записи, новости; без платного режима мессенджер разрешает отправлять около 30 сообщений в секунду, поэтому большую базу обходят частями;
- контакты из рекламы: реклама в Telegram ведет человека сразу в диалог, где он делится номером телефона одной кнопкой.
Главное ограничение в том, что написать первым бот не может. Человек сам находит его через поиск или открывает ссылку t.me и нажимает «Запустить». Поэтому ссылку на него ставят в рекламу, на сайт, в подпись письма и на визитку.
Регистрация в BotFather
BotFather - это официальный бот мессенджера, через который регистрируют и настраивают все остальные. С него начинается любой бот, и этот шаг одинаковый для сервиса без кода и для программы. С телефона все выглядит так же, как на компьютере, а команды ему можно напечатать или выбрать из списка.
Шаги регистрации
- Найдите @BotFather через поиск в мессенджере. У настоящего BotFather рядом с именем стоит синяя галочка, а аккаунты с похожими названиями без нее пропускайте. Откройте именно этот чат, а не канал с похожим названием.
- Нажмите «Запустить» внизу экрана. В ответ придет список команд с короткими пояснениями, с ними дальше и работают. Если чат открывали раньше, просто отправьте /start.
- Отправьте команду
/newbotили нажмите на нее в этом списке. BotFather по очереди спросит имя и юзернейм, отвечать нужно обычными сообщениями в тот же чат. - Введите имя, которое пользователи увидят в списке чатов, в шапке диалога и в профиле. Обычно это название компании или услуги, и его можно поменять позже командой
/setname. - Придумайте юзернейм длиной от 5 до 32 символов: латинские буквы, цифры и нижнее подчеркивание, в конце обязательно bot, например
dental_kyiv_botилиDentalKyivBot. По нему вас находят в поиске и по ссылке, и, в отличие от имени, изменить его потом нельзя. Регистр букв не важен: DentalKyivBot и dentalkyivbot считаются одним юзернеймом. - Занятый юзернейм заменяют другим: добавьте город, вид услуги или сократите название компании. Он должен быть уникальным во всем мессенджере, поэтому короткие слова обычно заняты.
- Получите ответ со ссылкой вида t.me/юзернейм и токеном. Сохраните сообщение или скопируйте ключ в менеджер паролей, а ссылку откройте: чат уже существует, но пока молчит.
Ненужного бота удаляет команда /deletebot, она же освобождает юзернейм. Отменить удаление нельзя, поэтому на рабочем боте ее не трогают.
Токен: где найти и как хранить
Токен - это ключ доступа, по которому сервис или программа управляет ботом через Bot API. Выглядит он как строка из цифр, двоеточия и латинских букв, в документации пример такой: 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw. Любой, у кого есть этот ключ, может управлять вашим ботом.
Вернуться к настройкам позже можно командой /mybots, где после выбора бота откроется меню управления. Если ключ потеряли или он попал к посторонним, его заменяют командой /token: она выпускает новый токен, и программа со старым перестает работать. Ключ не вставляют в код, который выкладывают на GitHub, и не пересылают в общих чатах с подрядчиками. Хранят его в менеджере паролей, а на сервере в переменной окружения, как в примере кода ниже.
Имя, описание и меню команд
| Команда | Что задает | Где это видит пользователь |
|---|---|---|
| /setname | Имя, обычно название компании или услуги | В списке чатов, в профиле и в шапке диалога |
| /setuserpic | Фото профиля, чаще всего логотип | Рядом с именем в списке чатов и в профиле |
| /setdescription | Описание до 512 символов: что умеет и чем полезен клиенту | В пустом чате до нажатия «Запустить» |
| /setabouttext | Короткий текст до 120 символов о назначении | В профиле и в сообщении, когда ссылку на профиль пересылают |
| /setcommands | Список команд с короткими описаниями, например /price и /contacts | В подсказках после символа / и в кнопке меню у поля ввода |
Меню команд - это подсказка, о чем спрашивать, поэтому человек не гадает, что написать в первом сообщении.
Как научить бота отвечать
Научить бота отвечать можно сценарием в конструкторе или кодом: после BotFather у вас есть только оболочка и токен. От этого выбора зависит, что бот сможет делать и сколько он будет стоить в работе. Один бот управляется только одной системой, и при подключении к новому сервису прежний сценарий перестает работать.
| Способ | Кому подходит | Что нужно | На что уйдут деньги |
|---|---|---|---|
| Конструктор сценариев | Владельцу бизнеса без программиста, которому нужны заявки, запись, ответы на частые вопросы и рассылки | Ключ доступа и вечер на сборку диалога из блоков | Платный тариф сервиса после пробного периода |
| Свой код | Тем, кто сам пишет на Python или Node.js и хочет свою логику | Библиотека, сервер и навыки программирования | Сервер, который работает круглосуточно |
| Разработка под задачу | Бизнесу, которому нужны оплата, база данных, связь с CRM или ответы ИИ | Техническое задание и команда разработчиков | Работа разработчиков, сервер и поддержка |
Для заявок и записи без программиста хватит первой строки таблицы. Вторая и третья нужны, когда ответ зависит от данных: наличия на складе, статуса оплаты, истории покупок клиента. Ради простого меню заявок код обычно не пишут, потому что сервис без кода закрывает такую задачу быстрее и без своего сервера.
Через конструктор
Как настроить чат-бот в Телеграм без кода: токен вставляют в настройки сервиса, а диалог собирают из блоков в визуальном редакторе. Без программиста это работает, если идти по порядку:
- Одна задача на старт, например запись на консультацию или ответы на частые вопросы. Остальное добавляют, когда первая ветка уже работает.
- Структура диалога на бумаге: приветствие, выбор услуги, уточнение, контакт, подтверждение заявки. Каждый шаг пишут одним коротким сообщением с вариантами ответа.
- Кнопки и меню вместо свободного текста. Человек нажимает «Записаться» и не пишет «хочу к вам», а сценарий не ломается на фразах, которых в нем нет.
- Выход на менеджера с первого экрана: кнопка «Связаться с человеком» нужна тем, чей вопрос не попал в список, иначе они уходят из чата без ответа.
- Куда уходит заявка: в чат менеджеру, на почту, в таблицу или в CRM. Когда заявок становится много, а учет ведется в блокноте, за этим обычно следует разработка CRM-системы, и сервис начинает отправлять их уже туда.
- Проверка в мессенджере: подпишитесь на своего бота с личного аккаунта, и сервис добавит вас в подписчики. Пройдите каждую ветку сами; если правка не появилась в чате сразу, перезапустите диалог. Откройте сценарий и с телефона, и с компьютера.
SendPulse и HelpCrunch, которые работают в Украине, устроены именно так. В обоих бота подключают в настройках каналов и собирают цепочки сообщений с кнопками. Подробная инструкция по подключению есть в справке каждого сервиса и обновляется вместе с его интерфейсом.
Простой бот на Python
Создание Телеграм-бота с нуля на коде начинается с библиотеки, которая берет на себя работу с Bot API. Для Python есть aiogram 3.x и python-telegram-bot версии 20 и новее, для Node.js есть node-telegram-bot-api. Старые примеры с Updater и Dispatcher для второй библиотеки уже не запустятся, потому что с версии 20 Dispatcher заменили классом Application, а Updater перестал быть точкой входа программы.
Пример ниже написан на aiogram 3.x по образцу из официальной документации. Он отвечает на /start и повторяет любой текст, а ключ доступа берет из переменной окружения BOT_TOKEN, поэтому в самом файле его нет. Без этой переменной программа остановится с ошибкой сразу при запуске. Нужен Python от 3.10 до 3.14. Сохраните код в файл bot.py и в той же папке создайте виртуальное окружение: на macOS и Linux командами python3 -m venv .venv и source .venv/bin/activate, в Windows командами py -m venv .venv и .venv\Scripts\activate. Без него Ubuntu 24.04 и Debian 12 отказываются ставить библиотеку с ошибкой externally-managed-environment. Дальше установите библиотеку командой pip install aiogram и задайте ключ: export BOT_TOKEN=... на macOS и Linux или $env:BOT_TOKEN="..." в PowerShell на Windows. Запускают бота командой python bot.py, в Windows py bot.py.
import asyncio
from os import getenv
from aiogram import Bot, Dispatcher, F
from aiogram.filters import CommandStart
from aiogram.types import Message
dp = Dispatcher()
@dp.message(CommandStart())
async def start(message: Message):
await message.answer("Здравствуйте! Напишите что-нибудь, и я повторю.")
@dp.message(F.text)
async def echo(message: Message):
await message.answer(message.text)
async def main():
await dp.start_polling(Bot(token=getenv("BOT_TOKEN")))
asyncio.run(main())Первый обработчик с фильтром CommandStart срабатывает на /start и здоровается. Второй, с фильтром F.text, получает любое текстовое сообщение и отправляет его обратно. Функция start_polling запускает постоянный опрос: программа сама забирает новые сообщения, пока открыт терминал, а остановить ее можно сочетанием Ctrl+C. Новую логику удобнее проверять на втором, тестовом боте с отдельным ключом, чтобы не мешать живым клиентам.
Кнопки бывают двух видов. Inline-кнопки стоят прямо под сообщением, их нажатие не создает новых сообщений в чате и запускает действие, открывает ссылку или форму оплаты. Их ставят там, где пользователь выбирает внутри шага, листает каталог или подтверждает заказ. Клавиатура ответов заменяет обычную клавиатуру телефона готовыми вариантами, и нажатие отправляет текст кнопки как сообщение. Ее берут для главного меню и для запроса номера телефона, а после выбора скрывают параметром one_time_keyboard.
Запуск на сервере и проверка
Бот на коде отвечает, пока запущена программа: закрыли ноутбук, и диалог замолчал. Поэтому код ставят на сервер, который работает круглосуточно. Сообщения программа получает одним из двух способов. Она либо сама регулярно запрашивает их методом getUpdates, либо принимает на свой адрес через вебхук с SSL-сертификатом на порту 443, 80, 88 или 8443, причем одновременно оба способа не работают. Перед тем как давать ссылку клиентам, проверьте шесть вещей:
- Сценарий включен: сохраненный черновик людям не отвечает, его нужно опубликовать.
- Каждая кнопка ведет на следующий шаг: нажмите все сами, включая «Назад», и найдите тупики.
- На свободный вопрос есть выход на человека: напишите что-нибудь вне сценария, например с опечаткой, и посмотрите ответ.
- В группе без прав администратора бот видит только команды для себя, ответы на свои сообщения и служебные сообщения. Чтобы получать остальное, отключите режим приватности командой
/setprivacyи добавьте его в группу заново. - Ключ доступа нигде не опубликован: проверьте репозиторий, общие чаты и документы подрядчиков.
- Тестовая заявка дошла: оставьте ее сами и найдите в чате менеджера, на почте или в учетной системе. Если в ней нет телефона или она ушла не туда, сценарий правят до запуска рекламы.
Для бота с оплатой, базой клиентов или ответами ИИ сценария уже мало: такую программу пишут под ваш процесс, и это уже разработка Telegram-бота на заказ.
Частые вопросы
Как запустить бота в Telegram?
Подключите токен к сервису без кода или запустите с ним программу на сервере и включите сценарий. Затем откройте ссылку t.me/юзернейм и нажмите «Запустить»: пришло приветствие, все работает, а когда ответа нет, проверьте, опубликован ли сценарий и верно ли скопирован ключ.
Можно ли сделать бота с телефона?
Да. В мобильном приложении шаги те же, что и на компьютере, а ключ доступа удобно скопировать долгим нажатием на сообщение. Сценарий удобнее собирать в сервисе без кода через браузер на компьютере, а код с телефона не пишут.
Сколько стоит бот в Телеграм?
Создать чат-бота в Телеграм бесплатно можно: регистрация ничего не стоит, а у части сервисов без кода есть стартовый план без оплаты. Платить приходится за тариф сервиса после пробного периода, за сервер для программы на коде и за работу разработчика, если сценарий сложный. Цены тарифов сервисов меняются, поэтому сверяйте их на сайте сервиса в день выбора. Разработка бота под задачу у нас начинается от 800 €.
Можно ли принимать оплату в боте?
Да. Физические товары и услуги оплачивают через платежный API мессенджера. Провайдера подключают в /mybots, раздел Bot Settings, затем Payments, и там же видно, какие провайдеры доступны. Комиссию мессенджер не берет, у провайдера она своя. Для проверки есть тестовый режим без списания денег. Цифровые товары и услуги продают только за Telegram Stars.
