Time: about 10 minutes. You need: OpenCompany running locally, one AI provider key already added (Add API keys), and a Telegram account. The bot token itself is free — no developer program, no approval wait.
1
Create a bot with @BotFather
In Telegram, open a chat with @BotFather, send
/newbot, and follow the prompts: pick a display name, then a username ending in bot.BotFather replies with “Done!” and an HTTP API token that looks like 123456789:ABCdefGHIjklMNOpqrSTUvwxYZ. Copy it — this token is the only credential the whole tutorial needs.2
Add the token to OpenCompany
In OpenCompany, click the key icon in the toolbar to open API Credentials, select Telegram Bot, paste the token into the Bot Token field, and click Validate.The field shows Valid — the validation message includes your bot’s username, confirming the right bot is linked — and the provider gets a green Connected badge.
3
DM your bot once
Back in Telegram, open a chat with your new bot and send it any message (a simple “hi” works).This first private message lets OpenCompany capture your chat id automatically, so replies addressed to “self” route straight to your account. If you prefer, you can instead paste your id into the Your Chat ID (optional) field on the same credentials panel — DM @userinfobot to find it — but the one-message capture is easier.
4
Add the three nodes
The Telegram nodes live in the palette’s Social section, which only appears in Dev mode — flip the toolbar Mode toggle from Normal to Dev. Then drag three nodes onto the canvas: Telegram Receive and Telegram Send from Social, and AI Agent from AI Agents.You should now have three unconnected nodes on the canvas: a trigger, an agent, and a send action.
5
Connect them
Drag from Telegram Receive’s output handle (the circle on its right edge) to AI Agent’s main input handle (left edge), then from AI Agent’s output to Telegram Send’s input.Two edges appear: Receive feeds the Agent, and the Agent feeds Send. This is the entire data path — message in, reply out.
6
Configure the agent
Double-click AI Agent to open its parameters. Pick your provider and model from the two dropdowns (any provider whose key you added — the example workflow uses Gemini). Leave the prompt field empty — the agent automatically uses the incoming Telegram message as its prompt. Click Save.The panel closes and the agent node is configured. Optionally set a system message such as “You are a helpful assistant” to shape the bot’s tone.
7
Configure Telegram Send
Double-click Telegram Send. Keep the defaults — Recipient Type This is a template variable: at run time it resolves to the AI Agent’s
self, Message Type text, Parse Mode Auto — and set the Text parameter to:response output field, so whatever the model writes becomes the outgoing message. Click Save.8
Start the workflow
Save the workflow, then click the green Start button in the toolbar.The button turns into Stop, and Telegram Receive begins pulsing — it has entered its waiting state and is listening for incoming messages.Trigger nodes never show an “executing” state of their own: the pulse means listening, and it is the downstream nodes that light up when a run starts.
9
Talk to your bot
In Telegram, send your bot a question — “what is the tallest mountain in Europe?”On the canvas, the nodes light up in sequence — Receive fires, the Agent thinks, Send delivers — and a few seconds later the AI’s answer arrives in your Telegram chat. You can watch the run’s log lines in the Console tab of the bottom panel.Each incoming message spawns its own independent run, so you can keep the conversation going — the trigger goes back to waiting as soon as a run begins.
You built a working AI-powered Telegram bot: incoming messages trigger the workflow, the agent generates a reply, and the answer lands back in Telegram. It keeps responding to every message for as long as the workflow is running — click Stop when you want it offline.
How it works
Telegram Receive is a trigger node: while the workflow is running it waits for messages arriving through your bot and starts a run for each one that passes its filters. The AI Agent takes the message text as its prompt, calls your configured model, and emits the reply in itsresponse output field. Telegram Send resolves the {{aiagent.response}} template against that output and delivers the text to your chat — self routes to the chat id captured from your first DM.
Make it yours
A few one-parameter upgrades, all on the nodes you already placed:- Only answer you: on Telegram Receive, set Sender Filter to
self— the bot ignores everyone except its owner. This is how the shipped “AI Assistant” example configures it. - Only answer on a trigger word: set Sender Filter to
keywordsand list comma-separated words; matching is a case-insensitive substring check. - Text-only input: set Content Type Filter to
textso photos and stickers do not start runs. - Formatted replies: leave Telegram Send’s Parse Mode on
Auto— markdown in the model’s reply is converted to Telegram formatting automatically, with a plain-text retry if Telegram rejects it. - Quiet delivery: enable Silent on Telegram Send to deliver replies without a notification sound.
- Quote the question: set Telegram Send’s Reply To Message Id to
{{telegramreceive.message_id}}so each answer arrives as a reply to the message that asked it.
Troubleshooting
If a run goes wrong, the failing node turns red on the canvas and the error text shows in the Console tab. The common ones:- Run fails with “Telegram bot not connected” The bot token is missing or was never validated. Reopen API Credentials, select Telegram Bot, and validate the token again.
-
Telegram Send fails with “Bot owner not detected”
Your chat id was never captured, so the
selfrecipient has nowhere to go. DM the bot once from your own account, or paste your id into Your Chat ID (optional) on the credentials panel. - Nothing happens when you message the bot Confirm the toolbar shows Stop (meaning the workflow is running) and that your message passes Telegram Receive’s filters — with Ignore Bots on (the default), messages sent by other bots are skipped.
-
Replies arrive as one wall of unformatted text
Check Telegram Send’s Parse Mode is still
Auto; that is what converts the model’s markdown into Telegram formatting.
Next steps
Messaging & Social nodes
Every Telegram, Twitter/X, and unified social node parameter in detail
Quickstart
The broader OpenCompany tour: canvas, agents, and deployment