Эпизод 01 · Python / CRM
Бот, который не «забыл записать»
Lead-бот для турагентства: вытягивает из клиента направление, даты, людей, бюджет и телефон — без «а вы же писали вчера в чат». Потом аккуратно сдаёт lead админу и в MDT. Код на GitHub, не на веру.
структура вместо «ну примерно Турция»
Telegram и VK, одна логика — меньше дубляжа
тесты, Docker и «можно открыть и потыкать»
Контекст · почему всё горело
Свободная переписка — враг нормального lead
Клиент пишет как умеет: «хотим в Египет где-то в мае ну или июне человек 3–4 бюджет так». Менеджеру нужны поля и телефон — внятно, а не «где-то в чате». Ручной перевод «из чата в таблицу» — олимпийский вид спорта с высоким шансом потерять детали.
Бот не заменяет менеджера (пока). Он просто собирает достаточный и проверенный набор данных, пока заявка ещё не стала квестом «кто что имел в виду».
Путь lead'а (без лирики)
Решение · что сделал
Пошаговый сценарий вместо «напишите всё одним сообщением»
Стек простой и злой: Python + Flask. Конечный автомат ведёт клиента по шагам, валидирует телефон, даты, людей и бюджет — и только потом сохраняет заявку. Никаких «а можно просто текстом?»
- FSM и навигация. Направление, даты, люди, бюджет, телефон. Есть «Назад» и «Отмена» — потому что люди передумают, это норма.
- Хранение и админка. SQLite: сессии и leads. Админ получает уведомления, а не медитирует в чате.
- MDT (МойДокументы.Туризм). Lead/preorder уходит в фоне: внешний API не держит пользователя в заложниках «секундочку…».
- Контактные данные. Согласие перед телефоном, `/privacy`, `/delete` — lead для заявки, без «навсегда в чате».
Один сценарий — Telegram и VK. CRM получает одинаковые поля, а не два диалекта «как получилось».
Финал · что можно проверить
Не «я сделал бота», а репозиторий
Webhook, FSM, валидация, модели SQLite, CRM-клиент, privacy, pytest, Docker — всё лежит открыто. Можно не верить мне. Можно клонировать.
Есть ещё версия под MAX с той же бизнес-логикой. Спойлер: мессенджер меняется, желание получить нормальный lead — нет.
Стек
- Python
- Flask
- Telegram / VK
- SQLite
- MDT CRM
- pytest
- Docker
Живой код
Вот он. Не презентация.
Структура, webhook, автомат, тесты, MDT. Если найдёте баг — поздравляю, вы в теме. Если нет — тоже нормально, pytest уже постарался.