Кейс: Mr. Wey Customs — бот для сбора документов
Задача клиента
Компании, занимающейся таможенным оформлением автомобилей, требовался надежный Telegram-бот для сбора персональных данных и сканов документов от клиентов. Нужно было решить проблему неполных заявок, ошибок при вводе и хаотичного обмена файлами через мессенджеры.
Решение от Flowcore
Мы разработали бота-ассистента, который проводит клиента через весь процесс сбора данных в формате пошагового диалога. Бот валидирует ввод, принимает документы, сохраняет их в структурированные папки, формирует ZIP-архив и отправляет готовую заявку менеджерам.
Проект построен на aiogram 2.x и имеет модульную архитектуру: отдельно вынесены хэндлеры, сервисы, утилиты, работа с базой данных, валидация и обслуживание файлов.
Ключевые реализованные возможности:
- Пошаговая анкета: FSM-сценарий последовательно собирает данные клиента и автомобиля, помнит текущий шаг и поддерживает навигацию кнопками "Назад" и "Пропустить".
- Валидация данных: Бот проверяет ФИО, email, VIN-номер, контактный телефон и сразу объясняет пользователю, что нужно исправить.
- Прием документов: Поддержана загрузка сканов паспорта, ИНН, СНИЛС, инвойсов и других файлов, включая несколько файлов для одного документа.
- Структурированное хранение: Файлы автоматически сохраняются на сервере в папки с уникальными именами по дате, VIN-номеру и фамилии клиента.
- ZIP-архив заявки: После завершения анкеты бот собирает все документы в архив для удобной передачи и хранения.
- Доставка менеджерам: Готовая заявка отправляется на заданные email-адреса и в Telegram-чат менеджеров вместе с полной сводкой.
- Автоматическая очистка: APScheduler периодически удаляет устаревшие файлы и записи, чтобы сервер не засорялся.
Технические детали
SQLite с асинхронной библиотекой aiosqlite хранит заявки, пользователей и информацию о загруженных файлах. Для проверки телефонов используется phonenumbers, для конфигурации — python-dotenv, для текстов и настроек — PyYAML, а для безопасных имен файлов и папок — transliterate.
В проекте настроено детальное логирование действий и ошибок в файл с ротацией, чтобы команда могла быстро находить проблемы в заявках, доставке писем или загрузке документов.
Результат
Компания получила понятный и надежный канал сбора документов: клиенты проходят анкету без участия менеджера, данные проверяются сразу, файлы складываются в правильную структуру, а готовая заявка автоматически попадает команде. Это сокращает время ручной обработки и снижает количество ошибок в документах.
Стек технологий
Python 3.10, aiogram 2.x, SQLite, aiosqlite, APScheduler, python-dotenv, PyYAML, phonenumbers, transliterate.