M meni.ge
Start for free
πŸ”— Integrations

✈️ Telegram Mini App β€” Setup Guide

How to connect your restaurant menu as a Telegram Mini App with deep links and inline buttons

Documentation

Telegram Mini App β€” Step-by-Step Guide

What is it?

Telegram Mini App allows your customers to open the restaurant's digital menu directly inside Telegram β€” without installing apps or switching to a browser. The menu looks like a native part of Telegram: it adapts to the user's theme, supports the Back button and gestures.

Benefits

  • πŸ“± Inside Telegram β€” customers don't need to switch to a browser
  • 🎨 Native look β€” colors, fonts and theme adapt to Telegram
  • πŸ”— Deep Links β€” direct link to a specific restaurant's menu
  • 🌍 Auto language β€” language is taken from the user's Telegram settings
  • πŸͺ No cookies β€” cookie banner is not shown inside Telegram

Quick Start

Step 1 β€” Create a bot

Open @BotFather in Telegram and send:

/newbot
  1. Enter the bot name (e.g., Meni Menu Bot)
  2. Enter the username (e.g., MeniMenuBot) β€” must end with Bot
  3. Save the received Bot Token (format: 123456789:ABCdefGHI...)

πŸ’‘ If the bot is already created, proceed to Step 2.

Why do you need a Bot Token?

The Bot Token is a secret key for programmatic bot management via the Telegram Bot API. For basic Mini App setup (steps 2–4) it is not required β€” everything is done through BotFather. But you will need it if you want to:

  • Send messages to customers β€” order status notifications, promotions, welcome messages
  • Add inline buttons to bot messages (e.g., a "πŸ“‹ Open menu" button β€” see section below)
  • Create a Telegram bot for receiving orders β€” the bot can receive and process orders
  • Set up a Webhook β€” receive events from Telegram (button presses, user commands)
  • Integrate with CRM or POS system β€” automatic order processing through the bot

πŸ”’ Don't publish the Bot Token β€” anyone who has the token can control your bot. If the token is compromised, revoke it with the /revoke command in BotFather.


Step 2 β€” Create the Mini App

Send BotFather the command:

/newapp
  1. Select the bot from the list
  2. Title β€” application name (e.g., Meni)
  3. Description β€” description (e.g., Digital restaurant menu)
  4. Photo β€” upload a 640Γ—640 px image (app icon)
  5. GIF β€” animation (optional). To skip, send /empty
  6. Web App URL β€” specify the address of your client application:
https://meni.ge
  1. Short Name β€” short name for the link (e.g., menu)

After this you will have a working link like:

https://t.me/YourBot/menu

Step 3 β€” Add a "Menu" button to the bot chat

Send BotFather:

/setmenubutton
  1. Select the bot
  2. Send the URL:
https://meni.ge
  1. Enter the button text (e.g., Open Menu or πŸ“‹ Menu)

Now when opening a chat with the bot, a button will appear at the bottom of the screen that opens your application.


Step 4 β€” Allow the domain

Send BotFather:

/setdomain

Select the bot and specify the domain:

meni.ge

This will allow Telegram Web App to work on your domain and all its subdomains (e.g., locationid.meni.ge).


Deep Links β€” links to a specific restaurant

Telegram supports the startapp parameter, which is passed to the application when opened. Use it for links to a specific restaurant:

Link What opens
t.me/YourBot/menu Home page
t.me/YourBot/menu?startapp=LOCATION_ID Menu of a specific restaurant
t.me/YourBot/menu?startapp=LOCATION_ID__ru Menu in Russian
t.me/YourBot/menu?startapp=LOCATION_ID__en Menu in English

Examples

If your restaurant's LOCATION_ID is lnc2w74z:

https://t.me/YourBot/menu?startapp=lnc2w74z
https://t.me/YourBot/menu?startapp=lnc2w74z__ru
https://t.me/YourBot/menu?startapp=lnc2w74z__en

πŸ“Œ LOCATION_ID is the identifier of your location in meni.ge. You can find it in the admin panel or in the URL like https://LOCATION_ID.meni.ge.


Inline buttons from the bot

If your bot sends messages to customers, you can add an inline button that will open the menu:

Option 1 β€” Web App button (opens immediately)

{
  "inline_keyboard": [[{
    "text": "πŸ“‹ Open menu",
    "web_app": {
      "url": "https://LOCATION_ID.meni.ge/en"
    }
  }]]
}

Option 2 β€” Deep Link button

{
  "inline_keyboard": [[{
    "text": "πŸ“‹ Open menu",
    "url": "https://t.me/YourBot/menu?startapp=LOCATION_ID__en"
  }]]
}

What works automatically

After connecting, the following features are automatically enabled inside Telegram:

Feature Description
🎨 Theme App colors adapt to the Telegram theme (light/dark)
◀️ Back button Native Telegram button appears when opening a product card
πŸ“ Viewport The application stretches to full screen
πŸ”’ Close protection Vertical swipe won't accidentally close the app
🌍 Auto language Language is determined from the Telegram profile, unless set explicitly
πŸͺ Cookies Cookie banner is not displayed inside Telegram

QR codes for restaurants

Existing QR codes with URLs like https://lnc2w74z.meni.ge will continue to work as usual β€” through the browser.

For additional Telegram integration, you can place a second QR code on tables with a bot link:

https://t.me/YourBot/menu?startapp=lnc2w74z

Verification

  1. Open the link https://t.me/YourBot/menu on your phone
  2. Click Start (if opening the bot for the first time)
  3. Click the πŸ“‹ Menu button in the bottom panel of the chat
  4. Make sure the app opened and loaded the menu
  5. Try opening the deep link: https://t.me/YourBot/menu?startapp=LOCATION_ID

Common problems

Problem Solution
App doesn't open Check that the domain meni.ge is allowed via /setdomain
White screen Make sure the Web App URL is set to https://meni.ge (HTTPS is required)
startapp doesn't work Check the format: LOCATION_ID (no spaces or special characters). Language separator is double underscore __
Theme not applied Telegram Mini App SDK must be connected (update the client application)

Useful links