Saltar a contenido

Message formatting

Everything the bot "says for you" (welcomes, goodbyes, rules, notes, filters, /permapin, /echo) accepts the same formatting language. Type it by hand or apply formatting with your Telegram client: both are saved the same way. Test any text with /preview.

Syntax

You type You get
*bold* bold
_italic_ italic
__underline__ underline
~strike~ ~~strike~~
\|\|spoiler\|\| hidden text
`code` code
```block``` multi-line code block
>quote Telegram quote; consecutive lines starting with > form one quote
>… with the last line ending in \|\| expandable quote
[text](https://example.com) link
\* literal asterisk (same for \_, \`, \[…)

Buttons

You type You get
[Site](buttonurl://example.com) button opening the URL
[Site](buttonurl://example.com:same) button on the same row as the previous one
[Rules](buttonurl://#rules) button opening the note rules

Combine notes with buttons to other notes to build navigable menus in private chat:

/save menu Pick an option: [Hours](buttonurl://#hours) [Prices](buttonurl://#prices:same)
/save hours We open 9 to 18. [« Back](buttonurl://#menu)
/save prices See the website. [« Back](buttonurl://#menu)

Fillings

Filling Value
{first} {last} {fullname} first name, last name, full name
{username} @username, or a mention when they have none
{mention} clickable mention with the first name
{id} user ID
{chatname} {chatid} group name and ID
{date} {time} date and time (UTC)
{rules} adds a button that opens the rules

Modifiers

Modifier Effect
{preview} show link previews
{nonotif} send without notification
{protect} prevent forwarding and screenshots
{mediaspoiler} mark the photo/video as a spoiler
{admin} note/filter for admins only
{private} / {noprivate} force delivery in private / in the chat
{user} only non-admins trigger the filter
{allow_bot} bots may trigger the filter too
{replytag} the filter replies to the quoted message
{command Description} register the filter as a suggested command
{repeat 6h} repeated note every 6 hours

Random variants

Separate several versions with a line containing only %%% and the bot picks one at random each time:

/setwelcome Hi {first}!
%%%
Welcome, {first}! Read the rules with {rules}