Содержание
Telegram — самый удобный канал для бизнес-ботов в России. 90 миллионов пользователей, мощный API, бесплатный хостинг логики на вашем сервере. Боты обрабатывают заявки, отвечают на вопросы, принимают заказы и уведомляют сотрудников — круглосуточно, без выходных.
1. Зачем бизнесу Telegram-бот
Telegram-боты решают реальные бизнес-задачи:
- Приём заявок — клиент пишет боту, бот создаёт сделку в CRM и уведомляет менеджера
- Поддержка клиентов — бот отвечает на типовые вопросы 24/7, сложные передаёт оператору
- Уведомления сотрудников — алерты из систем мониторинга, новые заказы, дедлайны
- Запись и бронирование — клиент выбирает время, бот записывает и напоминает
- Внутренние инструменты — HR-боты, боты для склада, отчёты по команде
2. Создание бота у @BotFather
Все боты в Telegram создаются через официального бота @BotFather. Это занимает 2 минуты:
- Откройте Telegram и найдите @BotFather
- Отправьте команду
/newbot - Введите имя бота (например: «Поддержка Гиперсайт»)
- Введите username бота — должен заканчиваться на
bot(например:gipersite_support_bot) - Скопируйте токен — строка вида
7234567890:AAF...
3. Первый бот на aiogram 3
Aiogram — лучшая Python-библиотека для Telegram-ботов. Версия 3 использует asyncio и значительно быстрее предыдущих версий.
# pip install aiogram python-dotenv import asyncio from aiogram import Bot, Dispatcher, F from aiogram.types import Message from aiogram.filters import CommandStart, Command # Токен из переменной окружения import os TOKEN = os.getenv('BOT_TOKEN') bot = Bot(token=TOKEN) dp = Dispatcher() # Обработчик команды /start @dp.message(CommandStart()) async def cmd_start(message: Message): await message.answer( f'Привет, {message.from_user.first_name}!\n\n' 'Я бот компании Гиперсайт. Чем могу помочь?\n\n' '📋 /help — список команд\n' '📞 /contact — оставить заявку' ) # Обработчик команды /help @dp.message(Command('help')) async def cmd_help(message: Message): await message.answer( 'Доступные команды:\n\n' '/start — начало работы\n' '/contact — оставить заявку\n' '/prices — прайс-лист' ) # Обработчик текстовых сообщений @dp.message(F.text) async def handle_text(message: Message): await message.answer( 'Спасибо за сообщение! Менеджер ответит в течение 15 минут.\n' 'Или позвоните: +7 (922) 290-23-72' ) async def main(): await dp.start_polling(bot) if __name__ == '__main__': asyncio.run(main())
4. Кнопки и меню
Кнопки делают бота удобным — пользователь не печатает команды, а нажимает нужное. В Telegram есть два типа кнопок: Reply-кнопки (под полем ввода) и Inline-кнопки (под сообщением).
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton # Reply-кнопки (отображаются как клавиатура) main_keyboard = ReplyKeyboardMarkup( keyboard=[ [KeyboardButton(text='📋 Оставить заявку'), KeyboardButton(text='💰 Прайс')], [KeyboardButton(text='📞 Связаться с менеджером')], ], resize_keyboard=True ) # Inline-кнопки (под сообщением) inline_kb = InlineKeyboardMarkup(inline_keyboard=[ [ InlineKeyboardButton(text='🐍 Python-автоматизация', callback_data='service_python'), InlineKeyboardButton(text='🤖 Боты', callback_data='service_bots'), ], [InlineKeyboardButton(text='📊 ETL и данные', callback_data='service_etl')], ]) @dp.message(CommandStart()) async def cmd_start(message: Message): await message.answer( 'Привет! Выберите что вас интересует:', reply_markup=inline_kb ) # Обработчик нажатия Inline-кнопки @dp.callback_query(F.data == 'service_python') async def service_python(callback): await callback.message.answer( 'Python-автоматизация от 15 000 ₽\n\n' 'Подробнее: https://gipersite.ru/python-automation/' ) await callback.answer()
5. Сбор данных от пользователя
Для сбора данных (имя, телефон, описание задачи) используем FSM — Finite State Machine. Бот ведёт пользователя по шагам.
from aiogram.fsm.context import FSMContext from aiogram.fsm.state import State, StatesGroup # Описываем состояния формы class LeadForm(StatesGroup): name = State() phone = State() task = State() @dp.message(Command('contact')) async def start_form(message: Message, state: FSMContext): await state.set_state(LeadForm.name) await message.answer('Как вас зовут?') @dp.message(LeadForm.name) async def get_name(message: Message, state: FSMContext): await state.update_data(name=message.text) await state.set_state(LeadForm.phone) await message.answer('Укажите номер телефона:') @dp.message(LeadForm.phone) async def get_phone(message: Message, state: FSMContext): await state.update_data(phone=message.text) await state.set_state(LeadForm.task) await message.answer('Опишите вашу задачу:') @dp.message(LeadForm.task) async def get_task(message: Message, state: FSMContext): data = await state.get_data() await state.clear() # Сохраняем заявку (следующий шаг — отправка в CRM) await message.answer( f'Спасибо, {data["name"]}! Заявка принята.\n' 'Перезвоним в течение 15 минут.' )
6. Интеграция с CRM
Когда пользователь заполнил форму — создаём сделку в amoCRM через API:
import aiohttp async def create_amocrm_lead(name: str, phone: str, task: str): headers = { 'Authorization': f'Bearer {AMO_TOKEN}', 'Content-Type': 'application/json' } payload = [{ 'name': f'Заявка от {name}', '_embedded': { 'contacts': [{ 'name': name, 'custom_fields_values': [{ 'field_code': 'PHONE', 'values': [{'value': phone}] }] }] }, 'custom_fields_values': [{ 'field_id': NOTE_FIELD_ID, 'values': [{'value': task}] }] }] async with aiohttp.ClientSession() as session: async with session.post( f'https://{AMO_DOMAIN}/api/v4/leads/complex', json=payload, headers=headers ) as resp: return await resp.json()
7. Деплой на сервер
Бот должен работать постоянно — значит нужен сервер. Минимальный VPS стоит 300–500 ₽/мес и справляется с тысячами пользователей.
# Создаём systemd-сервис для автозапуска # /etc/systemd/system/tg-bot.service [Unit] Description=Telegram Bot After=network.target [Service] Type=simple User=ubuntu WorkingDirectory=/home/ubuntu/bot EnvironmentFile=/home/ubuntu/bot/.env ExecStart=/home/ubuntu/bot/venv/bin/python main.py Restart=always RestartSec=10 [Install] WantedBy=multi-user.target
# Активируем и запускаем sudo systemctl daemon-reload sudo systemctl enable tg-bot sudo systemctl start tg-bot # Проверяем статус sudo systemctl status tg-bot # Логи в реальном времени sudo journalctl -u tg-bot -f
Нужен Telegram-бот для бизнеса?
Разрабатываем ботов под ключ: от простых уведомлений до ИИ-ассистентов с GPT-4. От 20 000 ₽, срок от 1 недели.
Обсудить проект