← Catalog
1-lab Case · Electronics store selling through a Telegram channel

Telegram bot · Price list and inventory · Inventory system integration

A price list in a Telegram channel that updates itself.

An electronics store sells through a private Telegram channel and buys from a supplier who posts prices in the same messenger. The bot reads the supplier's prices and the stock levels from the inventory system, applies the markup, and keeps the "in stock" post up to date on its own. The owner logs stock in and out right in Telegram.

Who it's for
Retail selling via messengers
Time to launch
10 days
Left to a human
the markup and the Publish button
Task

The owner recalculated the price list by hand every day while the supplier changed prices several times a day

Solution

A bot reads supplier prices and stock levels from the inventory system, applies the markup and updates the 'in stock' post on its own

Result

No manual recalculation: a new supplier price reaches the channel in 90 seconds, sold items vanish in minutes, 74% of items matched automatically

By the numbers

0
Manual price recalculations
the owner no longer rewrites the post every day; the bot does it
90s
To a new price in the channel
the supplier changes a price; customers already see the new one
2min
Sold items leave the list
customers don't ask about items that are already gone
74%
Items matched with no humans
the rest takes one reply to the bot's question in Telegram

Problem

Why the price list always lagged behind reality.

  • The price list was built by hand. Every day the owner rewrote the "in stock" post: took the supplier's price, added the markup, removed sold items.
  • The supplier edits prices several times a day. About 40 posts with wholesale prices in a private channel, and every edit meant recalculating by hand.
  • Outdated prices and sold items in the price list. A client asks about an item that's already gone, or at a price that has already changed.
  • Inventory and the price list lived apart. Stock levels in the inventory system, prices in the owner's head, the post in Telegram. Three sources, none of them the master.
  • The supplier's names and inventory names don't match: "iPhone 17 Pro 256 Silver" in one and "Iphone 17 pro 256gb silver eSIM" in the other. Matching them by eye means making mistakes.

How it works

Five steps from a supplier post to the price list in the channel.

  1. The bot reads the supplier's prices

    The channel is private, and the Bot API can't read its history. So the bot catches every new post and every edit and stores the latest version. The posts are compiled into a catalog: 1,261 items across 40 posts.

  2. Checks against the inventory system

    Every 90 seconds, the bot pulls stock levels for the "in stock" warehouse and compares them with the last snapshot: what appeared, what ran out, what was renamed. The "to order" transit warehouse stays out of the price list.

  3. Matches items

    A structured key (model, color, storage, SIM, strap) plus fuzzy matching. A clear match is linked automatically. An ambiguous one goes to the owner as a question with answer options right in Telegram.

  4. Calculates the price

    The markup is looked up along a chain: specific item → model → category. Price = supplier price + markup, rounded to the nearest hundred. If there's no markup, the bot asks and remembers the answer for the item, the model or the whole category.

  5. Updates the price list in the channel

    The /run command shows a preview and a report: what was updated, what has no fresh price, what is waiting for an answer. Publishing happens only on a button press. After that, the bot edits the channel post on its own whenever stock levels change.

Features

What the bot can do.

Stock in and out from Telegram

The owner logs receipts and sales right in the bot. The record goes to the inventory system immediately, and the price list in the channel is redrawn. Inventory is managed without leaving the messenger.

Automatic item matching

35 of 47 warehouse items are linked to the supplier catalog with no human involvement. Links rely on the product ID, not the name, so renaming a product card breaks nothing.

Three-level markups

Item, model, category. Changed with the /margins command or from the product card. 12 categories were carried over from the old manual scheme.

No fresh price, no empty price list

If the supplier didn't post an item today, the last known price stays, flagged in the report. Without this, the morning post would lose 30 of 53 items.

Item card

From the /stock command: change the link or markup, set a manual price, rename, hide from the price list. Each item's status is shown with an icon.

Protection against duplicates and empty posts

One active post in the channel. An empty price list is never published, and a repeat edit with no changes isn't treated as an error.

Self-monitoring

A /status command, an hourly heartbeat in the log, one alert if the inventory system is unavailable for more than 10 minutes and one when it recovers. No spam.

Roles and audit log

Owners and users are stored in the database; the bot silently ignores anyone else. Every action is logged. Access is managed with the /users, /adduser, /deluser commands.

Economics

Before and after in one table.

What changesBeforeAfter
Price list updates manual, once a day automatic on every change
Response to a supplier price edit whenever the owner notices next cycle, within 90 seconds
Sold items in the price list stay until edited by hand disappear within a couple of minutes
Item matching from memory and by eye 74% automatic, the rest as a question in the bot
Source of truth the channel post the inventory system; the post only displays it
What's left for a human

Answer a question about a new item, set a markup, press "Publish". The bot handles everything else: reading prices, checking stock levels, recalculating and editing the post.

Who it's for

Where the solution works.

Anywhere the product range and prices change daily, goods come from a supplier with fluctuating prices, and clients check the price list in a messenger.

Electronics and gadget stores Sales through Telegram channels Resale with fluctuating purchase prices Cloud inventory system users Small retailers without an IT team Wholesalers with a price list in a messenger

What makes it different

Why this isn't a "posting script".

The post isn't the source of truth

The first version was built around the channel post. It turned out the Bot API doesn't report edits to the bot's own posts. We rebuilt it: the source is inventory, and the post just displays it.

Matching without a language model

Names are compared with a structured key and fuzzy search. The result is predictable, works offline and never invents matches. A human resolves ambiguous cases with one button.

Publishing only on a button press

The bot posts nothing to the channel until the owner approves the preview. Automatic edits only touch a post that's already published.

We'll build a bot for your inventory and channel in 2 weeks.

Free audit: in 30 minutes, we'll map where your prices and stock levels come from and which price list tasks you can stop doing by hand.

Quiz · 6 questions · 1 minute

Phone only or messenger only is fine. We reply within a day, no spam or newsletters.

Or right away: Telegram · @one_lab_support →  ·  hello@1-lab.dev

1-lab · Telegram price list bot with inventory system sync case The client's name is anonymized. Figures are actual, taken from the solution's logs.