The problem: a button maze nobody finishes
If your Telegram bot is a menu tree, you already know how this goes. Someone opens the chat, taps through two or three buttons, hits a branch that does not fit what they actually wanted, and leaves. Bookings keep going through phone calls, the bot drives close to no revenue, and the team quietly stops looking at it. The channel is there; the value is not.
The problem is rarely the channel itself. A button maze can only answer the questions you predicted in advance, and a client asking whether a treatment is safe on sensitive skin, or what the difference is between two packages, is not on that list. So they ask nobody, and the enquiry disappears.

Step one: an agent instead of a menu
Replace the menu logic with a MyChatBot sales agent. Your service list goes in as a Product Spreadsheet; opening hours, pricing rules, cancellation policy and everything else clients ask about go into Business Domain docs, so the agent answers from your real data rather than from a hardcoded tree. Agentic Search lets it find the right service even when the client describes it in their own words instead of yours.
From there the whole conversation stays in one window. The client types naturally, gets a real price straight away, and books into Google Calendar inside the chat, with the agent checking free slots before it offers them, so there is no phone tag and no dead branch. If your schedule already lives in Altegio, that connects the same way, and beauty and wellness bookings run against the calendar your staff already use.
Scaling it across locations
Once one location converts, the pattern repeats. Clone the agent per location, each with its own calendar and its own pricing, all reporting into one shared CRM. KeyCRM, SalesDrive, Bitrix24, Kommo, HubSpot and the rest connect the same way, and the agent uses create_crm_lead and create_crm_deal so every chat that shows intent becomes a tracked record instead of a message somebody has to remember.
Two details make this worth the effort. The lead_chat_link and deal_chat_link fields put the actual conversation one click from the CRM card, so whoever picks the lead up can read what was already said. And tagging leads with source "AI-" separates agent-generated demand from everything else, which is how head office can see which locations the bot is actually filling.
Follow-ups close the gap with people who asked about a service and never booked: the agent comes back on its own, inside the rules you set, while Labels and Statuses in Lead Processing keep that base tidy rather than letting it pile up.
Where humans step in
Staff are freed, not replaced. Hand-off Control routes allergy questions, custom packages and complaints to a person via Flight Control, in Telegram, where the team already lives, with silent hand-off so the client never sees a switch. The agent runs the volume; staff handle judgment.
What changes in practice
What changes is not that the bot gets smarter in the abstract. It is that the three things a client came for, a price, a slot and an answer, all become available in the same chat window, at any hour, without someone having to be awake. Replies land in seconds, the booking happens inside the bot instead of after a callback, and the enquiries that used to evaporate between "what does it cost" and "when are you free" stop evaporating.
Set it up in that order: bot connected first, Knowledge Base second, because most of the answer quality comes from there, calendar and CRM third, and Follow-ups last, once you can see what real conversations look like. Use the Configuration Wizard to assemble and battle-test the instruction before you point live traffic at it, and keep versions so you can roll back a change that made things worse. The point underneath all of it is simple: people will happily use a bot, once it stops behaving like one.
A real customer story on this: Booking + product upsell at 22 locations.