Skip to content

Bot profile

A bot's profile is what a person sees before they ever send it a message: the name in the chat list, the short line on its card, the long text on an empty chat screen. Every one of these can be set per language, so a bot reads as native to whoever opened it.

Setting the fields works now

setMyName, setMyDescription, setMyShortDescription and their get* counterparts are verified live — get a token with POST /newbot and call them. The profile photo and the empty-chat media land with the media pipeline. Implementation status.

The fields

FieldWhere it showsMethod
name (first_name)Chat list, header — the display namesetMyName
about (~120 chars)The profile card, under the namesetMyShortDescription
description (~512 chars)The empty chat screen, before the first messagesetMyDescription
description photo / documentThe empty chat screen, above the description(planned — media pipeline)
profile photoEverywhere the bot appears(planned — media pipeline)
privacy_policy_urlLinked from the bot's menu(planned)

The distinction people get wrong: about is the short line on the card; description is the longer text that only appears on an empty chat, and vanishes the moment the first message is sent. Write the description as an onboarding hint — what the bot does, how to start — not as a permanent bio.

Localization

Each field carries a variant per language_code. A bot that sets an English and a Russian description shows each user the one matching their client language; anyone else falls through to the default.

The default is the empty language_code — set that one first, always, because it is what every unmatched user sees. GROM's target languages are uz, ru, en; the empty-code fallback is what makes a fourth language degrade gracefully instead of showing blank.

bash
# The fallback everyone sees unless a better match exists — set it first.
curl "https://api.casinoplaneta.info/bot$GROM_TOKEN/setMyDescription" \
  -H 'Content-Type: application/json' \
  -d '{"description":"A weather bot. Send a city name."}'

# A Russian variant, shown to ru clients.
curl "https://api.casinoplaneta.info/bot$GROM_TOKEN/setMyDescription" \
  -H 'Content-Type: application/json' \
  -d '{"description":"Бот погоды. Отправьте название города.","language_code":"ru"}'

Read a field back the same way, passing the language_code you want — omit it for the default:

bash
curl "https://api.casinoplaneta.info/bot$GROM_TOKEN/getMyDescription?language_code=ru"
# -> {"ok":true,"result":{"description":"Бот погоды. …"}}

This is the same replace-not-merge, empty-code-fallback model as command lists — the two were designed to behave identically so you only learn the rule once. Setting a field with a language_code sets only that language; it never touches the default.

Where the profile is edited from

Today these are API calls. The conversational front-end — @GromCore's /setname, /setdescription, /setabouttext, /setuserpic — is not up yet; each of those commands maps to the method above. Set them over HTTP now; the chat UI is a later layer on the same calls.