Growing
How to measure whether your Telegram bot is actually working
By the Botable team
Telegram gives bots no analytics, so you record your own. Four numbers cover most of it: how many people start, how many reach the first useful outcome, how many return after a week, and where conversations stop.
Watch it
Every update your bot receives is written down as it arrives, before your bot's code sees it. What each card counts, and which question each one actually answers.
Read the transcript
Everything said in the video, in order.
Every message someone sends your bot is recorded automatically. The Manage tab is what that record adds up to.
Each card answers a different question, and knowing which question is the whole skill. A number you misread is worse than none at all.
Nothing here needed installing. Each update is written down as it arrives, before your bot's own code sees it, so the numbers start with your first user.
Every row on the left carries its own reading, so the rail is already a summary. Only what people send is counted: replies your bot writes are not in these figures.
Right now is the headline. How many people were active today, this week, and this month: three counts of the same audience over widening windows.
Each person counts by their most recent message, so today means the last twenty-four hours, not since midnight. Today rising while this month sits flat is the same people, more often.
Activity plots two lines against the same days. One counts messages, the other counts how many separate people sent them that day.
Rising together means more people arriving. A messages line that climbs while the people line stays flat means a smaller group talking more.
The filter above the chart changes the span. Seven days redraws both lines against the last week, and the message count beside the legend follows.
Twenty-four hours changes the shape, not just the scale. Buckets become hourly, which is how you find the times of day people use it.
That filter moves this chart and nothing else. Active users, growth and retention come from fixed windows and ignore whatever you pick here.
New is a first ever message in the last seven days, returning is anyone active on two different days, churned is silent for thirty days or more. They overlap and never sum to your total.
Retention is the cohort question. Of the people who joined at least a day, a week or a month ago, the share who came back on a later day inside that stretch.
Day thirty reads zero on a young bot, and that is not a verdict. Nobody has been here thirty days yet, so nobody could have come back. It fills in as the bot ages.
The record is already being kept. Reading it correctly is the only part left to you. Start free at botable dot I O.
The short version
Telegram provides no analytics for bots, which means every number you have is one you chose to record. That is an advantage if you choose well, because four metrics answer almost everything worth asking. Starts count how many people open the bot at all and are mostly a measure of your distribution. Activation counts how many reach the first genuinely useful outcome, the first reminder set, the first alert delivered, and is the number that predicts whether anyone stays. Retention counts how many return after a week, which is the only honest measure of whether the bot is a habit or a novelty. Drop-off shows where multi-step flows are abandoned, which is where the fixable problems concentrate. All four come from one event log: user id, event name, timestamp. The temptation to log everything produces a table nobody queries.
Step by step
What should be logged?
One row per meaningful event: user id, event name, timestamp, and a small amount of context. Meaningful means it would change a decision. Logging every message produces volume rather than insight and makes the useful events harder to find.
What is activation for a bot?
The first moment the bot delivered on its promise, the first alert received, the first reminder that fired, the first purchase. Define it explicitly per bot. The gap between starts and activation is almost always the largest and most fixable loss in the funnel.
How do you measure retention?
Group users by the week they started and count how many are still active one, two and four weeks later. Cohorts show whether changes actually improved things; a single overall active-user number hides a leaky bucket behind new arrivals.
How do you find where people give up?
Log each step of a multi-step flow and compare the counts. The step with the largest fall is your problem, and it is usually a question that was unclear or asked too early rather than anything technical.
What catches people out
- Logging everything produces a table nobody queries; log decisions, not traffic
- A single active-user total hides churn behind new sign-ups, use cohorts
- Event logs contain personal data and belong in your privacy policy and retention rules
Questions
Can I use a normal analytics product?
Yes, by sending events server-side. Client-side web analytics does not apply, since there is no page. Many bots find that querying their own database is enough and avoids sharing user behaviour with a third party.
What is a good retention number for a bot?
It depends entirely on the category, a daily habit bot and an annual tax reminder cannot be compared. Measure against your own previous cohorts, which is the only benchmark that means anything.
Want a bot that does this?
Describe it in plain language and Botable writes the code, gives the bot its own database, deploys it and keeps it running. Everything on this page is handled for you, the token, the webhook, the storage, the hosting.