Telegram-бот для продавца Ozon: какие уведомления нужны и как собрать своего за вечер

Какие события из Ozon Seller стоит выводить в Telegram, а какие превращают чат в свалку. Сравнение готового бота с самописным по деньгам, рискам и потолку возможностей, схема на вебхуках из четырёх частей и порядок сборки своего бота за один вечер.

Кабинет Ozon Seller не умеет тыкать в плечо. Письма тонут в почте, пуши в приложении вы отключили на третий день, потому что их приходило по сорок штук. А узнавать про ноль остатка по главному товару или про выгоревший к обеду рекламный бюджет надо в течение часа, а не вечером. Telegram для этого подходит лучше почты: он и так открыт, сообщение читается за секунду, в чат можно посадить напарника и сборщика заказов. Ниже — какие события реально стоит выводить в чат, чем готовый бот отличается от своего, как выглядит схема на вебхуках и что из этого собирается за один вечер.

Почему Telegram, а не почта и приложение

Почта хороша для документов и претензий, где важен след и срок в несколько дней. Для событий, на которые надо реагировать за час, она мертва: письмо от Ozon падает в тот же ящик, где лежат рассылки, и вы видите его вечером. Пуш в приложении Ozon Seller быстрый, но неуправляемый — вы не решаете, что важно, и не можете отфильтровать шум, поэтому уведомления или включены целиком, или выключены целиком.

Telegram снимает обе проблемы: вы сами решаете, что превращается в сообщение, и сами задаёте формат. Плюс три вещи, которых нет ни у почты, ни у приложения. Первая — общий чат: в него добавляется сборщик, бухгалтер, менеджер, и все видят одно и то же событие одновременно. Вторая — темы в супергруппе: заказы в одну ветку, реклама в другую, остатки в третью, и человек читает только свою. Третья — кнопки под сообщением: «собрано», «напомнить через час», «показать карточку» — реакция прямо из чата, без захода в кабинет.

Опрос

Как вы сейчас узнаёте о важных событиях в магазине?

Распределение для этой статьи · выберите свой ответ

Какие события выводить: правило одного действия

Главное правило, которое сэкономит вам неделю переделок: сообщение отправляется только тогда, когда у читателя есть действие в ответ. Не «для информации», не «чтобы держать руку на пульсе» — только действие. Если на событие вы ничего не делаете, оно идёт в отчёт, а не в чат. Проверяется просто: напишите рядом с каждым типом уведомления, что человек сделает, получив его. Не пишется ответ — вычёркивайте.

Событие Откуда берём Насколько срочно Что делаете в ответ
Новый заказ FBS Push от Ozon Секунды Собираете и готовите к отгрузке
До конца сборки меньше 2 часов Свой таймер по отправлению Минуты Бросаете всё и везёте в ПВЗ
Остаток по товару группы A ниже недельного запаса Опрос API раз в 15–30 минут Часы Ставите поставку или поднимаете цену
Дневной бюджет кампании выгорел Опрос Performance API раз в час Часы Решаете, доливать или ждать завтра
Отзыв на 1–2 звезды Опрос API раз в час Сутки Отвечаете, при браке заводите обращение
Претензия, штраф, ограничение карточки Опрос API плюс письма Сутки Читаете срок ответа и отвечаете в него
Поставка сменила статус на приёмке Опрос API раз в час Сутки Проверяете расхождения по количеству

Третья колонка важнее остальных — из неё растёт вся архитектура. Первые две строки требуют мгновенной доставки и отдельного звука. Остальное спокойно собирается в дайджест раз в полчаса: пять строк одним сообщением читаются лучше, чем пять сообщений подряд, и не приучают глаз пролистывать чат.

Одна оговорка про источники. Не каждый метод Seller API открыт всем подряд: часть, включая работу с отзывами, Ozon привязывает к платной подписке продавца, и состав таких методов периодически меняется. Прежде чем закладывать строку таблицы в бота, проверьте доступность метода для своего аккаунта в базе знаний Ozon Seller — иначе напишете обработчик под 403.

Готовый бот или свой: цена, риски и потолок

Готовых ботов под Ozon в каталогах хватает, и для старта это разумный вариант: десять минут на подключение против вечера работы. Но у них общий принцип — вы отдаёте свой API-ключ третьей стороне и получаете фиксированный набор уведомлений в чужом формате.

Критерий Готовый бот Свой бот
Запуск 10–20 минут 3–6 часов на первую версию
Стоимость От бесплатного тарифа до ~1000–1500 ₽ в месяц VPS от ~150–400 ₽ в месяц
Набор событий Что предусмотрел автор Любое, что отдаёт API
Формат сообщений Чужой, часто с рекламой Ваш: артикул, остаток, маржа в одной строке
Кнопки и действия Обычно нет Любые, вплоть до смены цены
API-ключ Уезжает на чужой сервер Остаётся у вас
Несколько магазинов Часто за отдельную плату Бесплатно, отличаются префиксом
Сломалось после обновления API Ждёте автора Чините сами в тот же день

Честный вывод: если вам нужны только новые заказы и остатки, а разработчика в команде нет — берите готовый и не тратьте вечер. Свой имеет смысл в двух случаях: когда нужны события, которых нет в чужом списке (маржа по конкретному SKU, свои пороги по ДРР, склейка с 1С), и когда отдавать ключ наружу нельзя по принципиальным соображениям. Промежуточный вариант — сервис аналитики со своими алертами: например, Starbox AI считает прибыль по товарам и следит за рекламой, остатками и поставками, так что часть уведомлений закрывается без кода.

Схема на вебхуках: четыре части и одна очередь

Рабочая схема состоит из четырёх кусков, и её полезно нарисовать до первой строчки кода.

  1. Приёмник push от Ozon. HTTPS-адрес, который вы прописываете в настройках API в кабинете; площадка стучится туда сама при событиях по отправлениям и сообщениях в чатах с покупателями. Требования жёсткие — публичный домен, сертификат от доверенного центра, никакого самоподписанного, и обязательный корректный ответ на каждый запрос. Точный перечень типов событий и формат ответа проверьте в документации Ozon Seller API: список пополняется.
  2. Опросчик по расписанию. Всё, чего в push нет — остатки, отзывы, реклама, возвраты, выплаты, — забирается обычными запросами к API по cron. Рекламные метрики живут в отдельном Performance API со своей авторизацией, это отдельный клиент, а не тот же ключ.
  3. Очередь и состояние. Между источниками и Telegram обязательно ставьте хранилище: таблица «событие — хэш — время отправки». Без неё вы получите повторы (push приходит дважды) и потери (Telegram ответил 429, сообщение умерло). Хэш события — ключ дедупликации, он же спасает при перезапуске сервиса.
  4. Отправитель в Telegram. Метод sendMessage Bot API: токен от @BotFather, chat_id вашего чата, текст с разметкой. Для некритичного ставьте disable_notification, для тем в супергруппе — message_thread_id. Помните про лимиты: около 30 сообщений в секунду суммарно и порядка 20 в минуту в одну группу, выше — ответ 429 с полем retry_after, которое надо уважать, а не игнорировать.

Ключевая мысль — очередь. Соблазн отправлять в Telegram прямо из обработчика push велик, но именно так теряются заказы: Ozon ждёт ответ считаные секунды (точный таймаут и формат ответа смотрите в документации Ozon Seller API), а вы в это время стоите в ретраях Telegram. Приёмник должен только записать событие и ответить, остальное делает отдельный воркер.

Чек-лист

Что подготовить до сборки бота

Сборка за вечер: семь шагов

Первая рабочая версия занимает 3–6 часов, если не отвлекаться на красоту. Порядок такой.

Создайте бота у @BotFather командой /newbot — получите токен вида 1234567:AA.... Дальше заведите группу, добавьте туда бота и отправьте в чат /start@имя_бота. Именно с упоминанием: у ботов по умолчанию включён privacy mode, обычные сообщения группы до них не доходят, и getUpdates вернёт пустой список — на этом месте половина людей полчаса думает, что сломала токен. Из ответа getUpdates заберите chat_id: у супергрупп он отрицательный и начинается с -100, это нормально. В личной переписке бот первым не напишет — человек сначала сам жмёт Start; в группе достаточно того, что бота туда добавили.

Третий шаг — самый скучный и самый полезный: захардкодьте одно сообщение «тест» и добейтесь, чтобы оно долетело. Четвёртый — опросчик остатков: один запрос к API, сравнение с порогом, отправка. Уже на этом месте бот приносит пользу, а дальше идёт наращивание. Пятый шаг — приёмник push и мгновенные заказы. Шестой — дедупликация через хэш и хранилище. Седьмой — форматирование: артикул, название до 40 символов, цифра, ссылка на карточку. Хорошее сообщение читается с экрана блокировки целиком.

Отдельно про текст. Не пишите «Изменился остаток товара». Пишите «Остаток 4 шт., хватит на 2 дня — артикул 10432, кружка синяя». Первая строка должна отвечать на вопрос «что горит», остальное — подробности.

Проверьте себя

Приёмник push получил событие о новом заказе, но Telegram ответил 429 и попросил подождать 12 секунд. Что должен сделать сервис?

Разбор: как мы собирали бота на три магазина

Первую версию мы написали за вечер и чуть не выбросили на второй день. Логика была наивной: слать в чат каждое изменение статуса отправления. За первые сутки бот прислал около 400 сообщений на три магазина, чат замьютили к обеду, и он превратился в ровно то, от чего мы уходили.

Переделка заняла ещё три часа и свелась к двум правилам. Мгновенно уходят только четыре типа событий: новый заказ FBS, дедлайн сборки ближе двух часов, ноль остатка по товару из группы A и отзыв на одну звезду. Последний в таблице выше стоит сутками, и это не опечатка — мы подняли его в мгновенные осознанно: ответ в первый час у нас заметно чаще заканчивался правкой оценки, чем ответ на следующий день. Всё остальное копится и уходит дайджестом в 10:00, 14:00 и 18:00. Те же примерно 400 сырых событий в сутки превращаются в 12–15 сообщений, и их читают, а не пролистывают.

Цифры итоговой конструкции: VPS за 190 ₽ в месяц, примерно 300 строк на Python, задержка от заказа до сообщения в чате 5–9 секунд против 7–8 минут на прежнем опросе раз в 15 минут. Три магазина живут в одной супергруппе с тремя темами, префикс в первой строке — эмодзи и короткое имя магазина. Самая полезная мелочь оказалась неочевидной: кнопка «собрано» под заказом, которая гасит будущее напоминание о дедлайне. После неё просрочки сборки у нас ушли в ноль за месяц.

Антиспам: чтобы чат не стал вторым мусорным

Бот умирает не от ошибок, а от громкости. Пять приёмов, которые держат его живым:

  • Пороги, а не факты. Не «остаток изменился», а «остатка хватит меньше чем на N дней». Порог — число в конфиге, которое вы меняете по сезону.
  • Склейка по объекту. Пять событий по одному отправлению за минуту — это одно сообщение, а не пять. Ключ склейки — номер отправления или артикул.
  • Тихие часы. С 22:00 до 8:00 всё, кроме дедлайна сборки, копится и приходит утром одним сообщением.
  • Повтор вместо потока. Если проблема не решена, лучше напомнить о ней раз в четыре часа, чем слать новое сообщение при каждой проверке.
  • Право на отключение. Команда вроде /mute 2h у любого в чате: если человек не может её выключить, он замьютит весь чат целиком, и вы потеряете и срочное.

И обратный приём: раз в неделю смотрите в историю чата и ищите сообщения, на которые никто не отреагировал ни разу. Это кандидаты на удаление из бота — они только приучают глаз пропускать.

Безопасность: ключ, чат и кто в нём сидит

Токен бота и API-ключ Ozon — это доступ, а не настройка. Держите их в переменных окружения, а не в коде и не в репозитории. Для бота выпускайте отдельный ключ с минимально нужными правами: если он только читает и шлёт сообщения, права на изменение цен ему не нужны. Ключ засветился в чате или в скриншоте — отзывайте и перевыпускайте, это делается в кабинете за минуту.

Чат делайте закрытым: приватная группа, вступление только по приглашению, ссылка не гуляет по переписке. Проверьте, кто в нём остался после увольнений — сообщения с оборотами, ценами и артикулами уходят всем участникам. И последнее: отключите пересылку сообщений из чата, если в них попадают персональные данные покупателей. Номер телефона и адрес в Telegram выводить не нужно — достаточно номера отправления, а остальное человек посмотрит в кабинете.

FAQ

Есть ли официальный Telegram-бот Ozon для продавцов?

Официального бота с уведомлениями о заказах у площадки нет — есть приложение Ozon Seller с пушами и письма на почту. Всё, что приходит в Telegram, делается либо сторонними сервисами, либо своим ботом на API. Актуальный список официальных каналов проверьте в базе знаний Ozon Seller, чтобы не подключить чужой бот под видом площадки.

Как сделать телеграм-бота для Ozon без программиста?

Реально только через готовые решения: сервисы аналитики со встроенными алертами или боты из каталогов, где вы вставляете Client-Id и API-ключ и выбираете события галочками. Конструкторы автоматизаций тоже подходят, если умеют ходить в произвольный HTTP API. Своя сборка требует минимального кода — обойтись совсем без разработчика не выйдет.

Что нужно, чтобы бот присылал новые заказы за секунды?

Три вещи: HTTPS-адрес с валидным сертификатом, прописанный в кабинете как адрес для push-уведомлений, приёмник, который корректно отвечает Ozon на каждый запрос, и отдельный процесс отправки в Telegram. Без push бот будет опрашивать API по расписанию, и средняя задержка станет равна половине интервала опроса.

Безопасно ли давать стороннему боту API-ключ Ozon?

Ключ даёт доступ к данным магазина и части операций, поэтому выпускайте его отдельным, с минимальными правами, и отдавайте только сервису, за который готовы отвечать. Методов вывода денег и смены реквизитов в Seller API нет, а вот выгрузить обороты, цены и всю товарную базу по ключу можно целиком. Точный набор прав смотрите прямо при выпуске ключа в кабинете — состав меняется. При малейшем сомнении ключ отзывается и перевыпускается там же, за минуту.

Сколько стоит держать своего бота?

Сам Telegram Bot API бесплатный, платите вы только за сервер: самый простой VPS под такую задачу стоит порядка 150–400 ₽ в месяц, и его хватает на несколько магазинов. Плюс разовые 3–6 часов на первую версию и примерно час в квартал на правки, когда меняются методы API.

Статья была полезна?

Вы развиваете магазин. ИИ разбирается с рутиной.

Поручите Starbox AI поиск потерь в прибыли, проверку рекламы и планирование запасов. Задавайте вопросы в чате и получайте рекомендации по своему магазину. Попробуйте ИИ-менеджера для Ozon 14 дней бесплатно, без карты.

Попробовать ИИ-менеджера бесплатно