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.
The owner recalculated the price list by hand every day while the supplier changed prices several times a day
A bot reads supplier prices and stock levels from the inventory system, applies the markup and updates the 'in stock' post on its own
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
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.
-
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.
-
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.
-
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.
-
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.
-
Updates the price list in the channel
The
/runcommand 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 changes | Before | After |
|---|---|---|
| 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 |
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.
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
Or right away: Telegram · @one_lab_support → · hello@1-lab.dev