Telegraft

Bot type

Catch the complaint before it becomes a one-star review

A Telegram feedback bot asks for a rating at the moment an interaction ends, routes low scores to a manager privately, and gives high scorers a one-tap path to a public review. It improves both recovery and review volume. Gating negative reviews from platforms breaches their policies, and this does not do that.

Feedback and review bots: price, timeline and limits

Fixed price
$2,900 USD
Delivery
14 calendar days from kickoff
Contact rule
Only customers who already started a conversation
Review gating
Prohibited by Google and TripAdvisor — sentiment-based soliciting breaches policy
Callback data
64 bytes per inline keyboard button
Posting reviews
A bot cannot post to Google or TripAdvisor on a customer behalf

As of 2025-10-01, Telegram Bot API 13.4

The problem this solves

Two problems are usually conflated here and they need different answers. The first is that unhappy customers do not complain to you, they complain publicly or not at all, and by the time you see a one-star review the recovery window closed days ago. The second is that happy customers rarely leave reviews unprompted, so your public rating is disproportionately shaped by the annoyed.

Timing solves more of this than any clever mechanism. A rating request sent within minutes of an interaction gets answered several times more often than the same request the next morning, because the experience is still present and the effort of recalling it is zero. Most businesses ask far too late, in an email, and conclude that customers do not respond.

The second decision is what to do with a low score, and it needs stating carefully. Routing a dissatisfied customer to a manager for recovery is good service. Filtering which customers are invited to review a platform based on how they rated you privately is against the terms of Google and TripAdvisor, and businesses do get penalised for it. The defensible design asks everyone, offers the public review path to everyone, and additionally escalates the unhappy ones for a human to fix.

How the build runs

  1. The trigger is an event, not a batch

    Order delivered, appointment completed, ticket closed. Your existing system tells the bot the interaction ended, and the request goes out within minutes while the experience is still immediate.

    webhook
  2. The first question is a single tap

    One row of buttons and no free text required. Every additional step at this point costs response rate, and a rating with no comment is still the signal you needed most.

    inline-keyboard
  3. A low score escalates immediately and privately

    The manager gets the customer, the score, the interaction and the contact route, with a Take button. Recovery within the hour changes outcomes; recovery the following week is an apology rather than a fix.

    forum-topics
  4. Everyone is offered the public review path

    Including the unhappy ones. This is the part that keeps the design compliant with platform policies, and it also produces a more credible public rating than a curated one.

    inline-keyboard
  5. Follow-up text is optional and bounded

    One question, asked after the rating is already recorded, so abandoning it costs nothing. Making the comment mandatory reliably halves the response rate and gains very little.

    commands
  6. Scores attach to whatever produced them

    Outlet, staff member, service, time of day. Aggregate ratings tell you a number; attributed ratings tell you where to look, which is the difference between a dashboard and a decision.

    webhook

What Telegram will and will not let you do

A bot may only message a customer who has previously started a conversation with it.

Feedback requests reach customers who already used the bot for something else. Bolting review collection onto an existing booking or ordering bot works; running it standalone against a customer list does not.

Google, TripAdvisor and similar platforms prohibit selectively soliciting reviews based on sentiment.

The public review path is offered regardless of score. Gating it is a policy breach that carries real penalties, and it is the single most common way these builds are specified wrongly.

Inline keyboard callback data is limited to 64 bytes.

Rating buttons carry a short token rather than the interaction detail. The server holds the context, which also means a rating button from last month cannot be replayed against a new interaction.

Telegram provides no read receipt, only a send confirmation.

Non-response is ambiguous: unseen, seen and ignored, or notifications off. A single polite reminder is defensible; inferring dissatisfaction from silence is not.

A bot cannot post a review to Google or TripAdvisor on a customer's behalf.

The bot can only hand over a deep link to the platform's own review form. Any drop-off between that tap and a submitted review is outside your measurement, so review counts must be read from the platform.

When not to build this

  • You have no manager who will act on an escalation within the hour. Collecting complaints you do not respond to is worse than not asking, because the customer now knows you heard.
  • Your customers have no prior relationship with a bot. Standalone review collection cannot start the conversation, and this build depends on an existing bot to sit on.
  • You want to suppress negative public reviews. That is what this deliberately does not do, and the platforms enforce against it.
  • You already collect NPS through a system your team uses. A second score with different wording produces two numbers nobody trusts.

What it runs on

ComponentVersionWhy
grammY1.45Bot framework, usually mounted alongside an existing booking or ordering bot.
Cloudflare WorkerscurrentRuntime, with cron-driven single reminders.
Cloudflare D1currentRatings, attribution to staff and outlet, escalation state.
Zod4.4Validation on inbound completion events from your operational system.
TypeScript5.9Strict mode throughout.

Questions people ask before committing

Is it legitimate to route low scores to a manager?

Yes. Handling a complaint privately is normal service recovery. What is not legitimate is deciding who gets invited to leave a public review based on that private score, and this build offers the public path to everyone precisely to stay on the right side of that line.

When exactly should the request be sent?

Within minutes of the interaction ending, not the next day. Response rates fall steeply with delay, and a next-morning email is the standard approach that produces the low response rates people then blame on customers.

What response rate is realistic?

Materially higher than email, because it is one tap in a chat the customer already has open. The honest answer is that it depends on your interaction type and timing, and the first month of data is worth more than any benchmark.

Can we attribute scores to individual staff?

Yes, and it is usually where the actionable signal is. It also needs handling carefully as a management matter — staff who believe the scores are unfair will find ways to influence them, which corrupts the data you were collecting.

Does it work in Arabic?

Yes, including the rating scale itself. Numeric scales translate cleanly; word-based scales like "satisfied" and "very satisfied" compress differently in Arabic and are worth reviewing with a native speaker before launch.

Can it chase customers who do not respond?

One reminder, after a configurable delay, and then it stops. Repeated chasing produces spam reports, and Telegram restricts bots that accumulate them — so the frequency cap protects the channel, not just goodwill.