What it means
For most of Telegram's history there were exactly two ways to automate a conversation. You could build a bot, which had its own identity and could never speak as a person. Or you could run a userbot, which spoke as a person by logging into their account with a session, and carried every risk that implies.
Telegram Business added a third option. A Business account, which is a Premium user account with the Business feature set enabled, can connect a bot to its own private chats. The bot then reads those conversations and replies in them, and the replies go out under the person's own name rather than the bot's.
The link between the two is the business connection. Telegram issues it a string identifier, delivers it to the bot as an update, and the bot carries that business_connection_id on every call it makes on the account's behalf. No session, no phone number, no login code, and nothing the bot can keep using after the owner revokes it.
How it is set up
The flow belongs entirely to the account owner, which is the point. In Telegram, they open Settings, then Telegram Business, then Chatbots, and enter the bot's username. During that step they also choose the scope: all chats, all except a chosen few, or only a chosen few, and whether existing conversations are included or only new ones.
The moment they confirm, the bot receives a business_connection update carrying the connection id, the user it belongs to, a user_chat_id the bot can use to message the owner directly, an is_enabled flag and the rights granted. Storing that payload is the whole onboarding step: there is nothing to verify, no OAuth round trip and no credential to protect.
The four updates
Business traffic arrives on its own update types, separate from ordinary bot updates, which means an existing bot does not accidentally start receiving somebody's private conversations.
business_connection: created, enabled, disabled, or rights changed. This is your connection lifecycle.business_message: a new message in a connected private chat.edited_business_message: an edit.deleted_business_messages: deletions.
One detail matters enormously for CRM work and is easy to miss: messages the owner sends themselves also arrive as business_message updates. The bot therefore sees both halves of every conversation, not just the inbound half. That is what makes it possible to build a genuine thread, attribute replies correctly, and detect that a human has already answered before an AI agent jumps in.
What it deliberately cannot do
The boundaries are the feature, not limitations to be worked around.
Private chats only. Groups and channels the owner belongs to are outside the connection. Whatever their team argues about in a group chat stays invisible to your bot.
No cold outbound. The connection covers conversations that exist and conversations people start. There is no method that turns it into a way to message a stranger. If first contact is your requirement, this feature will never serve it.
Scoped by the owner. They choose which chats are in scope, and they can change that later.
Revocable, instantly. Removing the bot ends the connection. Compare that with a session string, which cannot be scoped, does not expire, and grants total account access until somebody thinks to terminate it.
Why it matters
In a large part of the world, and certainly in Turkey, small businesses run on personal Telegram accounts. The owner's number is the business number. Customers write to them directly and expect an answer within minutes, including at 11pm.
Until business connections existed, serving that customer with software meant asking them to hand over a session for their personal account, and that is a request most people should refuse. It also put the vendor in an uncomfortable position: holding a credential that reads a stranger's private messages, with no scoping and no expiry.
A business connection makes the same product possible without that trade. The owner grants a scoped, revocable permission through Telegram's own interface. The CRM gets a clean event stream covering both sides of every conversation. An AI agent can draft or send replies, hand off to a human, and stop the moment the owner types something themselves. Nobody's account is at risk of a ban, because no automation is pretending to be a person on the wire.
The honest limitation is reach. It requires Telegram Premium on the customer's side, and Premium adoption varies enormously by market. For a product serving small businesses, that subscription is a real factor in the sales conversation and a real source of churn when it lapses.
Common mistakes
- Assuming
can_replyis still the only gate. Newer Bot API versions carry a granular rights object. Read the rights off the connection instead of assuming. - Dropping owner-sent messages. They arrive as
business_messagetoo, and without them your thread has holes and your AI agent talks over a human. - Forgetting the business_connection_id on send. Without it the message goes out as the bot, from the bot, which is not what anybody wanted.
- Treating a disabled connection as an error to retry. It is a lifecycle state. Stop the queue and ask the owner to reconnect.
- Ignoring the Premium dependency. A lapsed subscription silently ends the integration. Detect it and tell the customer what happened.
- Marketing it as outbound. It is an inbox automation feature. Selling it as lead generation guarantees a refund conversation.
Related concepts
- Telegram Bot API: the API surface business connections extend.
- Userbot: the risky alternative this feature exists to replace.
- Session string: the unscoped, unexpiring credential you no longer need to ask for.
- AI agent: what most teams actually put behind a business connection.
- Webhook: how the four business update types reach your server.
- Peer ID: the identifiers inside every business message payload.
How Pinlyx handles it
Pinlyx stores the connection payload against the workspace, watches the rights on every business_connection update rather than caching them once, and always sends with the connection ID so replies leave under the owner's name. Owner-sent messages are ingested as part of the same thread, which means the AI agent can see that a human has already answered and stay quiet. Disabled connections stop the send queue and raise a reconnect prompt rather than retrying, and a lapsed Premium subscription is reported as what it is rather than as a mysterious failure. The resulting conversations land in the same unified inbox as every other channel in the Telegram CRM.