Four things set the timeline: the number of user journeys, whether payments are involved, how many external integrations there are, and whether a Mini App with its own front end is in scope. A button-driven bot that captures enquiries and has an admin panel is a matter of weeks; a shop with a catalogue, checkout, order states and stock is considerably more. The most underestimated item on the schedule is not on our side at all: merchant onboarding with Payme or Click requires a contract and a review, and that step routinely runs longer than the technical integration itself. We start it on day one, in parallel with development, so it does not become the handbrake at the finish.
Telegram bot and Mini App development
In Uzbekistan, Telegram stopped being a messenger a long time ago — it is a shopfront, a till and a support desk in one. We build bots and Mini Apps that take orders, collect payment through Payme and Click, push data into your CRM and do not fall over on the first mass broadcast. Telegram bot development is one of the areas where i7 Team owns both the code and the server it runs on.
Talk to usA bot, a Mini App, or both
The difference is structural, not cosmetic. A bot is a conversation: commands, buttons, states. It is cheap, quick to ship, works on any handset and asks nothing of the customer beyond the Telegram they already have. A Mini App is a full web application living inside the messenger — its own interface, a catalogue with filters, a basket, a map, a personal account — opening instantly, with no install and no trip to an outside website.
The rule we apply in the first meeting: if the whole journey fits into seven to ten screens of buttons, build a bot. If it needs catalogue filters, a booking calendar, a map or a long form, build a Mini App. Most often the answer is both — the bot handles sign-in, notifications and reminders, the Mini App handles the shopfront and the payment.
- Shop: catalogue, basket, payment, order status, courier notification
- Booking: clinics, barbershops, garages — calendar, slots, reminders
- Support: triage of incoming questions and handover to a human agent
- Notifications: new enquiry, new lead, failed payment, low stock
- Internal bots: IT tickets, approvals, reports, visitor passes
- A Mini App shopfront with checkout, without leaving Telegram
Payments inside Telegram: Payme, Click and Telegram Stars
For physical goods and services the route is familiar: the provider is connected in @BotFather, the bot receives a provider_token, the invoice goes out via sendInvoice, and the money lands in the merchant's account in som. Telegram itself charges no commission on the Payments API — you pay the provider only. Sometimes we deliberately take a different route and generate a Payme or Click checkout link delivered as a button. It costs one extra tap, but refunds, reconciliation and instalments stay inside the merchant dashboard, where your finance team already knows how to work.
Digital goods follow a completely different rule, and in Tashkent people usually discover it after launch. Since Bot API 7.4, anything sold inside a bot as digital — course access, a subscription, paid content — must be transacted in Telegram Stars: currency XTR, provider_token left empty. Payme and Click cannot be attached to that flow at all. On top of that, if the same course is sold on your website, Telegram requires it to be purchasable for Stars as well — a direct consequence of App Store rule 3.1.3(b). Stars are withdrawn through Fragment, which gives the model its own economics and its own currency exposure. That belongs in the unit economics before the first line of code, not after.
Integrations — where a bot stops being a toy
A bot with no integrations is a handsome contact form, and people stop using it within a month. Value appears when an order placed in Telegram becomes a deal in the CRM, a document in 1C and a task assigned to a named manager. We tie a Telegram user to a record in your system through a deep link of the form t.me/yourbot?start=payload — far more reliable than asking a customer to type an order number.
One constraint is worth understanding before anyone signs. Telegram does not let a bot message first: until the person taps Start or opens a deep link, no chat_id exists and there is nowhere to send the notification. Which means the brief "we will broadcast to our phone database" is impossible in principle, at any budget. There is exactly one workable pattern — capture the subscription at the moment the customer is already present: a QR code on the receipt, a button on the site, a link in the SMS that follows an order.
- amoCRM and Bitrix24 — via webhooks and the open API
- 1C — via HTTP services or OData
- Payme and Click — invoicing and transaction status
- Google Sheets — when there is no CRM yet but order is needed now
- IP telephony on Asterisk and compatible PBXs
- In-house systems — over REST, where documentation exists
The Telegram limits that shape the architecture
Telegram caps throughput hard: no more than one message per second into a single chat, roughly 20 messages per minute into a group, and around 30 messages per second across an entire broadcast. The arithmetic that follows is simple and unwelcome — a list of 50,000 subscribers at 30 messages per second takes about 28 minutes to clear, and that is the ideal case with no retries. So a broadcast, in our builds, is always a prioritised queue with proper handling of the 429 response, never a loop over a list of recipients. Where higher throughput is genuinely required, paid broadcasts are enabled in @BotFather — up to 1,000 messages per second, with every message beyond the free thirty costing 0.1 Stars.
The remaining limits look like footnotes right up to the moment they collide with a finished scenario. We raise them during design, not at handover.
- A bot can delete its own message only within 48 hours — any "recall the promo" scenario must be designed for in advance
- In a group with privacy mode on, a bot sees only commands addressed to it; turning it off changes both privacy and load
- Webhooks require HTTPS on port 443, 80, 88 or 8443 — on cheap shared hosting this is usually the blocker
- From 20 July 2026, Mini App methods only work from the app's original domain: moving to another origin means rebuilding
- The Bot API ships several times a year (10.0 in May, 10.1 in June, 10.2 in July 2026) and libraries do not always keep pace
Stack, process, and what a web studio will not do
We write bots in Python with aiogram 3 or in Node.js, keep data in PostgreSQL, hold dialogue state and broadcast queues in Redis, package everything in Docker and run it over webhooks behind nginx. Deployment goes to your server or ours, your choice. We build an admin panel every time, even on small projects: a bot where no member of staff can change a price, a text or a schedule is dead within a month.
And there is one thing no web studio in Tashkent will offer. i7 Team does both software and infrastructure — networks, access control, CCTV, point-of-sale. So our bots talk to more than a CRM; they talk to hardware. Open a turnstile for an employee at the tap of a button, push a camera snapshot on an alarm, return the day's takings straight from the till system. That seam normally sits between two contractors and one argument about whose responsibility it is. Here there is one contractor.
- Source repository and deployment instructions handed to you
- Admin panel for content, prices, schedules and broadcasts
- Localisation in Russian, Uzbek and English, chosen at /start
- Monitoring on webhook errors, queue depth and 429 responses
- Formal handover of bot ownership with an access check
Common questions
The number of journeys — every branch of a dialogue means screens, copy, states, error handling and tests. The integrations — every external system is a separate data contract plus separate logic for when that system is unavailable. Whether a Mini App is needed, which is effectively a second product with its own front end. And the number of interface languages. Infrastructure and support are costed as a separate line. We quote after a short working session on the scenarios; any figure named before that would be invented.
A Telegram account from which the bot will be created in @BotFather — ideally a corporate one rather than an employee's personal number, and with two-step verification switched on. Then: a description of the journeys, or at minimum a list of what the bot must be able to do; content — catalogue, prices, copy, photography; CRM access; a contract with Payme or Click if you need payments; and a domain for the Mini App if one is in scope. If the scenarios are not written down yet, we help assemble them — that is a normal part of the work, not a reason to delay.
You do. The @username and the token live in your Telegram account: we work with the bot you created and we do not hold it. Source is delivered into your repository along with deployment instructions and a description of the environment variables. This is practice, not legal decoration. The single most common mess we are called in to untangle is a working bot created years ago from the personal number of a marketing manager who has since left, which nobody can access any more. A bot in that state cannot be recovered, only rebuilt.
Yes, and the decision belongs at the start. Multilingual support in a bot is not just message text: it covers button labels, inline keyboards, callback payloads, date and currency formats, notification templates and the emails to administrators. Localisation designed in from day one costs little. Localisation added six months later means auditing every screen and every keyboard. We normally ask for the language at /start, remember the choice, and leave the user free to change it at any point.
The Bot API changes several times a year, libraries follow, and individual methods are deprecated and eventually stop working. An unsupported bot does not fail overnight, but it does degrade. We put monitoring on webhook errors, broadcast queue depth and 429 responses from Telegram, so we hear about a problem before your customer writes in about it. After that it is your call: ad-hoc changes on request, or a support arrangement with an agreed response time. If we did not build the bot, we start by reading the code and checking the access, then tell you honestly whether repairing or rewriting is cheaper.
Related services
- Website and web platform developmentWe build websites and web platforms in Tashkent: Next.js, 1C and Click/Payme integrations, and the network underneath. Your code, your accounts.
- Mobile app development in TashkentNative iOS and Android apps and Flutter builds: App Store and Google Play release, Payme, Click and Uzum payments. Engineered in Tashkent.
- AI and machine learning, deployedLLM assistants, RAG over your own documents, computer vision and forecasting — deployed on your data and measured, not demoed.
Tell us what the bot needs to do
Describe the job in two paragraphs — or simply send us a link to a competitor's bot you like. We will work through the journeys, give you a timeline, and tell you plainly where Telegram will get in your way and where the job is easier than it looks. Tashkent, info@i7team.uz, +998 77 372 21 12.
Talk to us





