Home · Blog · A bot for a marketplace seller: WB and Ozon orders, stock and reviews in a messenger

A bot for a marketplace seller: WB and Ozon orders, stock and reviews in a messenger

· Command CHBT · Marketplaces, Flows

A seller on Wildberries and Ozon switches all day between two marketplace accounts, email and a messenger. You want something simple: write “orders” to a bot and get an answer on how many came in, without opening the account. In CHBT you can — with the Marketplace data action in a flow. Here is what exactly the bot can send, how to lock such a flow away from customers, what limits the marketplaces impose and how notifications complement it.

What a seller’s service bot is

A regular bot in CHBT talks to customers. A service bot talks to you and your team: it answers short commands with your store’s data. It is built in the same builder, from the same blocks, and can live in the same bot as the customer one or in a separate one.

The data source is a Wildberries or Ozon store connected in the Marketplaces section. Data gets into a flow through the Marketplace data action: it asks the marketplace and writes a short text answer into a variable, which you can then insert into a Message.

What you can request:

  • Orders — how many new orders.
  • Stock — stock by product.
  • Reviews — fresh unanswered reviews.

Customer questions are not requested by this action. You also cannot answer a customer or assemble an order from the bot — that is done in the marketplace account.

What exactly the bot sends

RequestWildberriesOzon
Orders“New orders: N” — created in the last 3 days, without cancellations“New orders: N” — unprocessed FBS postings
Stock“No stock found.” — WB stock is not read via the API yetUp to 15 lines: article number and warehouse data as Ozon returns them
ReviewsUp to 10 lines “★rating: start of text”Up to 10 lines “★rating: start of text”

If there is nothing new, the bot answers “No new orders.” or “No new reviews.”. If the marketplace did not respond, the variable gets “Could not get marketplace data.”. A review text is cut to 120 characters — it is a signal “time to look into the account”, not a replacement for it.

Order contents, amounts and addresses are not shown in this answer: only the number. Details are in the marketplace account or the email digest.

How to build the flow in five minutes

  1. Connect the store in the Marketplaces section — with a Wildberries API key or with Ozon’s Client-Id and Api-Key.
  2. In Flows, create a new flow with a Keyword trigger, for example orders.
  3. Add an Action block → Marketplace data. Choose the marketplace, in What to request — Orders, leave Save to variable as mp_result.
  4. Then a Message: Wildberries: {{mp_result}}.
  5. Repeat for the stock and reviews commands — one flow per command or one flow with buttons.

A convenient option is a menu: on the word store the bot sends a Message with the buttons “WB orders”, “Ozon orders”, “Reviews”, and each button leads to its own action. Then nobody has to remember commands.

The action is available both in the Steps editor and on the Canvas, and it is not limited by plan.

Lock the flow away from customers

The main mistake is to put a service flow into the customer bot without protection. Anyone can type the keyword, and a stranger gets the number of your orders or the texts of reviews. So:

  1. Open Contacts, find yourself and your staff and add a tag in the Tags field, for example team.
  2. Right after the trigger, add a Condition: field Tag, operator is set, value team.
  3. Lead the branch with the tag to Marketplace data. Lead the Otherwise branch to a regular answer, as if there were no command, or to the customer menu.

Even more reliable is a separate bot: create a second bot in Telegram or MAX just for the team and connect it in Channels. Then the customer bot knows nothing about service commands. Keep the tag condition there too: a bot link can be forwarded.

Marketplace limits: why the bot sometimes “cannot”

Data comes from the marketplace at the moment of the request, and marketplaces limit frequency. Wildberries with a Basic key is especially strict:

  • Orders — 1 request every 3 hours.
  • Reviews and questions — 5 requests an hour for both parts.

These limits are shared by all CHBT requests to your store: background polling every 10 minutes spends them too. If the slot is taken, the action waits no longer than 2 seconds and answers “Could not get marketplace data.”. That is why with a Basic key the “orders” command for Wildberries usually fails — the number of new orders is more reliably taken from notifications and the email digest, while the bot is better used for reviews.

Ozon has no such strict limits in CHBT, but the marketplace may give reviews via the API only with a Premium Plus subscription. Without it, a reviews request returns an error, while orders and stock keep working.

Several stores on one marketplace

In the Marketplace data block you choose a marketplace, not a specific store. If you have one Wildberries store, there is no question. If there are two or more, the action takes the one marked Main on the Marketplaces page. You make a store main with the Set as main button on its card.

Without a main store the bot will not guess, it answers “No store selected: specify it in the flow block.”. This is deliberate: showing another store’s data is worse than showing nothing.

To tell stores apart in the list, give them clear names when connecting — for example “Clothing” and “Accessories”. A report on the second store cannot be obtained from the bot for now: there is one main store per marketplace.

Notifications: so you do not have to ask

A command on request is good when you want to know right now. But it is more convenient to learn about new orders without asking:

  • Notifications in a messenger. In the bot → Notifications → Invite recipient: choose the notifier bot, create a link and send it to a colleague. The link is single-use and valid for 7 days. Turn on the WB orders type for the recipient — and they will get a message when new Wildberries orders arrive. There is no such message for Ozon or for reviews.
  • The email digest. When a poll finds new orders, reviews or questions, the project owner and admins get an email with examples — for Wildberries and for Ozon.

Together this works as a set: the notifier reports WB orders, the email sends a digest for both marketplaces, and the service bot answers a specific question. More on orders — in the article on Wildberries order notifications.

How to test the flow

In Check flow the Marketplace data action is not run: the test chat does not call marketplace APIs, so as not to spend your limit. The variable stays empty, and you will see a message like “Wildberries: ” without a number. That is normal — the test chat checks branches and conditions, not data.

Do a real check from a messenger: send the command from an account that has the team tag in Contacts, and then from another account without the tag — the second should get the regular answer. If the first got “No store selected”, mark a main store. If “Could not get marketplace data” — wait: most likely the marketplace limit is taken.

Ideas for service commands

  • “Morning” — one flow with two actions in a row: Ozon orders and Wildberries reviews into different variables, then one Message with a summary. Each action writes into its own variable — give them different names, for example ozon_orders and wb_reviews.
  • “Stock” for Ozon before the weekend, to order a shipment in time.
  • “Reviews” after a new batch — to quickly see whether there is a wave of complaints.
  • Handing over to a manager: after the summary — a “Sort it out” button that runs Notify an operator with the text “Reviews need answers”.

Keep commands short and unambiguous: in a customer bot, the keyword “orders” may also be typed by a customer asking about their own order. In Exact match mode the flow fires only on the whole message “orders”, not on the phrase “where are my orders”.

Wildberries and Ozon in one bot

If you sell on both marketplaces, connect both stores in one bot: in the Marketplaces section each will have its own card, key and counters. In a flow the marketplace is chosen in each action separately, so one command can collect data from both:

  1. Action → Marketplace data: Ozon, Orders, into the variable ozon_orders.
  2. Another action in the same block: Wildberries, Reviews, into the variable wb_reviews.
  3. Message: Ozon: {{ozon_orders}} and below it WB reviews: {{wb_reviews}}.

If one marketplace did not respond, the other still comes through: each action writes its own variable independently. One marketplace’s error turns into the line “Could not get marketplace data.” only in its own part of the message.

What a service bot will not replace

  • The marketplace account. Answers to reviews and questions, assembly and shipping, disputes and returns happen there. CHBT only shows that something new appeared.
  • Sales analytics. The bot counts new orders, not revenue, margin or buyout rate.
  • Correspondence with a customer inside the marketplace. CHBT has no marketplace chats for any of them.

But a service bot has what the accounts lack: it lives where you already talk to your team, works with both marketplaces at once and answers in seconds, if the marketplace limit allows.

More on the blog