Telegram-боты для автоматизации продаж: создание, развёртывание и масштабирование
Техническое руководство по созданию Telegram-ботов для B2B-продаж: архитектура, обработка сообщений, интеграция с CRM, масштабирование.
Telegram-боты для автоматизации продаж: создание, развёртывание и масштабирование
Telegram-боты автоматизируют разговоры в масштабе. Хорошо построенный бот обрабатывает 80% продажных взаимодействий, освобождая менеджеров для закрытия сделок. Это руководство описывает архитектуру, реализацию и масштабирование.
Архитектура бота
Компоненты
Telegram Bot API
↓
Маршрутизатор сообщений
↓
┌─────────────────┐
│ Реестр обработчиков │
├─────────────────┤
│ Обработчик команд │ /start, /help, /pricing
│ Обработчик сообщений│ Свободный текст
│ Обработчик callback │ Inline-клавиатуры
│ Обработчик медиа │ Фото, документы
└─────────────────┘
↓
┌─────────────────┐
│ Бизнес-логика │
├─────────────────┤
│ Квалификатор │ BANT-скоринг
│ Генератор ответов│ AI или шаблоны
│ Синхронизация CRM│ Создание/обновление лида
│ Аналитика │ Трекинг событий
└─────────────────┘
↓
Telegram Bot API (отправка сообщения)
Стек технологий
| Компонент | Рекомендация |
|---|---|
| Язык | Python (Telethon) |
| Фреймворк | Telethon |
| База данных | PostgreSQL + Redis |
| AI | OpenRouter |
| Развёртывание | Docker на VPS |
Реализация
Базовая настройка бота
from telethon import TelegramClient, events
bot = TelegramClient('bot', api_id, api_hash)
@bot.on(events.NewMessage(pattern='/start'))
async def handle_start(event):
await event.respond(
"Добро пожаловать! Я могу помочь с:\n"
"1. Демо продукта\n"
"2. Информация о ценах\n"
"3. Технические вопросы\n\n"
"Что вас интересует?"
)
Классификация сообщений
async def classify_message(text):
text_lower = text.lower()
if any(kw in text_lower for kw in ['цена', 'pricing', 'стоимость']):
return 'pricing'
if any(kw in text_lower for kw in ['демо', 'demo', 'показать']):
return 'demo'
if any(kw in text_lower for kw in ['проблема', 'ошибка', 'help']):
return 'support'
return await ai_classify(text)
Квалификация лида
async def qualify_lead(conversation_history):
score = 0
signals = []
for message in conversation_history:
text = message.text.lower()
if any(w in text for w in ['бюджет', 'budget', 'цена']):
score += 30
signals.append('budget')
if any(w in text for w in ['решаю', 'команда']):
score += 25
signals.append('authority')
if any(w in text for w in ['нужно', 'проблема', 'ищу']):
score += 30
signals.append('need')
if any(w in text for w in ['сейчас', 'скоро', 'квартал']):
score += 15
signals.append('timeline')
return {'score': min(score, 100), 'qualified': score >= 70, 'signals': signals}
Масштабирование
Вертикальное
| Ресурс | 1K пользователей | 10K | 100K |
|---|---|---|---|
| CPU | 2 ядра | 4 | 8 |
| RAM | 2GB | 4GB | 8GB |
| БД | 10GB | 50GB | 200GB |
Горизонтальное
Для 10K+ одновременных пользователей:
- Очередь сообщений: Redis/RabbitMQ для буферизации
- Пул воркеров: Несколько экземпляров бота
- Пул соединений БД: PgBouncer
- Балансировщик нагрузки
Лимиты Telegram
- 30 сообщений в секунду разным пользователям
- 20 сообщений в минуту в одну группу
- 1 сообщение в секунду одному пользователю
Заключение
Telegram-боты автоматизируют повторяемое в продажах: начальный ответ, квалификация, планирование, follow-up. Строить на Telethon, интегрировать с CRM, разворачивать на Docker и масштабировать через очереди сообщений. Бот обрабатывает 80% взаимодействий; команда закрывает 20%, которые решают.