Custom commands

Text commands and button commands are built from the same modal in the dashboard's **Commands** tab. A command saved with buttons attached is a button…

Text commands and button commands are built from the same modal in the dashboard's Commands tab. A command saved with buttons attached is a button command; one without is a text command.

Creating a bot command

The Commands tab lists every command for the bot and adds new ones with Add Command. The response is rich text.

Editing can flip a command either way: remove every button to make it a text command, or add one to make it a button command.

Custom commands answer in any chat the bot is in — they don't check the allowed-groups list.

The response editor

Selecting text inside the response field pops up a formatting toolbar.

Selection toolbar

ButtonDoes
Bold, Italic, Underline, StrikethroughStandard text formatting
MonospaceCode formatting
SpoilerTelegram spoiler
HyperlinkTurns the selection into a link — the URL must start with https://
Remove linkStrips a link back to plain text

The modal toolbar also has Undo / Redo, a premium emoji inserter and a divider inserter.

The button board

Each button has a label, a URL, a colour, a layout and an optional premium-emoji icon.

Button board limits

SettingValue
Buttons per command12
Label length64 characters
URL schemehttps:// only. A bare host gets https:// added; an http:// URL is rejected on save: Button URLs must use HTTPS
ColoursGray (default), Blue, Green, Red
LayoutHorizontal or Stacked — Stacked is the default

A button can carry one premium emoji next to its label, picked from your own emoji packs or pasted as a premium emoji ID (5 to 32 digits).

Handling duplicate command triggers

A trigger must be unique across every text command, button command and character trigger on the same bot.

Trigger validation errors

SituationMessage
Bad formatTrigger must be alphanumeric (letters, numbers, underscore only)
Matches a character's triggerTrigger cannot be the same as a character command (/x)
Matches another text commandCommand with trigger "x" already exists
Matches another button commandButton command with trigger "x" already exists
A text and a button command would share one triggerA button command with trigger "x" already exists. Triggers must be unique across text and button commands.

Slash optional

InputOutput
Saved triggerca
All of these match/ca /ca@yourbotusername ca

Built-in commands are matched first, so a custom command whose trigger matches one of them doesn't get to answer.

Reserved trigger words

A character's trigger command can't be renamed to one of these 7 built-in words:

  • start
  • commands
  • getid
  • holders
  • ban
  • mute

Limits

Per-command limits

SettingValue
Visible reply length4096 characters — Telegram's cap

Over the limit, saving fails with Response exceeds Telegram's 4096 character limit (N visible characters).

Beta

Hyperlink navigation is currently in beta.

The Commands tab can edit a hyperlink navigation entry but not create one — new ones start from the Beta tab's nav builder. A nav entry can't be cloned or converted to a button command.