О сервисе
Avi.Solpy — мультиаккаунтная CRM для продавцов и сервисных компаний на Avito. Сервис объединяет в одном интерфейсе переписку по всем аккаунтам, автоответы, рассылки по диалогам, управление объявлениями и ценами, а также заказы с настраиваемыми полями под каждого администратора (tenant).
Работает в браузере, отдельное приложение не требуется. Подключение к Avito — по официальному API через OAuth.
superadmin сервиса имеет доступ ко всем кабинетам для поддержки.Быстрый старт
- Регистрация кабинета. Перейдите на avi.aa02.ru/register и создайте аккаунт компании. Первый пользователь получает роль
admin— владельца кабинета. - Добавление сотрудников. В разделе «Пользователи» админ заводит сотрудников. Публичной регистрации сотрудников нет: новому пользователю выдаётся временный пароль и флаг обязательной смены пароля при первом входе.
- Подключение аккаунта Avito. Раздел «Аккаунты» → «Подключить» → авторизация на стороне Avito → возврат в сервис. Токены сохраняются в зашифрованном виде, сразу запускается первая синхронизация.
- Настройка доступа. Для каждого сотрудника задайте уровень доступа к конкретному аккаунту:
read,replyилиmanage. - Работа. Отвечайте из «Инбокса», настройте «Автоответы», запускайте «Рассылки», синхронизируйте «Объявления», ведите «Заказы».
Роли и права
Управление доступом построено на ролях и отдельных правах (permissions). Базовые роли:
| Роль | Назначение |
|---|---|
superadmin | Сотрудник сервиса. Видит все кабинеты, используется для поддержки. |
admin | Владелец кабинета. Полный доступ к своему кабинету, управляет пользователями, аккаунтами и настройками. |
user | Сотрудник кабинета. Набор прав задаёт администратор. |
Права (permissions)
Права выдаются точечно, всего их около 20. Основные группы:
users.manage,accounts.manage,logs.view— администрирование кабинета;inbox.view,inbox.reply— просмотр и ответы в диалогах;autoreply.manage,broadcast.manage— автоответы и рассылки;listings.view,listings.rules.manage— объявления и правила автоподнятия;orders.view,orders.create,orders.delete,order_fields.manage,order_statuses.manage— заказы и их конструктор.
Уровни доступа к аккаунту
Дополнительно к правам сотруднику назначается уровень доступа по каждому подключённому аккаунту Avito:
| Уровень | Что можно |
|---|---|
read | Только читать диалоги и данные аккаунта. |
reply | Читать и отвечать в диалогах. |
manage | Полное управление аккаунтом: настройки, автоответы, рассылки, объявления. |
Аккаунты Avito
Раздел «Аккаунты» — список подключённых кабинетов Avito.
- Подключение. Кнопка «Подключить» ведёт на авторизацию Avito (OAuth). После подтверждения доступа сервис получает токены и запускает синхронизацию диалогов.
- Хранение секретов. Client-секреты и токены хранятся зашифрованными и не отдаются в ответах интерфейса. Логин и пароль от Avito сервис не запрашивает и не хранит.
- Обновление токенов. Access-токен обновляется автоматически по расписанию (раз в час) и «на лету» перед запросами к API.
- Доступ сотрудников. Настраивается на карточке аккаунта — уровни
read/reply/manage.
Инбокс
Раздел «Инбокс» — все диалоги всех аккаунтов в одном списке. На десктопе — две колонки (список и переписка), на мобильном — список с полноэкранным диалогом.
- Входящие в реальном времени. Новые сообщения приходят через вебхуки Avito. Резервный поллинг раз в 5 минут страхует от пропусков.
- Фильтр по аккаунту и кнопка ручной синхронизации.
- Отправка ответов идёт через очередь с повторными попытками — сообщения не теряются при пиковых нагрузках.
- История переписки подтягивается из API Avito при первой синхронизации диалога.
- В режиме разработки доступна кнопка имитации входящего сообщения для проверки автоответов.
Автоответы
Раздел «Автоответы» (право autoreply.manage). Правило описывает, когда и что отправить автоматически.
Триггеры
| Триггер | Когда срабатывает |
|---|---|
first_message | Первое сообщение покупателя в диалоге. |
keyword | В сообщении встречаются ключевые слова (режим «любое» / «все», с учётом или без учёта регистра). |
no_reply_timeout | Оператор не ответил в течение N минут. |
off_hours | Сообщение пришло в нерабочие часы. |
Настройки правила
- Рабочие часы (
working_hours) — окна активности правила по дням недели. - Задержка (
delay_seconds) — пауза перед отправкой ответа. - Один раз на чат (
once_per_chat) — не повторять правило в том же диалоге. - Приоритет (
priority) — какое правило применяется, если подходит несколько. - Отмена. Если оператор ответил раньше, чем истекла задержка, автоответ не отправляется.
Переменные в тексте
В шаблоне ответа доступны подстановки: {opponent_name} — имя покупателя, {item_title} — заголовок объявления, {item_url} — ссылка на объявление.
AutoReplyLog) с анти-спам-защитой, чтобы не отправлять один и тот же ответ повторно.Рассылки
Раздел «Рассылки» (право broadcast.manage) — массовая отправка сообщения по диалогам аккаунта.
Аудитория
- Все диалоги аккаунта;
- только диалоги без нашего ответа;
- по конкретным объявлениям;
- выбранные вручную чаты.
Отправка
- Лимит в час (
throttle_per_hour) — отправка батчами, задача сама переставляется в очередь до конца списка. - Планирование (
scheduled_at) — запуск в заданное время. - Жизненный цикл: черновик → собрать получателей → запустить → пауза / продолжить → завершено, либо отмена.
- Статусы получателей:
pending,sent,skipped,failed— видна статистика по кампании.
Шаблоны сообщений — раздел «Шаблоны». Поддерживают те же переменные, что и автоответы.
Объявления и цены
Раздел «Объявления» (право listings.view). Каталог объявлений аккаунта с синхронизацией из Avito раз в 30 минут.
- Редактирование цены и статуса объявления прямо из интерфейса.
- Массовые действия по выборке (изменение цены, снятие / публикация).
- История цен — по каждому объявлению фиксируются изменения (
ListingPriceHistory).
Правила автоподнятия
Раздел «Правила поднятия» (право listings.rules.manage). Правило автоматически поднимает объявления по расписанию.
- Дневной бюджет (
daily_budget) — поднятие останавливается, когда потраченная за сутки сумма достигает лимита. - Срабатывания пишутся в журнал (
ListingBumpLog). - Правила выполняются фоновой задачей
avito:run-bump-rules(ежеминутно).
Заказы
Раздел «Заказы» (право orders.view, создание — orders.create). CRM-часть сервиса с конструктором под конкретный бизнес.
Конструктор полей и статусов
- Поля заказа (
order_fields.manage) — администратор задаёт свой набор полей: типы, порядок, обязательность. Есть готовые пресеты (например, «химчистка мягкой мебели»). - Статусы заказа (
order_statuses.manage) — своя воронка статусов с порядком и пресетами.
Работа с заказом
- Создание из чата — заказ можно завести прямо из диалога с покупателем в инбоксе.
- Назначение ответственного сотрудника.
- Смена статуса и лента активности (
OrderActivity) — история всех изменений по заказу.
Вебхуки
Входящие события Avito принимаются на адрес POST /webhooks/avito/{account}.
- Аутентификация — по общему секрету (
AVITO_WEBHOOK_SECRET). - Идемпотентность — повторные доставки отсекаются по ключу дедупликации (
webhook_events.dedupe_key), сообщения не задваиваются. - После приёма события фоновая задача перечитывает соответствующий диалог через API Avito и обновляет данные.
Фоновые задачи
Периодические операции выполняет планировщик. В production очереди и планировщик работают через Redis + Horizon; локально задачи выполняются синхронно.
| Команда | Частота | Назначение |
|---|---|---|
avito:sync | каждые 5 минут | Резервный поллинг диалогов и сообщений. |
avito:refresh-tokens | ежечасно | Обновление access-токенов аккаунтов. |
avito:auto-reply-timeouts | ежеминутно | Проверка правил «нет ответа N минут». |
avito:run-scheduled-campaigns | ежеминутно | Запуск запланированных рассылок. |
avito:sync-listings | каждые 30 минут | Синхронизация каталога объявлений. |
avito:run-bump-rules | ежеминутно | Автоподнятие объявлений по правилам. |
Безопасность
- Шифрование доступов — токены и секреты аккаунтов Avito хранятся зашифрованными, скрыты в сериализации.
- Изоляция кабинетов — фильтрация по
admin_idна уровне моделей, а не только интерфейса. - Двухфакторная аутентификация (2FA) для входа, поддержка passkey.
- Обязательная смена пароля при первом входе сотрудника.
- Нет публичной регистрации сотрудников — их заводит только администратор.
- Журналы действий по автоответам и рассылкам.
Подробнее — на странице Безопасность.
Тарификация
- Первые 3 месяца — бесплатно, все функции без ограничений, до 10 аккаунтов Avito, без банковской карты.
- Далее — 1 000 ₽ в месяц за пакет из 10 аккаунтов Avito. Нужно больше — подключается ещё пакет на 10 аккаунтов за ту же цену.
- Сотрудники не тарифицируются — число пользователей в кабинете не ограничено.
- Оплата помесячно, картой или по счёту, с закрывающими документами.
Полное описание — на странице Тарифы.
Поддержка
Вопросы по работе сервиса — FAQ или страница Контакты (почта support@a.aa02.ru, Telegram @avisolpy). Время ответа — Пн–Пт, 10:00–19:00 МСК.