On this page
What makes a bot “multi-user”
Every Telegram bot technically talks to many people. A multi-user bot is one where those people have different roles and interact with each other through the bot. A customer places a request, a staff member accepts it, a supervisor reassigns it, an admin sees everything. Each person has their own menus, their own data and their own place in a conversation.
This is where simple bots tend to break. Written as if only one conversation happens at a time, they mix up two users’ answers, lose state under load, or show one customer another customer’s details. Designing for concurrency and permissions from the start avoids all of that.
Where multi-user bots fit
- Service marketplaces — customers post a job, verified providers receive and accept it, admins handle disputes.
- Field service teams — a manufacturer’s service desk assigns repair visits to technicians who update status and upload photos from site.
- Coaching institutes — students, teachers and administrators each get their own features in one bot.
- Delivery and logistics — dispatchers assign orders, riders confirm pickup and delivery, customers see updates.
- Internal operations — a SaaS company’s support, sales and finance teams working from shared queues.
What we build in
- Role-based access control — roles such as customer, agent, supervisor and admin, each with defined permissions checked on every action.
- Per-user conversation state stored in a database, so thousands of people can be mid-flow at once without interference.
- Shared team inboxes — incoming requests go into a queue that any available team member can claim, with the claim visible to everyone else.
- Assignment and escalation rules, including reassignment when someone does not respond in time.
- Admin oversight — a dashboard covering all users, conversations and activity, with the ability to step in.
- Audit logs of who did what and when.
- Onboarding and verification for staff or partner accounts, so nobody gives themselves admin rights by typing a command.
Architecture that holds up under load
We run multi-user bots on webhooks with asynchronous frameworks — aiogram in Python or grammY in Node.js — so one slow operation does not hold up everyone else. State and data sit in PostgreSQL, with Redis for fast session data and locks, so two agents cannot claim the same request at the same moment. Heavy work such as file processing or report generation goes into a background queue. Outgoing messages pass through a sender that respects Telegram’s rate limits, so a burst of notifications does not get the bot throttled.
How the project runs
- Define every role, what each can see and do, and how work passes between them.
- Design the data model and permission rules before the chat screens.
- Build role by role, starting with the most common user.
- Build the admin dashboard and audit logging.
- Load test, fix what it reveals, then pilot with a small real group.
- Launch, monitor and hand over code and documentation.
Keeping users’ data apart
When many people share one bot, privacy has to be designed in rather than assumed. A customer must never see another customer’s request, and a provider on a marketplace should see only the jobs offered to them.
- Every data query is scoped to the user making it and checked against their role.
- Contact details can be hidden until a job is accepted, or relayed through the bot so neither side sees the other’s number.
- Files uploaded by users are stored privately and shared only with people who are part of that request.
- Admin access to personal data is itself logged.
If you operate in more than one country, we also discuss where data is stored, since privacy rules differ by jurisdiction.
Cost drivers and mistakes to avoid
Effort rises with the number of roles, the complexity of the workflow between them, the expected number of simultaneous users, integrations, and how much of the work happens in Telegram versus a web dashboard or Mini App.
- Checking permissions only in the menu. Hiding a button is not security; every action must be checked on the server.
- Storing state in memory. It fails the moment you run more than one server process.
- No locking on shared queues. Two people accepting the same job is a real, common bug.
- Skipping the dashboard. Admins need a proper view outside the chat once volumes grow.
Frequently asked questions
Can users talk to each other through the bot?
Yes. The bot can relay messages between, for example, a customer and the provider handling their request, keeping both sides’ Telegram accounts private and recording the conversation for dispute handling.
How many users can a bot handle?
A well-built bot on proper infrastructure can serve a large number of users. The practical limits usually come from Telegram’s messaging rate limits and your own systems, which is why we design the queueing and load test before launch.
Can staff and customers use the same bot?
Yes. The bot recognises each user’s role and shows them the right menus and data. Staff accounts are verified and approved by an admin.
What if a staff member leaves?
An admin removes their role and their access stops immediately. Their open work can be reassigned, and the audit log keeps the history.
Do we need a web dashboard as well?
For most multi-user bots, yes, at least for admins. Chat is great for quick actions; reporting, bulk changes and oversight are easier on a larger screen.
Talk to us about multi-user bots
Role-based access, team inboxes and per-user state for bots serving many people at once.