Хорошие Данные
← Все кейсы·АвтоматизацияPython + aiogram + API «Мой Класс»

Абонементы в детском клубе: ручной обход групп → одна команда

Telegram-бот вместо семи шагов в CRM на каждого ученика

Ключевой результат

Месячная сверка занимает часы вместо дней; ошибка в типе абонемента больше не уходит клиенту

Контекст

Образовательный клуб «Гудвин» — робототехника, программирование, шахматы и другие направления для детей. Часть программ работает по схеме «сначала занятие, потом оплата»: ученик ходит на занятия, а абонемент выставляется постфактум. Учёт ведётся в CRM «Мой Класс».

Проблема

Раз в месяц менеджер обходил все активные группы и по каждому должнику повторял один и тот же путь из семи шагов: открыть группу, найти неоплаченные занятия, создать абонемент нужного типа, выставить дату начала, провести платёж нулевой суммой.

При выставлении CRM сама отправляет уведомление родителю — то есть ошибка в типе абонемента или в дате не остаётся внутренней, она уезжает клиенту.

Подход

Сначала записали ручной сценарий по шагам и согласовали его с заказчиком — до единой строчки кода. Затем разобрали и задокументировали ту часть API CRM, которая нужна для сценария, вместе с её особенностями: там хватает мест, где запрос отвечает успехом и делает не то, что ожидаешь.

Отдельным требованием заложили обязательный предпросмотр: сначала показать план, и только по подтверждению — выполнить.

Реализация

Telegram-бот для операторов клуба. Навигация повторяет привычный веб-интерфейс CRM: курс → группа → месяц. На каждом уровне бот заранее сканирует долги и помечает группы значками — есть долги за закрытые месяцы, есть только за текущий, чисто. Оператор видит, куда идти, не открывая ничего лишнего. Дальше предпросмотр таблицей и одно подтверждение на всю группу. Обновление токена доступа к CRM тоже вынесено в команду бота, чтобы за этим не ходить на сервер.

Дольше всего заняла не отправка, а определение долга: первые две версии логики давали ложные срабатывания — сначала из-за поля, которое CRM не заполняет, если абонемент создан после посещения, потом из-за бывших учеников, попадавших в выборку. Правильной оказалась третья. Ловилось это на предпросмотре, до того как что-то ушло людям.

Метрики до / после

ПоказательДоПосле
Выставление абонементов за месяц1–2 дня1–2 часа
Шагов в CRM на одного должника70, одно подтверждение на группу
Поиск должниковручной обход всех группавтоматический скан с пометками
Обновление доступа к CRMвход на серверкоманда в боте

Можно ли повторить в вашем случае?

Напишите — разберём вашу задачу бесплатно и скажем, что реально сделать.