Подхват проекта — Telegram-бот

Подхват Telegram-бота от другого подрядчика

Заберём Telegram-бота, Mini App или внутреннего бота у предыдущей команды. Начинаем с аудита кода, Bot API, webhook, базы данных, очередей, оплат, интеграций, админки и серверных доступов. Дальше — стабилизация, поддержка или развитие по согласованной модели.

  • Проверяем не только код бота, но и webhook, сервер, базу, очереди и интеграции.
  • Сначала восстанавливаем управляемость, потом берёмся за новые функции.
  • Отчёт остаётся у вас, даже если дальше вы выберете другую команду.

Что мы понимаем под подхватом

Подхват Telegram-бота — это возврат контроля над продуктом, а не «добавить пару команд».

Работающий бот — это не только код. Это токен и права в BotFather, сервер и окружения, webhook или polling, база данных, очереди и фоновые задачи, платежи и подписки, интеграции с CRM, сайтом, 1С и внутренними системами, админка операторов, логи, мониторинг и алёрты. Подхват — это вернуть контроль над всем перечисленным.

Что мы относим к подхвату бота

Разбор репозитория, окружений и секретов. Аудит работы Bot API, обработки update и лимитов Telegram. Проверка базы, очередей, платежей, подписок, выдачи доступа и интеграций. Состояние сервера, релизов, мониторинга и бэкапов. Письменный отчёт с приоритезированными рисками. Передача токена, серверных доступов и артефактов с письменным актом. Дальше — поддержка или развитие по согласованной модели.

Что подхватом бота у нас не считается

Точечная правка одной команды бота без аудита и без ответственности за релиз. Полная переработка концепции «нового бота» без разбора текущего. Работа без подтверждённых прав на токен, код и сервер. Сопровождение бота, который бизнесу проще закрыть и собрать заново.

Когда нужен подхват

Признаки, по которым стоит начинать разговор.

Если совпали два-три пункта — пора смотреть, что на самом деле происходит с ботом.

Подрядчик пропал или не выпускает изменения

Команда перестала отвечать или отвечает «через раз». Задачи открыты, релизов нет, бот работает «как есть».

Бот отвечает с задержкой или молчит

Сообщения обрабатываются с заметной задержкой, периодически бот вообще не отвечает. Причину объяснить никто не может.

Webhook падает после деплоя или смены сервера

После очередной выкладки webhook перестаёт принимать update, Telegram отключает доставку или возвращает 5xx, ручное переключение становится регулярной операцией.

Платежи и подписки работают нестабильно

Часть оплат проходит со второй попытки, выдача доступа задержана, подписки не продлеваются, статусы заказов уезжают.

Рассылки не доходят или приводят к блокировкам

Массовые сообщения упираются в лимиты Telegram, пользователи получают дубли, часть аккаунтов получает rate-limit или блокируется.

Интеграции с CRM, сайтом или 1С ломаются

Лиды не доезжают до CRM, заказы расходятся между ботом и 1С, сайт и бот показывают разные состояния, обмены падают молча.

Нет доступа к серверу, базе или BotFather

Серверные ключи, доступ к базе или права в BotFather — на личном аккаунте прошлой команды. Восстановление владения — отдельный сюжет.

Нужно срочно выпустить фикс, но никто не понимает код

Прод горит, а воспроизвести деплой и выпустить фикс в нужный срок из доступных людей никто не может.

Кому не подойдёт

Когда подхват бота у нас — не ваша история.

Называем заранее, чтобы не тратить ваше время и не вводить в заблуждение.

Нужен просто новый бот с нуля

Если задача — собрать новый бот без разбора старого, это не подхват. Под такую задачу есть отдельная страница про разработку ботов.

Нет прав на токен, сервер и код

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

Разовая мелкая правка без аудита и релиза

Одна команда, одно сообщение, без аудита и без ответственности за выпуск — это та же история, которая привела в текущую ситуацию. Заходим минимум через аудит.

Бот собран как одноразовый MVP

Иногда честный ответ — закрыть бота и собрать новый под актуальный бизнес-замысел. В таком случае подхват тратит ваши деньги впустую.

Что проверяем в первые дни

Что входит в аудит Telegram-бота.

Сразу не лезем чинить. Сначала проходим по списку и фиксируем состояние, чтобы дальше работать с фактами, а не с предположениями.

Репозиторий, ветки, окружения, секреты

Структура репозитория, активные ветки, расхождение прод-ветки и того, что фактически крутится на сервере. Где лежат env и секреты.

Bot API, webhook и polling

Как принимаются update, как обрабатываются ошибки, как ведёт себя бот под лимитами Telegram, как организован retry и идемпотентность.

База данных

Схема, миграции, консистентность, бэкапы и их фактическая восстанавливаемость. Что меняется руками через консоль, а что через миграции.

Очереди, cron, фоновые задачи и рассылки

Как устроены отложенные задачи и рассылки, не блокируют ли они основной поток обработки сообщений, как обрабатываются ошибки и ретраи.

Платежи, подписки, выдача доступа

Какой провайдер, как реализована идемпотентность, как обрабатываются вебхуки, как происходит выдача и отзыв доступа, как ведётся учёт подписок.

Интеграции: CRM, сайт, 1С, backend, внешние API

Контракты и состояние интеграций, версионирование, обработка ошибок сторонних систем, наличие retry и алёртов на провалы.

Админка и роли операторов

Кто и что может делать через админку, есть ли роли и аудит действий, как заводятся новые операторы, как закрывается доступ бывшим.

Логи, мониторинг, алёрты и обработка ошибок

Что и куда пишется, есть ли алёрты на падения и просадки, как обрабатываются необработанные исключения, что видно в случае инцидента.

Что вы получаете после аудита

Артефакты, которые остаются у вас.

Артефакты остаются у вас даже в случае, если дальше работаете не с нами.

Отчёт по состоянию бота и инфраструктуры

Письменный разбор кода, Bot API, базы, очередей, платежей, интеграций, админки и серверных доступов с приоритезированными находками.

Карта рисков по коду, данным, платежам и интеграциям

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

Список доступов и артефактов для передачи

Что и в каком порядке забрать у прошлой команды: токен и права в BotFather, серверные доступы, база, env, CI/CD, аналитика, интеграции.

План стабилизации на первые 2–4 недели

Список работ после старта подхвата с оценкой трудоёмкости. Цель — снять острые риски и вернуть управление в проект.

Backlog технических и продуктовых задач

Сгруппирован по приоритету: что в ближайший релиз, что в следующий, что в техдолг.

Рекомендации по релизам, мониторингу и бэкапам

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

Решение по продукту

Поддерживать текущую архитектуру, стабилизировать, частично переписать или переписывать полностью — обоснованное решение по итогам аудита.

Первый месяц

Как стабилизируем бота в первый месяц.

В первый месяц не «переделываем под себя». Снимаем острые риски, чтобы релизы и работа бота перестали быть лотереей.

Восстанавливаем воспроизводимый деплой

Фиксируем версии тулчейна и зависимостей, переменные окружения и скрипты выкладки. Деплой должен получаться у любого инженера команды, а не у одного человека.

Наводим порядок с токенами, env и доступами

Переоформляем секреты, переносим env в безопасное хранилище, закрываем токены в коде, выдаём роли и доступы по принципу наименьших привилегий.

Фиксируем webhook или polling и обработку ошибок

Приводим работу с Bot API к предсказуемому состоянию: корректная обработка update, ретраи, идемпотентность, поведение под лимитами Telegram, понятные ошибки в логах.

Стабилизируем платежи, подписки и выдачу доступа

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

Проверяем бэкапы и миграции базы

Делаем фактическую проверку восстановления из бэкапа, наводим порядок с миграциями, прекращаем менять схему руками через консоль.

Подключаем понятные логи, мониторинг и алёрты

Логирование с контекстом, ключевые метрики по обработке сообщений и платежам, алёрты на падения webhook, очередей и сторонних API.

Документируем критичные сценарии и админские операции

Короткие регламенты по выкладке, фикс-релизам, ручным операциям в админке и действиям при инцидентах. Без «знания в голове одного человека».

Чего не ломаем при переходе

Что мы намеренно не трогаем в переходный период.

Эти ограничения мы соблюдаем сами, чтобы переход был предсказуемым, а пользователи бота — не пострадали.

Не меняем токен бота без причины

Смена токена обнуляет интеграции и логику авторизации. Идём на это только осознанно, с планом миграции и обновлением всех зависимых сервисов.

Не переключаем webhook без плана отката

Переключение webhook или возврат к polling делается по согласованному окну с готовым откатом. Без «попробуем и посмотрим, что будет».

Не запускаем массовые рассылки без проверки лимитов и сегментов

Любая рассылка проходит через проверку сегмента, лимитов Telegram и нагрузочного поведения. Иначе блокировки и потеря пользователей.

Не трогаем платежи и подписки без тестового сценария

Изменения в платёжных и подписочных потоках обкатываются на тестовом боте и тестовых счетах. На прод выходят только после подтверждённого сценария.

Не закрываем доступ предыдущей команде до передачи

Доступ закрывается только по вашему решению и после письменного акта передачи. До этого момента идёт параллельная работа в режиме чтения.

Стек и типовые конфигурации

На каких стеках подхватывали ботов.

Заходим в проекты на стеках, с которыми работают наши команды. Если вашего нет в списке — напишите, скажем честно, готовы ли мы подхватить или порекомендуем тех, кто делает это лучше.

Python

aiogram, pyTelegramBotAPI, FastAPI и Django как backend.

Node.js

grammY, Telegraf, NestJS и Express как backend.

PHP

Боты и backend на Laravel или Symfony, где это уместно.

Mini Apps

React, Next.js, Vue с Telegram Web Apps SDK и валидацией initData.

Базы и очереди

PostgreSQL, MySQL, Redis, очереди на Redis или RabbitMQ.

Инфраструктура

Docker, GitLab CI, GitHub Actions, VPS и cloud, nginx, мониторинг.

Частые проблемы

Что чаще всего всплывает на аудите бота.

Это не «страшилки». Это то, что регулярно встречается в ботах, приходящих на подхват. Владелец продукта обычно об этом не знает.

Токены в репозитории

Токен бота, ключи платёжных провайдеров и сторонних API закоммичены в код. После увольнения сотрудника всё ещё в истории.

Webhook настроен вручную и не документирован

URL webhook прописан в чьей-то консоли, скрипт переустановки отсутствует, при смене сервера всё восстанавливается «по памяти».

Нет миграций базы

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

Рассылки блокируют основной поток

Массовая рассылка выполняется в том же процессе, что и обработка сообщений. На время рассылки бот заметно тормозит или зависает.

Платежи не идемпотентны

Повторный вебхук от платёжного провайдера приводит к двойной выдаче или двойному списанию. Возвраты и спорные ситуации разбираются вручную.

Нет retry для внешних API

При временном падении CRM, 1С или сайта запросы теряются, события до целевой системы не доезжают. Алёрта об этом нет.

Админка без ролей и аудита действий

Все операторы видят и могут всё. Кто и когда поменял статус заказа, выдал доступ или удалил пользователя — восстановить нельзя.

Логи не помогают найти причину падения

В логах либо ничего, либо «всё подряд». Контекст конкретного сообщения или пользователя не вытащить, инциденты разбираются часами.

Бот зависит от одного сервера без бэкапа

Один VPS, без снапшотов и без проверенных бэкапов базы. Падение сервера — это потеря данных и истории взаимодействия.

Mini App расходится по логике с backend

Фронт Mini App и серверная часть писались разными подходами или командами. Часть бизнес-правил дублируется, часть расходится, сложно сказать, какая «настоящая».

Чек-лист передачи доступов

Что стоит подготовить со стороны заказчика.

Часть пунктов выглядит банально, но именно они срывают подхват бота чаще, чем сложный код.

Telegram

  • Права владельца бота в BotFather.
  • Bot token и порядок ротации.
  • Список администраторов бота и каналов, привязанных к боту.
  • Настройки Mini App: домен, ссылки, разрешения.

Код

  • Доступ к репозиториям на уровне владельца, а не разработчика.
  • Приватные пакеты и зеркала, опубликованные подрядчиком.
  • Пайплайны CI/CD, секреты сборки и раннеры.

Сервер

  • SSH-доступ, ключи, jump-хосты.
  • Конфигурации Docker, nginx, supervisord или systemd.
  • Переменные окружения и хранилище секретов.
  • Домены и SSL-сертификаты, привязанные к webhook и Mini App.

Данные

  • Доступ к базе на уровне администратора и read-only пользователя.
  • Доступ к Redis или другим хранилищам кеша и очередей.
  • Где лежат бэкапы и как их фактически восстанавливать.
  • Скрипты миграций и порядок их применения.

Интеграции

  • Платёжные провайдеры и ключи на ваш аккаунт.
  • Доступ к CRM, сайту, 1С и backend, с которыми бот общается.
  • Ключи и токены внешних API, аналитики и сервисов рассылок.
  • Контакты на стороне вендоров по критичным интеграциям.

Типы Telegram-проектов

С какими типами ботов и Mini Apps работаем.

Если ваш случай — в списке ниже, опишите его в заявке. Обсуждаем по существу: что досталось, какие риски, с чего начнём.

Сервисный бот

Заявки, статусы, уведомления клиентам.

Бот с оплатой

Платёжные провайдеры, чеки, возвраты.

Бот с подпиской

Тарифы, продления, выдача и отзыв доступа.

Telegram Mini App

Web-приложение внутри Telegram с авторизацией через initData.

Бот для лидов

Сбор контактов, квалификация, передача в CRM.

Бот поддержки

Очередь обращений, операторы, история диалогов.

Внутренний бот для сотрудников

Доступ к корпоративным системам, уведомления, отчёты.

Бот с CRM-интеграцией

Двусторонний обмен с amoCRM, Bitrix24 или собственной CRM.

Бот с рассылками

Сегменты, лимиты, отписки, антиблокировки.

Бот с личным кабинетом

Профиль пользователя, история, документы, операции.

FAQ

Что обычно спрашивают перед подхватом бота.

С чего начинается подхват Telegram-бота?

С короткой стартовой сессии и заявки на аудит. Обсуждаем, что делает бот, какой у него стек, какие доступы и аккаунты уже на вашей стороне, что произошло с прошлой командой. По запросу подписываем NDA. Дальше — аудит кода, Bot API, webhook, базы, очередей, платежей, интеграций и серверных доступов. Условия подхвата обсуждаем после отчёта.

Можно ли начать с аудита одного критичного сценария бота, не разбирая весь код?

Да, если у выбранного сценария есть чёткие границы: понятная команда или кнопка, отдельный обработчик, идентифицируемые состояния пользователя. Аудит в этом случае фокусируется на коде, состояниях, очередях и обработчиках именно этой ветки бота. Контракт с остальным кодом, БД и интеграциями описываем отдельно, чтобы было понятно, какие выводы возможны без полного аудита, а какие — нет.

Что делать, если нет доступа к BotFather?

BotFather привязан к Telegram-аккаунту владельца бота. Если бот был создан с личного аккаунта прошлой команды, владение восстанавливается через передачу прав в BotFather или через перевыпуск бота с переносом данных. На аудите фиксируем текущее состояние и предлагаем безопасный план передачи, чтобы пользователи не получили «новый» бот с потерей истории.

Что делать, если бот работает, но исходников нет?

Сначала фиксируем, что доступно: токен, сервер, база, env, логи. На основе работающей системы реконструируем поведение бота, описываем сценарии и контракты с внешними API. Дальше принимаем решение: восстанавливать кодовую базу по факту, частично переписывать или собирать заново с переносом данных.

Вы работаете с Python-ботами?

Да. Заходим в проекты на aiogram, pyTelegramBotAPI и связки с FastAPI или Django. Mini App-фронт под Telegram Web Apps SDK при необходимости разбираем отдельно.

Вы работаете с Node.js-ботами?

Да. Заходим в проекты на grammY и Telegraf, в том числе в связке с NestJS или Express. Mini App-фронт на React, Next.js или Vue с Telegram Web Apps SDK подхватываем вместе с backend.

Можно ли подхватить Telegram Mini App?

Да. Подхват Mini App покрывает и фронтенд, и серверную часть: авторизация через initData, валидация подписи, контракты с backend, платежи, выдача доступа. Если бот и Mini App написаны разными командами, аудит честно покажет, где границы расходятся.

Что если проблема не в боте, а в backend или CRM?

На аудите смотрим обе стороны. Часто баги бота — следствие нестабильного backend, неконсистентных контрактов или сломанных вебхуков от CRM. В отчёте отделяем бота от смежных систем и предлагаем план по каждой части. Backend и интеграции можем взять в подхват вместе с ботом или оставить вашей команде.

Как не потерять webhook, платежи и сценарии пользователей при подхвате бота?

До любых изменений снимаем карту webhooks, очередей и сценариев: какие команды и кнопки используют пользователи, как обрабатываются платежи Telegram Payments и внешние эквайринги, какие состояния хранятся в базе. Перевыпуск токена и переключение webhook идут отдельным окном с согласованием. Сценарии диалогов и состояния пользователей не трогаем «по дороге» в рамках срочной стабилизации.

Какие настройки и сценарии Telegram-бота нужно передать внутреннему разработчику?

По итогам подхвата готовим короткий чек-лист для внутреннего разработчика: владение в BotFather, токен и его ротация, webhook-эндпоинт и обработчики, схема состояний пользователей, описание команд и кнопок, очереди и фоновые задачи, обработка платежей, регламент изменений. Документируем нетривиальные сценарии и состояния, чтобы новый разработчик понимал, почему диалог устроен именно так. Можем сопровождать первые недели его работы.

Заказать аудит Telegram-бота

Опишите ситуацию — вернёмся в течение рабочего дня.

Опишите, что делает бот, на каком стеке он написан, какие доступы есть и что произошло с предыдущей командой. Вернёмся с конкретикой и предложим стартовую сессию.

Подхват Telegram-бота

Короткая заявка на аудит.

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

Заявка придёт на hi@khaiam.ru. Можно написать сразу в Telegram .

Заказать аудит бота