Write us on Telegram@Odilient

TELEGRAM BOT

Bronjoy Help Bot

Multilingual Telegram support bot for Bronjoy that answers in Uzbek, Russian or English from the product docs and hands conversations to a person with the context attached.

In-house product
Client
Local Services
Industry
Ongoing
Duration
2026
Year
Where it started

The Challenge

A marketplace used by customers, business owners and visitors gets support questions in three languages, and people expect to ask them in Telegram. An AI bot can answer many of them, but it must never argue with someone who wants a person, never guess about money or accounts, and never go silent when the model fails. Operators also need to act on escalations without living in an admin panel.

What we did

The Solution

We built @bronjoy_help_bot as a thin Nutgram layer over one support conversation store and one AI agent. The agent answers from a knowledge base imported from the Bronjoy docs, holds no write tools and can escalate on its own. Separate rules hand threads to people on request, after repeated unhelpful answers or on errors, hold billing and account replies for approval, and let operators act from Telegram buttons.

Built with
NutgramTelegram Bot APILaravel 12Laravel AIGeminiFilamentPostgreSQLDocus
Inside the build

How It Came Together

A multilingual Telegram support bot with human escalation

@bronjoy_help_bot is the public support channel for Bronjoy. Customers, business owners and visitors ask about bookings, accounts, plans or how the product works in Uzbek, Russian or English. An AI agent answers what it can from the product documentation, and a person from the support team takes over in the same chat when it cannot.

Key features

  • Language before anything else — the bot asks once, in all three languages, and remembers the choice across Bronjoy's bots; a question sent before a language was picked is answered right after.
  • Every message recorded first — messages are stored before any reply is attempted, so a failed send never loses a question, and photos, files, voice notes and locations show up in the inbox as readable placeholders.
  • Straight to a person — /human, a menu button or words like "operator", "оператор" or "odam" hand the thread over before the model is called.
  • Honest limits — attachments the agent cannot read go to a person, off-topic requests get a short fixed reply, answers are throttled to eight a minute, and after 60 in a day the thread moves to a human.
  • Private chats only — group chats are ignored, because a conversation bound to one member's account would otherwise expose that member's details to the group.
  • Operator actions in Telegram — escalations reach a private admin bot with the last few messages and buttons to take over, return the thread to AI or open it in the admin panel.

One support agent for every surface

The same SupportAgent, built on Laravel AI, answers the Telegram bot and first-touch tickets raised inside the provider dashboard. Only one small dispatcher knows which channel a message came from. Unlike the business assistant in the Bronjoy staff bot, it has no write tools: it can search the knowledge base, find a business, look up the account of the person it is talking to and escalate. Anything that changes a booking, an account or a payment goes to a person.

Help content is written once, in the Docus documentation site, and imported into the backend's knowledge base with an Artisan command. Support runs on a cheaper Gemini Flash-Lite model than the business assistant, with a 12-turn history window, a low temperature and at most eight tool steps per answer.

Escalation rules outside the model

The agent can escalate on its own judgment, but the most important rules run outside it, because a model having a bad turn is exactly when they matter:

  • A direct request for a human is honored immediately.
  • Billing and account questions never get an automatic answer: the agent drafts a reply, and an operator sends or discards it from the admin bot.
  • Two unhelpful answers in a row hand the thread over without being asked.
  • A model error or an empty answer hands the thread over; a temporary overload gets one honest "please try again".
  • Once a person has taken a thread, the bot stays out of it and pings that person about new messages instead.

Every path ends in a reply or in a person being asked to write one.

Engineering details

Escalations carry the ticket reference, channel, language, any linked business claim and a short transcript. When Telegram rejects the HTML produced from a model's Markdown, the reply is resent as plain text instead of being dropped. Only allow-listed chats can bind the admin bot, so a stranger who finds it gets no response.

One bug shaped the logging. The private-chat guard once compared the chat type to a string while Nutgram returns an enum, so the check silently dropped the direct messages it existed to allow: HTTP 200, nothing stored, nothing logged. The fix asks the chat object directly, and every ignored update is now logged.

Our role

We launched the support bot alongside the marketplace in August 2026 and rebuilt it in September around a single AI agent and conversation store shared by every support surface.

See our Telegram bot development and AI integration and automation services, and the Bronjoy Telegram booking bot that customers use to book.

Let's Build

Want something like Bronjoy Help Bot?

Tell us what your product needs to do. We'll shape the scope, map a timeline and send a fixed price — free, and with no obligation to proceed.

Free consultation No commitment Fast reply