Automation / FastAPI / MVP

AvitoReply: ответы на сообщения Avito из MAX и Telegram

Сервис переносит новый диалог менеджеру в мессенджер и возвращает его ответ клиенту в Avito.

Открыть GitHub ↗
Товар из объявления Avito, обращения по которому обрабатывает AvitoReply

Проблема

Менеджер может пропустить обращение, если 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: он подтверждает двусторонний интеграционный поток и готовность к дальнейшей настройке под реальные кабинеты и эксплуатационные ограничения.

Ценность появляется, когда интеграция надежно проходит весь путь туда и обратно.

01

Получить

Забрать новое обращение, не потерять его и сохранить контекст объявления.

02

Доставить

Выбрать доступный канал менеджера и связать сообщение с диалогом.

03

Ответить

Вернуть ответ в Avito, обработать повтор и зафиксировать результат.

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

Разберу API и соберу наблюдаемый интеграционный поток.

Обсудить интеграцию ↗