💬Chat API

Общение с покупателями через чаты и сообщения OZON

🔐 ТРЕБУЕТ ПОДПИСКУ PREMIUM PLUS
Управление чатами
2 активных метода

Создание новых чатов, получение списка с фильтрацией

Сообщения
3 метода

Отправка текста, файлов, отметка как прочитанное

История
1 активный метод

История сообщений чата с пагинацией

📚 Категории 📑 Индекс API 🚀 Быстрый старт ❓ FAQ
📚 Категории 📑 Индекс API 🚀 Быстрый старт ❓ FAQ

🚀 Быстрый старт

1

Получить чаты

Список активных чатов с непрочитанными

2

Создать чат

Новый чат по номеру отправления

3

Отправить сообщение

Текст или файл покупателю

4

Обработать ответы

Читать историю и отмечать как прочитанное

import { OzonSellerAPI } from 'daytona-ozon-seller-api';

// ⚠️ Требуется подписка Premium Plus
const client = new OzonSellerAPI({
  clientId: 'your-client-id',
  apiKey: 'your-api-key'
});

// Базовый workflow общения с покупателем
try {
  // 1. Получить список активных чатов
  const activeChats = await client.chat.getChatListV3({
    limit: 50,
    filter: {
      chat_status: 'Opened',
      unread_only: true
    }
  });

  console.log(`📊 Активных чатов: ${activeChats.chats?.length || 0}`);

  // 2. Создать новый чат по отправлению
  const newChat = await client.chat.startChat({
    posting_number: 'FBS-12345-0001-1'
  });

  if (newChat.result?.chat_id) {
    console.log(`💬 Создан чат: ${newChat.result.chat_id}`);

    // 3. Отправить приветственное сообщение
    await client.chat.sendMessage({
      chat_id: newChat.result.chat_id,
      text: 'Здравствуйте! Я готов ответить на ваши вопросы по заказу.'
    });

    // 4. Отправить инструкцию (файл)
    const fileContent = 'base64_encoded_file_content'; // PDF/изображение
    await client.chat.sendFile({
      chat_id: newChat.result.chat_id,
      base64_content: fileContent,
      name: 'care_instructions.pdf'
    });

    console.log('✅ Сообщения отправлены');
  }

} catch (error) {
  console.error('❌ Ошибка работы с чатами:', error);
}

💬 Пример диалога с покупателем

👤 Покупатель
Здравствуйте! Когда придет мой заказ? Номер FBS-12345-0001-1
10:15
🏪 Продавец
Добро пожаловать! Ваш заказ передан в службу доставки. Ожидаемая дата доставки: завтра до 18:00. Трек-номер для отслеживания отправлен в SMS.
10:17
👤 Покупатель
А как ухаживать за изделием?
10:20
🏪 Продавец
Прикрепляю подробную инструкцию по уходу. Основные рекомендации: стирка при 30°C, сушка в расправленном виде.
10:22
📎 care_instructions.pdf

🤖 Система автоответов

Автоматические ответы на частые вопросы

Триггеры: "трек", "отслед"

Автоответ: Для отслеживания заказа используйте трек-номер, который был отправлен вам в SMS после отгрузки.

Триггеры: "возврат", "верну"

Автоответ: Информация о возврате товара доступна в разделе "Мои заказы" в приложении OZON. Срок возврата - 14 дней с момента получения.

Триггеры: "размер", "разме"

Автоответ: Таблица размеров представлена в описании товара. Если у вас остались вопросы по размерной сетке, уточните ваши параметры.

Триггеры: "доставк", "когда"

Автоответ: Сроки доставки зависят от вашего региона. Точная дата доставки указана в заказе. При задержках мы обязательно уведомим вас.

// Система автоответов
const autoReplySystem = async () => {
  try {
    // Получить чаты с непрочитанными сообщениями
    const unreadChats = await client.chat.getChatListV3({
      limit: 100,
      filter: {
        chat_status: 'Opened',
        unread_only: true
      }
    });

    for (const chatInfo of unreadChats.chats || []) {
      if (!chatInfo.chat?.chat_id) continue;

      // Получить последние сообщения
      const history = await client.chat.getChatHistoryV3({
        chat_id: chatInfo.chat.chat_id,
        limit: 5,
        direction: 'Backward'
      });

      const lastCustomerMessage = history.messages?.find(
        msg => msg.user?.type === 'Customer' && !msg.is_read
      );

      if (lastCustomerMessage?.data) {
        const messageText = lastCustomerMessage.data.join(' ').toLowerCase();
        let autoReply = '';

        // Определить тип вопроса и подготовить ответ
        if (messageText.includes('трек') || messageText.includes('отслед')) {
          autoReply = 'Для отслеживания заказа используйте трек-номер, который был отправлен вам в SMS после отгрузки.';
        } else if (messageText.includes('возврат') || messageText.includes('верну')) {
          autoReply = 'Информация о возврате товара доступна в разделе "Мои заказы" в приложении OZON. Срок возврата - 14 дней с момента получения.';
        } else if (messageText.includes('размер') || messageText.includes('разме')) {
          autoReply = 'Таблица размеров представлена в описании товара. Если у вас остались вопросы по размерной сетке, уточните ваши параметры.';
        } else {
          // Универсальный ответ
          autoReply = 'Благодарим за обращение! Мы получили ваше сообщение и ответим в ближайшее время. Рабочие часы: пн-пт 9:00-18:00.';
        }

        // Отправить автоответ
        await client.chat.sendMessage({
          chat_id: chatInfo.chat.chat_id,
          text: autoReply
        });

        console.log(`✅ Автоответ отправлен в чат ${chatInfo.chat.chat_id}`);
      }
    }

  } catch (error) {
    console.error('❌ Ошибка системы автоответов:', error);
  }
};

📊 Статистика чатов

8
Методов API
48ч
Время на ответ
1000
Символов в сообщении
72ч
Окно создания FBS

🚚 Ограничения по типам доставки

FBO (Fulfillment by Ozon)

Ограничения для FBO

Создание чата

Только покупатель может начать чат

Ответ продавца

В течение 48 часов с момента последнего сообщения покупателя

FBS/rFBS (Fulfillment by Seller)

Ограничения для FBS

Создание чата

В течение 72 часов после оплаты или доставки

Активная фаза

После оплаты и до 72 часов после доставки

Пассивная фаза

Только ответы на сообщения покупателя в течение 48 часов

⚠️ Важное уведомление об устаревших методах

getChatHistoryV2 будет отключен 13 июля 2025 года

getChatListV2 уже устарел, используйте v3

⚠️ Ограничения и особенности

🔐 Доступность

  • Premium Plus: все методы требуют подписку
  • Без подписки: API недоступен
  • Проверьте статус подписки

💬 Лимиты контента

  • Длина сообщения: 1-1000 символов
  • Файлы: base64, ограничения по размеру
  • Изображения: проходят модерацию
  • Статусы: PENDING → APPROVED/REJECTED

📄 Пагинация

  • Список чатов: до 1000 чатов
  • История чата: до 1000 сообщений
  • Курсор для следующей страницы
  • Forward/Backward направления

💡 Рекомендации

  • Автоматизация частых вопросов
  • Быстрые ответы для рейтинга
  • Мониторинг непрочитанных
  • Использование файлов для инструкций