Проблема
Менеджер может пропустить обращение, если Avito — лишь один из нескольких рабочих каналов. Постоянно держать отдельный кабинет открытым неудобно, а задержка ответа напрямую влияет на шанс продолжить диалог.
Решение
AvitoReply опрашивает Avito Messenger, связывает диалог с внутренним контактом и доставляет новое сообщение в MAX или Telegram. Ответ менеджера проходит обратный маршрут и публикуется в исходном чате Avito. В результате работа остается в привычном мессенджере, а клиент не видит смены канала.
Что реализовано в backend
- FastAPI-приложение с конфигурацией через переменные окружения.
- Polling Avito Messenger и двусторонняя маршрутизация сообщений.
- Webhooks для MAX и Telegram с проверками и обработкой повторных событий.
- Lead API, телефонная валидация и небольшой административный контур.
- Миграции, тесты ключевых сценариев и Docker Compose для локального запуска.
Инженерные риски
Главные сложности такого сервиса находятся не в отправке одного HTTP-запроса, а в устойчивости потока: лимиты API, повторная доставка webhook, связь ответов с исходным диалогом, недоступность одного из каналов и безопасное хранение токенов. Эти границы учитываются в архитектуре MVP.
Статус
Репозиторий содержит рабочий backend и посадочную страницу продукта. Кейс обозначен как MVP: он подтверждает двусторонний интеграционный поток и готовность к дальнейшей настройке под реальные кабинеты и эксплуатационные ограничения.
