channels
channels.connect_telegram_bot
Connect Telegram Bot
Effects: write, external_api
🤖 Connect a Telegram Bot (Bot API) channel from its bot token.
When to use:
- After a bot was created via @BotFather and you have its token.
- The token alone is sufficient — no Telegram user account is needed.
Validates the token, creates the channel account, and registers the webhook so the bot starts receiving messages immediately.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
bot_token | string | yes | Telegram bot token from @BotFather (e.g. '123456789:ABCdef...'). |
channels.get_profile
Get Channel Profile
Effects: read
🪪 Read a connected channel's current bot profile: display name, long description, short description, the / command menu and the persistent menu button.
Pass language_code to read back a localized variant instead of the default one.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
channel_account_id | integer | yes | The channel account to read, from channels list. |
language_code | string | no | IETF language code (e.g. 'en') to read a localized variant of the text fields instead of the default. OMIT for the default variant. |
channels.update_profile
Update Channel Profile
Effects: write, external_api
🪪 Update a connected channel's bot profile: display name, long description (the "What can this bot do?" card), short description, the / command menu, and the persistent menu button next to the input field.
Every field is optional — pass only what you want to change; any field you omit is left exactly as it is.
menu_button with type="web_app" is what puts a persistent button next to the input field that opens a Mini App page bound to this bot (pass the page's https URL as menu_button.url).
Two things this tool CANNOT set, because the Bot API does not expose them — both stay BotFather-only: the bot's AVATAR, and registering a NAMED Mini App (t.me/bot/appname). menu_button.web_app and any web_app message button work off a direct URL and need no such registration.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
channel_account_id | integer | yes | The channel account to update, from channels list. |
commands | array | no | The / command menu: a list of {command, description} objects (command: lowercase letters/digits/underscores, <= 32 chars; description: <= 256 chars; <= 100 commands total). OMIT to leave unchanged. |
description | string | no | Long description shown on the "What can this bot do?" card before Start (<= 512 characters). OMIT to leave unchanged. |
language_code | string | no | IETF language code (e.g. 'en') to set a localized variant of the text fields instead of the default. OMIT for the default variant every user without a matching locale sees. |
menu_button | object | no | The persistent button next to the input field: {type: "commands"|"default"|"web_app", text?, url?}. "commands" shows the / menu, "default" removes the custom button, and "web_app" opens a Mini App at url (must be https://) with the button labelled text. OMIT to leave unchanged. |
name | string | no | Bot display name (<= 64 characters). OMIT to leave unchanged. |
short_description | string | no | Short description shown on the profile page (<= 120 characters). OMIT to leave unchanged. |