Кейс: Mr. Wey Customs — бот для сбора документов

Ниша: Таможенное оформление автомобилей Стек: Python, aiogram 2.x, SQLite, APScheduler

Задача клиента

Компании, занимающейся таможенным оформлением автомобилей, требовался надежный 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.

Связанные материалы

Как создать Telegram-бота

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

Читать гайд

Telegram-бот с Google Sheets

Как использовать таблицы для заявок, отчетов, справочников и админ-панели.

Читать гайд

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

Как автоматизировать сбор данных, P&L, витрины и отчеты по маркетплейсам.

Читать гайд

Нужно автоматизировать сбор документов?

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