# Bot Identity, Profile, Commands & Menu Button

> Inspect bot metadata (getMe), configure profile descriptions, command scopes, and the persistent [Menu] button.

**Category:** Telegram Bot API — Methods (A-Z)  
**URL:** https://docs.botlify.cloud/commands-menu  
**Platform:** Botlify Cloud (https://botlify.cloud)  

---

## Bot Identity & Metadata (getMe)

   

Before executing bot actions, you can query Telegram's servers to retrieve your bot's official identification, capabilities, and system flags using `getMe`:

   
```php

```

   
> [!TIP]
> **Auto-Injected Constant: BOT_USERNAME**
> On Botlify Cloud, you do not need to call getMe on every webhook to get your bot's handle. The platform automatically injects BOT_USERNAME directly into your .env file.

   

## Customizing Bot Profile via API (Name, Bio & Description)

   

Telegram allows bots to programmatically configure their visible profile text without manually interacting with @BotFather:

   
    
| Method | Visibility in Telegram | Max Length |
| --- | --- | --- |
| setMyName | Top header title of the bot in chat lists and profile headers. | 64 characters |
| setMyDescription | Shown in the center of the screen when a user opens an empty chat with the bot before tapping /start. | 512 characters |
| setMyShortDescription | Shown on the bot's profile page and in Telegram chat share cards. | 120 characters |

   

   
```php

```

   

## Registering Slash Commands with Granular Scopes

   

The `setMyCommands` method registers slash commands that autocomplete when users type `/`. Using Telegram's **BotCommandScope**, you can show different commands to normal users vs. chat administrators:

   
```php

```

   

## Configuring the Persistent Bottom [Menu] Button

   

Telegram allows replacing the default paperclip or command menu button beside the chat input box with a direct **Web App Mini App** launcher using `setChatMenuButton`:

   
```php

```

> [!TIP]
> **Botlify Cloud Runtime**
> Credentials are auto-injected in .env — always load them with getenv(): BOT_TOKEN, ADMIN_CHAT_ID, BOT_USERNAME. Main database: database.db (SQLite, WAL mode). Runtime errors: error.log. Quick test: send to $ADMIN_CHAT_ID. Full details: Runtime Reference.
