От Telegram-бота к web-приложению: как я перестал бороться с Excel и начал строить систему
Привет! Меня зовут Денис, я работаю аналитиком потерь на складе. В какой-то момент я устал от постоянной работы с Excel-выгрузками и решил это автоматизировать.
В итоге всё началось с простого Telegram-бота, а закончилось полноценным web-приложением с отдельным backend, интеграциями и нормальным интерфейсом.
Сегодня хочу рассказать про сам путь: как из “скрипта под задачу” постепенно вырастает система.
Как всё начиналось
Изначально задача выглядела довольно типично: есть несколько Excel‑файлов, которые нужно регулярно обрабатывать, объединять и приводить к какому-то осмысленному виду.
Процесс был утомительный и плохо масштабировался.
В какой-то момент я понял: я работаю не аналитиком, а интерфейсом между Excel-файлами.
Яприкинул: на такие операции уходит около 5 часов в день — это примерно 150 часов в месяц.
Если перевести это в деньги (пусть даже условные 500 ₽/час), получается около 75 000 ₽ в месяц на чистую рутину.
Поэтому я сделал максимально простой MVP — Telegram‑бота на Python, который принимает файлы и возвращает готовый результат.
Это было быстрое и довольно удачное решение. Не нужно было делать интерфейс, пользователи уже в Telegram, а вся логика оставалась у меня под контролем.
Но довольно быстро начали проявляться ограничения.
Почему Telegram перестал быть достаточным
Проблема оказалась не в боте как таковом, а в том, что он стал выполнять роль, для которой изначально не предназначен.
Когда логика усложнилась, стало заметно:
файлы начали упираться в лимиты (20 МБ для telegram)
процесс обработки стал «чёрным ящиком»
не хватало нормального интерфейса
стало сложнее развивать функциональность
Постоянные проблемы с доступом в РФ. (спасибо РКН)
В какой‑то момент стало понятно, что Telegram — это отличный вход, но плохое ядро системы.
Именно тогда я начал выносить логику наружу.
Переход к web-приложению
Я не переписывал всё с нуля. Скорее, постепенно «вытаскивал» ответственность из бота в отдельный backend.
Telegram остался как интерфейс, но теперь он просто отправляет задачи в систему.
Появился web‑интерфейс, через который можно:
загружать файлы
видеть статус обработки
управлять процессом
И вот здесь проект впервые начал ощущаться как система, а не как скрипт.
Архитектура

Если описать словами, то получилось разделение на несколько уровней:
backend занимается всей обработкой данных и бизнес‑логикой,
web‑часть отвечает за взаимодействие с пользователем,
а интеграции (Google Sheets, Яндекс.Диск) закрывают вопросы хранения и передачи данных.
Важно, что Telegram теперь — просто один из клиентов системы.
Это сильно упростило развитие: можно менять интерфейс, не трогая логику, и наоборот.
Предвидя вопросы в плане «зачем так усложнять, почему бы просто не подключиться напрямую к БД??» отвечаю: — Это невозможно из‑за политики компании. Для такой автоматизации нужен доступ к Proxy, через который можно читать БД. А получить его в моей текущей должности нет возможности.
Отдельно про большие файлы
Один из переломных моментов — работа с ограничениями Telegram.
Когда файлы перестали помещаться, я добавил интеграцию с Яндекс.Диском через OAuth. Вместо отправки файла бот принимает ссылку, backend скачивает данные и обрабатывает их уже без ограничений платформы.
На практике это оказалось намного стабильнее и даже быстрее.
UX, о котором обычно забывают
Когда делаешь «внутренний инструмент», есть соблазн не думать об интерфейсе вообще.
Я тоже сначала так делал.
Но после появления web‑части стало очевидно, что даже простые вещи сильно влияют на восприятие:
индикатор обработки, понятные кнопки, адекватное поведение на мобильных устройствах.
Это не про «красоту», а про то, насколько системой вообще хочется пользоваться каждый день.
Среда разработки: неожиданный поворот
Отдельно хочу рассказать про то, как я всё это разрабатывал.
Раньше я писал в PyCharm, и в целом это до сих пор отличный инструмент, особенно когда нужно копаться в данных, дебажить и что‑то исследовать.
Но в процессе этого проекта я перешёл на Cursor — редактор с встроенными AI‑агентами.
И это сильно поменяло процесс разработки.
Часть задач я просто перестал делать руками:
генерация boilerplate‑кода
простые рефакторинги
обвязка для новых фич
Агентам удобно делегировать именно такие вещи, и это ускоряет разработку.
При этом есть нюанс: для ресёрча данных и глубокого анализа PyCharm по ощущениям всё ещё удобнее. Cursor больше раскрывается именно в разработке архитектуры и web‑части.
Сейчас это выглядит как гибридный подход:
что‑то делается через агентов, что‑то — вручную, в более «классической» среде.
Думаю дальше попробовать Claude Code и n8n (там можно в логику обработку данных добавлять ИИ) как альтернативу — интересно сравнить подходы.
Что в итоге получилось
Если оглянуться назад, проект прошёл довольно типичный путь:
сначала это был простой инструмент «под задачу»,
потом он начал обрастать логикой,
а затем пришлось задуматься об архитектуре.
Результат: сэкономленные 150ч в месяц команды аналитиков.
Ключевой сдвиг произошёл в момент, когда Telegram перестал быть центром системы.
После этого стало возможным нормально развивать продукт: добавлять интерфейсы, интеграции и новые сценарии без ощущения, что всё сейчас сломается.
Что я из этого вынес
Главное — не пытаться сразу строить идеальную архитектуру.
Рабочий путь оказался таким: сначала быстрое решение, потом постепенное выделение ответственности и только потом — осознанная структура.
И ещё один важный момент — инструменты разработки реально влияют на скорость и подход. Переход к AI‑агентам оказался не хайпом, а вполне практичной историей.
Что дальше
Сейчас хочется двигаться в сторону:
добавления аналитики поверх данных,
BI‑аналитика в web,
docker.
Если интересно, могу потом отдельно рассказать про деплой, инфраструктуру или внутреннюю логику обработки данных.
Интересно ли будет разобрать архитектуру проекта подробнее — с кодом, схемами и решениями, которые я принимал по ходу разработки?
Полезные ссылки и стек
Проект в открытом доступе:
GitHub: https://github.com/Anniegard/bot‑mont‑shk
Web‑версия приложения:
https://anniland.ru/
Предыдущая статья (с чего всё начиналось):
https://habr.com/ru/articles/1007960/
Текущий стек проекта:
Python (backend), pandas (обработка данных), Telegram Bot API, Google Sheets API, OAuth (Яндекс.Диск), web‑интерфейс (frontend + API‑слой)
Комментарии (6)

Sanekl9
31.03.2026 18:05братан открой для себя макросы в excel

Anniegard Автор
31.03.2026 18:05Макросы полезны когда ты написал его для себя и пользуешься. Тут речь о продукте, которым пользуется целая команда.

Ravenkey
31.03.2026 18:05Связка Эксель + ИИ, который пишет макросы под конкретную задачу для личного использования оказалась крайне рабочей темой. Уже год пользуюсь. От ручной обработки уйти не вышло. На стадии пресейл, когда от поставщиков прилетают миллион разных КП, одно страшней другого, с только понятной им логикой, без ручной предварительной обработки не обойтись. Так за каких-то 4 часа родились основные макросы, которые за оставшиеся 4 часа сделали то, на что в соседней команде ушло полторы недели. Дольше времени потратил на открывание файлов и понимание, что тут применить или что дописать в макрос чтобы он автоматом понимал и такой образец очередного гениального творения. Берешь скриншот чего нибудь и говоришь ИИ нужен макрос который вот такое сделает вот таким. Ну и небольшой кусок логики. Можно даже просто надиктовать.

Anniegard Автор
31.03.2026 18:05Попробуй power query использовать в своих задач. Насколько я его понял там можно автоматизировать процесс обработки, соединения, проверки и визуализации данных.
У меня особо проблем с данными не было т.к. в компании есть понятные отчеты, которые сильно стандартизированы. Но для упрощения работы с ними пришлось придумывать такую систему.
delaf
Братан открой для себя openclaw
Anniegard Автор
Пользоваться chatGPT, пользоваться codex, пользоваться cursor, пользоваться openclaw, пользоваться cloudecode. Чуть ли не каждый месяц выходит новый ИИ инструмент, который в чем-то хорошо, в чем-то плох.
Юзать всё и сразу конечно хорошо, но есть нюансы: стоимость, настройка системы под себя (то есть время).
Через пол года выйдет новый инструмент который будет лучше openclaw, и что дальше?