Honestly, before working on this AI Telegram Bot project, I never really imagined that a simple Telegram chat could become an entry point to fairly complex business data.
Usually, when we talk about business intelligence, the first thing that comes to mind is a dashboard. Charts, tables, filters, numbers, and many menus that need to be opened one by one.
Dashboards are useful. However, in an organization as large as Telkom, the problem is often not that the data does not exist.
The problem is that there is too much data, it is spread across different places, and it is not always easy to access quickly.
Sometimes one piece of information is in a dashboard. Other data is in a database. Other information is stored in internal tools. As a result, to answer one simple question, field teams may need to open several applications just to conclude one thing.
Even though the question might be as simple as:
“How many sales did area X make today?”
That concern was what led me to build Catalyst AI. In short, Catalyst AI is an AI Telegram Bot that helps users access Telkom’s business data through chat.
The main strength of Catalyst AI is its ability to shorten the data search process. Users do not need to open multiple dashboards, understand SQL, or search for data across different tools. They can simply ask through Telegram, and the system helps retrieve relevant data and summarize it into an easier-to-understand answer.
The idea is simple: if people are already used to asking questions through chat, why not make access to company data feel just as natural?
When I think about it, AI is slowly changing the way we work. Not only in coding, but also in the way we access information.

The Problem Is Not That Data Does Not Exist
The interesting thing is, the larger an organization becomes, the more data it produces.
Just like at Telkom, business data can be related to revenue, sales, customer profiles, churn prediction, and many other areas. All of this data is important. But when it is scattered across many places, users still need a lot of effort to combine it.
For those of us who are used to technical work, this may still be manageable. Open the database, check the table structure, write an SQL query, retrieve the data, and analyze it.
But for business teams? That process is clearly not ideal.
They do not need to know what the SQL query looks like or which table stores the data. They only need a fast and clear answer that can help them make decisions.
For example:
“Is the revenue in this area going up or down?”
“Which customers should be prioritized?”
“How is this month’s performance?”
This is where Catalyst AI acts as a “translator”. Users ask questions in everyday language, the system translates them into data needs, and then the result is arranged into an answer that is easier to read.

How Does It Actually Work?
Simply put, Catalyst AI works in three connected stages.
First, the system understands the user’s question. For example, when a user asks:
“How many sales did the Bali area make?”
The system needs to understand that the topic is sales, and the area being referred to is Branch Bali.
Second, the system retrieves the right data from the database. This is where the text-to-SQL concept is used. The system turns human language into a database query automatically. So, the user does not need to touch any code at all.
Third, the system prepares the final answer. Data from the database is not sent directly to the user in raw form. AI summarizes it again so that the information is concise and not too rigid.
So from the user’s perspective, the process is simple.
Type a question. Wait a moment. The answer appears.

Technologies Used
For the technology stack, I used a combination that is quite modern and lightweight.
The backend uses Hono.js and runs on top of Bun, which feels like a good fit because it is lightweight and fast.
For the AI “brain”, I used Qwen, a Large Language Model that helps understand text and generate answers.
Everything eventually connects to PostgreSQL as the data storage layer, with Drizzle ORM helping keep the communication between code and database more organized.
In short, Telegram becomes the entry point for users. The backend manages the flow. Qwen understands the question. PostgreSQL stores the data. Drizzle ORM helps with data retrieval.

The most important part of this bot is its ability to turn natural text into an accurate database query. I used Qwen LLM because it is efficient in understanding structured instructions.
The process roughly works like this:
I provide Qwen with context about the table schema. Qwen determines whether the user is asking about sales, revenue, or something else. Then, Qwen produces a structured output that the backend can use.
For example, when a user asks, “How many sales did Bali make?”, the system processes it into something like this:
{
"intent": "sales",
"area": "witel",
"area_name": "BALI"
}From there, the backend knows what data needs to be retrieved.
If simplified, the data retrieval process can be imagined like this:
SELECT *
FROM sales_connectivity_witel
WHERE witel = 'BALI';Of course, in the real system, the process is not as simple as one query. The system still needs to choose the right table, understand the conversation context, match the area name, and make sure the retrieved data is actually relevant.

Challenge: When AI Sounds Too Confident
From the outside, it looks simple: ask a question, get an answer.
But in reality, the biggest challenge is trust.
In business, an answer that sounds convincing is not always correct. I once encountered a case where the SQL query ran successfully, but the data was actually empty in the database. The funny, or maybe scary, part is that AI sometimes still tried to answer as if the data existed.
That is dangerous. If AI starts making up numbers or insights, users may make the wrong decision.
This is where I learned to give the system a strict rule:
If the data is empty, say it is empty. Do not make things up.
This problem reminds me of the article ✅ I Changed Just One Line and My AI Bot Suddenly Stopped Hallucinating, because it also shows that AI needs clear boundaries so it does not answer too freely.
Then there is Telegram formatting. Telegram has its own formatting rules. If just one character is not escaped properly, the message can fail to send with an error like: can’t parse entities.
It feels frustrating when the backend is already correct, the AI has generated the answer, but the message still fails to appear because of a small formatting issue in the chat interface.
That is when I realized that debugging an AI Telegram Bot feels different. The problem can come from anywhere: the prompt, the data, the AI output, or even the platform where the answer is sent.
Everything is connected.
Also read: A User Broke My AI Chatbot With Unexpected Input — Here’s What Actually Happened

Why Is This AI Telegram Bot Helpful?
For me, the biggest value of this bot is that it reduces the distance between people and data.
Dashboards are still important for deep analysis that needs broad visualization. But for tactical questions that need answers in seconds, chat is the winner.
Catalyst AI can also understand context. If a user asks, “How is the performance?” after asking about a specific area, the bot understands that “performance” still refers to that area.
For users, this may seem like a small thing. But from an experience perspective, this is what makes the chatbot feel more natural and less like a form.

Closing: From Dashboard to Chat
Building Catalyst AI gave me a new perspective: AI in business systems is not just about being smart. It also needs to be trustworthy and easy to use.
The era where data can only be accessed by people who understand SQL is slowly changing. Now, data can start to be accessed through conversation.
From dashboard to chat, from manual queries to everyday language, and from scattered data to faster answers.
If data access can be made as easy as asking a question on Telegram, maybe business intelligence will no longer feel distant or complicated for users.
It can all start with one simple message:
“How many sales did we make today?”










