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 \_, \`, \[…) |
| 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}