Create a bot
Telegram bots are created by chatting with BotFather, Telegram’s official bot for managing bots.1
Open BotFather
Search for
@BotFather in Telegram and start a chat.2
Create the bot
Send
/newbot, then give it a display name and a username. The username must end in bot.3
Copy the token
BotFather replies with a token. Treat it like a password — anyone who has it can control your bot.
4
(Optional) group privacy
Only if you plan to use groups: run
/setprivacy, pick your bot, and disable privacy mode. For the recommended one-on-one use, you can skip this.Connect it in Synti
1
Open messaging settings
Go to Settings → Messaging and click Connect on the Telegram tile.
2
Paste and test
Paste the bot token and click Test. Synti validates it against Telegram’s
getMe endpoint.3
Save
Click Save. The token is stored in the workspace keychain and the adapter starts.
An invalid token fails the test with 401 Unauthorized. Regenerate it with BotFather’s
/token or /revoke and try again.Start a conversation
Once connected, open the bot and bind a session:- Open the bot via its
t.me/<username>link or by searching its username. - Send
/newto create and bind a session. - Start typing. Your messages go to the agent, and replies come back in the mode you chose.
/new or /pair — it needs a bound session first.
Managing sessions
The standard messaging commands all work here:/new, /bind, /unbind, /status, /stop, and /pair <code>. Flows like /bind show a tappable list of sessions using Telegram’s inline buttons instead of asking you to type a number; the keyboard clears itself once you pick.
Attachments
The gateway downloads photos, documents, voice messages, videos, and audio you send, and converts each to the right attachment type for the agent.Attachments are capped at 20 MB each.
Access control
By default your bot is private — only people on the workspace allowlist can run pre-binding commands. A few rules shape who gets in:- First-pair rule. Redeeming a pairing code automatically captures the sender’s Telegram ID, so you never have to enter it by hand.
- Pending requests. An unrecognized sender gets a “Bot is private” reply and shows up under Settings → Messaging → Pending requests, where you can approve them with one click.
- Per-binding overrides. Each binding can inherit the workspace settings, use its own allowlist, or be open to anyone.
Direct messages only
Only direct chats with the bot can drive a session. Messages in groups, supergroups, and channels are rejected at the adapter, no matter the privacy setting. Keep the bot in one-on-one chats.Desktop vs. headless
- Desktop app
- Headless server
The Electron app uses long-poll mode, so no public URL is needed. This is the default and works from any network.
Troubleshooting
The bot doesn't respond to my messages
The bot doesn't respond to my messages
Make sure you’ve bound a session with
/new or /pair. A fresh bot has nothing to route messages to.The bot works in one workspace but not another
The bot works in one workspace but not another
Messaging is workspace-scoped. The bot only operates within the workspace where it’s configured.