Как я сделал школьного бота в Telegram — и почему проект всё
В одной из московских школ мы сделали Telegram-бота, который автоматизировал «операционку»: согласия на мероприятия, запись на кружки, заявки в хозчасть/ИТ, массовые оповещения, анонимный канал психолога и контур директора с согласованиями и дашбордами. Я старался максимально упростить сложную и разрозненную модель управления. Проект реально сработал, но его пришлось закрыть: с 2025/26 учебного года все школьные коммуникации перевели в национальный мессенджер «Макс» (MAX), а Telegram оказался «под запретом». МЭШ, Сферум и наш бот: кто за что отвечает МЭШ (Московская электронная школа) отлично работает с расписанием и оценками, но не заточен под операционные процессы. Сферум позиционировался как «безопасная альтернатива WhatsApp», но по сути просто чат без автоматизации. Наш бот в Telegram был надстройкой над повседневной школьной деятельностью и решал задачи, которых не было ни в МЭШ, ни в Сферуме. Какие задачи решал бот: • Мероприятия и экскурсии — карточка события, согласия родителей кнопкой «Да/Нет», выгрузки списков • Кружки и секции — запись с квотой мест, учёт посещаемости, напоминания о пропусках • Заявки в хозчасть/ИТ — тикет-система с приоритетами, статусами и SLA • Шаблоны и напоминания — «Ознакомлен/Приду», отчёт «кто не ответил» • Анонимная линия психолога — чат без раскрытия личности ученика • Контур директора и администрации школы — согласования (выезды, закупки), дашборды по заявкам/ответам, экстренные рассылки, аудит Архитектура и стек: Основа: Python 3.11 + aiogram 3.x, PostgreSQL 15, Redis 7.x, APScheduler 3.x Инфраструктура: Docker + Docker Compose, Nginx (reverse proxy), Prometheus + Grafana, Loki (логи) Интеграции: Google Sheets API, Telegram Bot API Роли: student, parent, teacher, admin, psychologist, director. Вход только по инвайт-коду. Производительность: Одна школа, около 600 пользователей. Массовые рассылки по 500+ адресатам проходили за 40–60 секунд. Пиковые нагрузки — утром при рассылке уведомлений: до 50 RPS. Мониторинг: Prometheus + Grafana для внутренних метрик, логирование в JSON с парсингом через Loki. Метрики: среднее время отклика 180–250 мс, процент доставки сообщений около 98%. Резервное копирование — ежедневные дампы PostgreSQL в облако (зашифрованы). Redis — не критичен, данные восстанавливались из основной базы. Конкретные метрики эффекта (до бота → после): • Время сбора согласий: 2–3 дня → 4–6 часов • Доля ответивших родителей: 60% → 85% • Время решения IT-заявок: 5 дней → 2 дня (среднее) • Отображение задач в реальном времени со статусами исполнения Проблемы и их решения: Спам и флуд — ограничение на количество сообщений в минуту, использование inline-кнопок вместо текстовых «Да/Нет» для снижения шума, антидублирование через Redis-ключи. Onboarding — печатные инструкции с QR-кодом для родителей, мини-воркшопы для учителей «3 кнопки, которые вам нужны», роль «админ класса» для помощи коллегам с установкой. Изменения регламентов — гибкая модель согласований через матрицы в базе данных, возможность добавлять новые категории тикетов без перекомпиляции, настройка SLA по требованиям директора. Альтернативы и миграция: Когда стало ясно, что Telegram уходит, в качестве замены рассматривался Сферум, но у него отсутствует API и нет возможности встроить сторонние боты. Рассматривались также ВКонтакте (есть API, но хуже adoption родителей) и MAX (куда ушёл Сферум, но API закрыт, миграция невозможна). Что спасли: бизнес-логику — согласия, тикеты, отчётность. Что потеряли: транспорт (Telegram и его удобство). Почему закрыли: С сентября 2025 года все школы обязаны переводить коммуникации в «Макс», интегрированный с «Сферумом». Telegram запрещён, API у Макса и Сферума отсутствует, поэтому перенести бота напрямую невозможно. Выводы: Бот решал задачи, отсутствовавшие в МЭШ и Сферуме. Открытые API — ключ к инновациям. Telegram позволял создавать рабочие инструменты, которые Сферум и Макс пока обеспечить не могут. В EdTech в России продукт может прекратить существование не из-за отсутствия спроса, а из-за регуляторных изменений