Чаты Яндекс Маркета через API: как собрать очередь сообщений без повторных ответов
Как разделить типы чатов Маркета, получать новые сообщения, находить диалоги без ответа и проверить интеграцию на тестовом заказе.
Содержание статьи
Подключение чатов Яндекс Маркета к внутренней системе полезно, когда заказы и обращения уже обрабатывают несколько сотрудников. Главная задача — сохранить контекст разговора и ответить один раз. Простая пересылка каждого уведомления в общий канал этого не гарантирует.
Разделить диалоги по назначению
Документация выделяет ORDER для заказов, RETURN для возвратов FBY, FBS и Экспресс, а также DIRECT для вопросов о товаре. DIRECT начинает покупатель: продавец не может самостоятельно создать такой чат. Поэтому автоматизацию нельзя проектировать как произвольную рассылку всем посетителям карточки.
При CHAT_CREATED Маркет рекомендует сохранить chatId и получить контекст разговора. При CHAT_MESSAGE_SENT достаточно загрузить нужное сообщение, а отсутствующий в вашей системе чат сначала получить отдельно. Для очереди, где требуется ответ магазина, предусмотрен фильтр WAITING_FOR_PARTNER.
Сохранить контекст и ответственного
Редакционная рекомендация — показывать сотруднику тип чата, связанный заказ или возврат, историю и уже отправленные сообщения. Назначение ответственного лучше хранить в своей системе явно. Иначе два оператора могут одновременно открыть одинаковый диалог и пообещать покупателю разные действия.
Уведомление о новом сообщении должно обновлять существующую переписку, а не создавать ещё одну карточку обращения при каждом поступлении. Перед отправкой ответа полезно повторно проверить последние сообщения. Это снижает вероятность ответа на вопрос, который уже уточнён покупателем или обработан коллегой.
Как проверить интеграцию
Официальный API позволяет создать тестовый чат для тестового заказа; для возврата такой вариант не предусмотрен. Ответов покупателей в тестовом чате нет. Поэтому проверка подтверждает создание диалога и отправку сообщения, но не весь реальный обмен в обе стороны.
Отдельно проверьте обработку нового сообщения в уже известном чате, загрузку недостающего контекста, отправку файла и повторное открытие истории. Для истории документация предлагает фильтр по последнему идентификатору сообщения, чтобы не загружать уже полученное заново. На первом рабочем запуске сверяйте очередь с кабинетом: потерянный диалог заметнее по отсутствию конкретного обращения, чем по общему счётчику событий.
Материал отражает сведения на указанную дату. Правила и условия работы площадок могут измениться. Редакционные принципы