Message formatting
Safe Markdown, fillings, and URL buttons for welcome and goodbye templates.
Greeting templates use a safe Markdown-style format. Raw HTML is shown as plain text, so a custom message cannot inject Telegram markup. Lucy validates templates when you save them with /setwelcome or /setgoodbye.
Text styles
| You write | Result |
|---|---|
*bold* or **bold** |
bold |
_italic_ |
italic |
__underline__ |
underline |
~strikethrough~ |
strikethrough |
||spoiler|| |
spoiler |
`code` |
inline code |
```blocks``` |
preformatted block |
> text |
quoted block |
[label](https://…) |
inline link |
Fillings
These placeholders expand when the message sends:
| Filling | Meaning |
|---|---|
{first} |
First name |
{last} |
Last name |
{fullname} |
Full name |
{username} |
@username when present |
{mention} |
Clickable mention |
{id} |
Numeric user id |
{chatname} |
Group title |
Unknown placeholders are rejected on save.
URL buttons
Put each button on its own template line:
[Rules](buttonurl://https://example.com/rules)
Append :same to place a button on the same row as the previous one:
[Chat](buttonurl://https://t.me/example:same)
Allowed links
Only these URL schemes are accepted for inline links and buttons:
http:https:tg:
Validation
Lucy rejects templates that include invalid placeholders, unsafe links, empty bodies, or text over Telegram’s length limit. Fix the template and run /setwelcome or /setgoodbye again. See also Greetings.