In this tutorial you'll build a Telegram support bot on Flowra. Customers message your bot, and an AI agent answers from your FAQ. When the agent tries a sensitive action, such as a refund-related send, it stops and waits until you approve or reject it in the Flowra dashboard. You need a Telegram account and a free Flowra account.
By the Flowra team. Every Flowra step below follows the current Flowra docs; where the docs don't name an exact button, we say so. Telegram steps follow Telegram's bot documentation. Checked 25 Sep 2026. Updated 26 Sep 2026: approvals happen on an in-chat review card, and the Sensitive tools field must be filled in.
The flow looks like this:
One point matters for how you set this up: you approve in the Flowra dashboard, not from a Telegram message sent to you. If you need approvals inside Telegram itself, see the n8n section near the end.
For deciding which steps should block and which only need a later review, see human in the loop vs human on the loop.
Telegram bots are created and managed through the official @botfather account.
Treat the token like a password: Telegram notes that anyone who has it can control your bot. If it leaks, send /token to BotFather to generate a new one, then update the connection in Flowra.
Use a dedicated bot for this agent. Telegram delivers a bot's updates to one webhook URL at a time (and getUpdates stops working while a webhook is set). If another service is also using the same token, messages can end up in the wrong place.
In Flowra, go to Workflows and choose Create Agent (or Create by AI to have a chat helper draft it for you to review and save).
Before you start, check the project and End user switchers in the sidebar. Agents, connections and knowledge belong to the selected end user. Default user is fine for a solo setup; just keep everything in this tutorial under the same one.
Fill in two cards:
Here is an example set of system instructions. Adapt it to your business; it is a starting point, not a Flowra default.
EXAMPLE — adapt before use.
You are the support assistant for Acme Store on Telegram.
Scope
- Answer questions about orders, shipping, returns and product care.
- Answer only from the attached knowledge collection and the results of your tools.
If the answer is not there, say you don't know and offer to pass the question to a human.
Style
- Short, friendly, plain language. Two to four sentences unless the customer asks for detail.
- Reply in the customer's language.
Orders and refunds
- To look up an order, ask for the order number. Never ask for passwords,
full card numbers or one-time codes.
- Never promise a refund, discount, replacement or delivery date.
Explain the policy, and treat any refund or order change as an action that needs human approval.
Escalation
- If the customer is angry, mentions legal action, or asks for a person,
say that a teammate will follow up, and stop.
Instructions shape what the agent attempts; the approval setting in step 4 is the safety net when it attempts something risky anyway.
This takes two parts: connect the bot account, then attach it to the agent.
Connect the bot account
The Telegram entry in the toolkit catalog lists the tools and trigger that come with the connection.
Attach it to the agent
Replies go out through the connected bot account. The docs flag one warning, repeated in the UI: anyone who can message that channel can wake the agent. A public bot is a public entry point, so keep the tool list small (step 5).
Each person who messages the bot becomes an external user (source Channel), with their chats kept separate.
Open the agent's Actions tab and, in the Advanced section, turn on Human approval for sensitive actions. Then fill in the Sensitive tools field under the toggle with the exact names of the tools that must wait for you, for example the tool that sends a refund. The dashboard's own tip says that leaving this field empty effectively disables approvals, so the toggle alone protects nothing. The same section also has Tool call limit and Model call limit, which are worth setting on a public bot.
Here is what happens next:
Only the tools you list . Approval applies to the tools in Sensitive tools, so put refund-like sends and escalations there and leave lookup tools out. Flowra's own Telegram support chatbot suggests the same design: routine FAQ replies stay ungated, so the agent doesn't wake you for password-reset copy. Confirm in step 6 that each listed tool really stops for review before you go live.
Knowledge. Open Knowledge and use Chat with Knowledge to add your FAQ and policies as files, URLs or text; there is no separate ingest form. Then tick the collection on the agent's Data access card, and search tools for it are added automatically when the agent runs.
Tools. On the Tools card, open Select Tools and use the Toolkits tab. For a store, that might be Shopify or Stripe for order and payment lookups, or Slack for handing a thread to your team. Connect the matching account under Your accounts for testing or on the Connection page.
Two rules keep this safe:
Before going live: if a message you expected to went straight through, stop there. Check that the tool's exact name is in Sensitive tools, remove or tighten the tools involved, adjust the instructions, and re-test until the review card appears where you want it.
All three have approval features:
Choose Flowra when the agent is the product: one agent on Telegram (later WhatsApp, Slack or your site), each customer kept separate, and an approval toggle instead of wait nodes you redraw per workflow.
In the Flowra dashboard. When the agent tries a tool listed in Sensitive tools, an "Action review required" card appears in the dashboard with the tool name and its arguments, and you choose Approve or Reject there. The waiting run isn't listed as d in Executions. The docs don't describe approving from a Telegram message.
No. Approval applies only to the tools you list in the Sensitive tools field under "Human approval for sensitive actions". Put refund-like sends and escalations there and leave routine FAQ replies ungated. If the field is empty, approvals are effectively off, so test your own agent before launch.
Yes. The Free plan includes 3,000 credits a month, 3 agents/workflows and no card. Telegram isn't among the account types excluded from Free (WhatsApp QR and Instagram Business are). Heavier traffic will need a paid plan.
Send /token to @botfather to generate a new token, then reconnect Telegram in Flowra with the new one. Anyone who has the old token can control the bot until you replace it.
Yes. n8n's Telegram node has a Send and Wait for Response operation with Approve/Decline buttons, and n8n supports human review for AI Agent tool calls. It suits self-hosters who are happy to wire the workflow on a canvas.
Yes. Add more messaging entry points (WhatsApp, Slack, Discord, Gmail), or create a website widget for the same agent. You don't need to copy the agent for each channel.
Browse the other messengers on the channels page, or clone a support agent from the templates. When you're ready, start free and connect your bot.