Денис Лузиков@deni_vitoБесплатный разбор

Telegram Mini App: что это и когда нужно

Коротко

Telegram Mini App — это веб-страница, которая открывается внутри мессенджера и выглядит как приложение: витрина, форма, личный кабинет. Запускается семью способами — от кнопки в чате до прямой ссылки. Главное отличие от бота: бот ведёт диалог сообщениями, мини-приложение показывает интерфейс, где можно листать, выбирать и платить.

Про мини-приложения Telegram спрашивают и разработчики, и владельцы бизнеса — и ищут они совершенно разное.

В выдаче в основном руководства для программистов: как поднять React-приложение, как получить данные пользователя, какой SDK взять. Полезно, если вы пишете код. Бесполезно, если вам надо решить, заказывать это или обойтись ботом.

Здесь — вторая половина вопроса: что мини-приложение даёт бизнесу, чем оно дороже бота, как в нём устроены деньги и где проходит граница, за которой интерфейс необходим. По дороге разберём 7 способов запуска приложения и 2 разных правила оплаты — для цифровых товаров и для физических, потому что именно на них чаще всего спотыкаются. Техническая часть тоже есть, но с той стороны, где она превращается в сроки и деньги.

Что это такое

Мини-приложение — это обычная веб-страница, которая открывается внутри Telegram и получает от мессенджера то, чего у сайта в браузере нет: кто её открыл, тему оформления, кнопки управления и доступ к оплате.

Официальная документация формулирует прямо: с помощью мини-приложений разработчики создают интерфейсы, которые запускаются внутри Telegram и могут полностью заменить сайт.

Отсюда три следствия, важные для решения.

Это веб-разработка. Внутри — тот же HTML, CSS и JavaScript. Значит, действуют обычные правила: интерфейс надо проектировать, верстать и поддерживать. Мини-приложение не «настройка бота», это отдельный продукт.

Человек не выходит из мессенджера. Он не переключается в браузер, не логинится, не вводит имя и телефон — Telegram уже знает, кто это. Каждый шаг, который убран из пути, добавляет конверсию.

Оно не индексируется. У мини-приложения нет своей страницы в поиске. Люди попадают в него из Telegram — из бота, ссылки, рекламы или канала. Поисковый трафик приводит сайт, а не мини-приложение, и это стоит учитывать в планах.

Бот, мини-приложение или сайт

Три инструмента, которые часто путают, потому что все три «работают в интернете».

Хватит ботаДешевле и быстрее
  • Действие описывается разговором
  • Вопрос — ответ — подтверждение
  • Позиций мало, выбор простой
  • Запись, заявка, статус заказа
  • Уведомления и напоминания
Нужно мини-приложениеДороже, но иначе не сделать
  • Нужно листать и сравнивать
  • Каталог с фильтрами и картинками
  • Корзина и оформление заказа
  • Личный кабинет с историей
  • Карта, календарь, конструктор
Выбирать стоит по тому, что делает человек, а не по тому, что современнее

Проверка на практике простая: попробуйте описать нужное действие как переписку. «Покажи свободное время — выбери день — подтверди» описывается легко, значит хватит бота. «Посмотри сорок товаров, отфильтруй по размеру, сравни два и положи в корзину» в переписку не укладывается — здесь нужен интерфейс.

Сайт при этом никуда не девается: он приводит людей из поиска и работает для тех, кто не в Telegram. Мини-приложение обслуживает тех, кто уже пришёл. Задачи разные, и одно другое не заменяет.

Семь способов запуска

Это то, чего нет в статьях-инструкциях, а решает многое: способ запуска определяет, откуда придут люди и что мини-приложение получит на входе. Документация Telegram перечисляет семь вариантов.

Способ запускаОткуда открываетсяКогда удобен
Главное мини-приложениекнопка в профиле ботаосновной продукт компании
Кнопка меню ботасиняя кнопка рядом с полем вводапостоянный вход, каталог
Инлайн-кнопкапод конкретным сообщениемшаг сценария: выбрать, оплатить
Кнопка клавиатурыклавиатура под чатомпростые формы, отправка данных боту
Инлайн-режимиз любого чата через @имя_ботаподелиться, показать другому
Прямая ссылкаиз рекламы, с сайта, из письмапривод трафика извне
Меню вложенийскрепка в чатесценарии внутри переписки

Для бизнеса рабочих обычно три. Кнопка меню — постоянный вход, её видно всегда. Инлайн-кнопка — точечный вызов внутри сценария: бот спросил, что нужно, и открыл нужный экран. Прямая ссылка — единственный способ привести человека снаружи: её ставят в рекламу, на сайт и в рассылку.

Разница между кнопкой клавиатуры и инлайн-кнопкой не косметическая. Мини-приложение, открытое кнопкой клавиатуры, умеет отправить данные обратно боту служебным сообщением — и бот отвечает, не обращаясь ни к какому внешнему серверу. Для простой формы это означает, что серверная часть вообще не нужна: заявка приходит боту напрямую. Инлайн-кнопка даёт больше — данные о пользователе и возможность отправить сообщение от его имени, — но требует полноценного бэкенда.

Как открывается мини-приложение
Пользовательжмёт кнопку или ссылку
Telegramоткрывает окно и передаёт initData
Ваш серверпроверяет подпись
Интерфейскаталог, форма, кабинет
Действиезаказ, оплата, заявка
Данные о пользователе приходят подписанной строкой и проверяются на сервере

Авторизация: где чаще всего дыра

Когда мини-приложение открывается, Telegram передаёт ему строку initData — данные о пользователе: идентификатор, имя, язык, иногда чат, из которого пришли. Эта строка подписана.

Ключевое правило: подпись обязательно проверять на своём сервере. Данные приходят на сторону браузера, а всё, что приходит в браузер, пользователь может подменить. Мини-приложение, которое верит initData без проверки, пускает под чужим именем любого, кто откроет консоль разработчика.

Это не теория, а самая частая уязвимость наспех сделанных мини-приложений. Проявляется она предсказуемо: сначала всё работает, потом кто-то видит чужой заказ или чужой баланс.

С обновлением Bot API появилась деталь, полезная тем, кто заказывает разработку у подрядчика: сторонние сервисы и конструкторы теперь могут проверять данные не зная токена вашего бота. Раньше конструктору приходилось отдавать токен — то есть полный доступ к боту. Если вам предлагают сервис, который до сих пор требует токен для работы с мини-приложением, это повод спросить, зачем.

Деньги: два разных правила

Самая практичная часть и та, где чаще всего ошибаются в планах. Telegram делит товары на два вида, и правила у них разные.

Цифровые товарыФизические товары и услуги
Что этодоступ, подписка, курс, контентвещи, доставка, офлайн-услуги
Чем платяттолько Telegram Stars (XTR)карта через провайдера
Нужен провайдернетда, подключается в BotFather
Данные покупателяне нужныадрес и доставка при необходимости
Комиссия Telegramзаложена в стоимость Starsне берёт

Цифровое — только за Stars. Документация формулирует это как обязанность: все транзакции по цифровым товарам и услугам проводятся в Telegram Stars с кодом валюты XTR. Пользователь покупает Stars внутренними покупками Apple и Google или через служебного бота, а потом тратит их у вас. Обойти правило, продав подписку картой «мимо» Telegram, — прямое нарушение, и рискует здесь ваш бот.

Физическое — через провайдера. Здесь Telegram выступает посредником интерфейса: он не обрабатывает платежи, не хранит данные карт и не берёт комиссию. Провайдер подключается через BotFather, у него же остаётся вся чувствительная информация.

Две технические детали, которые влияют на срок и на надёжность. Первая: на запрос подтверждения перед оплатой бот обязан ответить в течение десяти секунд, иначе транзакция отменяется — то есть проверка наличия товара должна быть быстрой, и «сходить в 1С и подумать полминуты» здесь не работает. Вторая: тестировать оплату можно в тестовом режиме, не списывая реальных денег, — этот шаг стоит требовать от подрядчика до запуска.

Для российского бизнеса есть третий путь, который часто оказывается проще обоих: оплата на своей странице. Мини-приложение доводит до заказа, а оплата уходит на привычный вам эквайринг. Это снимает вопросы совместимости провайдеров и оставляет деньги в контуре, который вы уже настроили. Подробнее про то, как устроен магазин в Telegram целиком, — в отдельном разборе.

Что мини-приложение умеет

Кроме интерфейса, мессенджер даёт несколько вещей, ради которых всё и затевается.

Знает, кто открыл. Ни регистрации, ни пароля, ни подтверждения телефона. Пользователь опознан в момент открытия — при условии, что подпись проверена.

Выглядит частью Telegram. Тема оформления передаётся приложению, поэтому оно совпадает по цветам со светлым и тёмным режимом мессенджера. Сделанное аккуратно мини-приложение не выглядит вставленным сайтом.

Умеет отправлять сообщения от имени пользователя. Выбрал товар в интерфейсе — в чат с ботом ушло сообщение с заказом, и дальше разговор продолжается в переписке.

Присылает уведомления. Не само, а через бота — но это та же самая связка: интерфейс для действий, бот для напоминаний. Уведомление о статусе заказа приходит в чат, а не на почту, которую не читают.

Принимает оплату по правилам, разобранным выше.

Работает в группах и каналах. Бота с мини-приложением можно добавлять в групповые чаты — сценарии вроде сбора заказов в чате отдела становятся возможными.

Чего мини-приложение не умеет

Список короче, но важнее — здесь живут несбывшиеся ожидания.

Оно не появляется в поиске. Ни в Яндексе, ни в Google. Трафик приводит что-то другое: сайт, реклама, канал.

Оно не работает вне Telegram. Ссылка, отправленная человеку без мессенджера, не откроется. Если аудитория смешанная, нужен и сайт.

Оно не умнее вашей системы. Мини-приложение показывает данные, которые ему дают. Если остатки не ведутся, каталог будет врать так же, как врал менеджер по телефону.

Оно не заменяет мобильное приложение, когда нужны фоновая работа, push вне мессенджера, работа офлайн или сложная работа с камерой и датчиками.

Пять типов, которые действительно работают

Мини-приложения делают под самые разные задачи, но окупаются обычно эти пять. Список полезен тем, что показывает, на что похожа ваша задача.

Витрина с заказом. Каталог, карточка товара, корзина, оформление. Самый частый запрос и самый предсказуемый по срокам. Живёт там, где позиций больше пары десятков и есть картинки: одежда, еда, товары для дома.

Запись и бронь. Календарь со свободными слотами, выбор мастера или столика, подтверждение. Выигрыш здесь не в красоте, а в том, что человек видит доступное время сразу и не переписывается ради двух вопросов. Как эта задача решается ботом без интерфейса, разобрано в статье про бота для записи клиентов — сравните и выберите уровень.

Личный кабинет. История заказов, статус доставки, баланс, бонусы, документы. Имеет смысл там, где клиент возвращается: сервисы, подписки, оптовые продажи. Часто заменяет собой звонки «а что с моим заказом».

Заявка с расчётом. Конструктор, в котором человек собирает параметры и сразу видит цену: комплектация, объём, сроки. Хорошо работает в услугах, где цена зависит от нескольких переменных и по телефону объясняется долго.

Внутренний инструмент. Мини-приложение не обязательно для клиентов. Заявки от сотрудников, отчёты с точек, приём смен, чек-листы — всё то, ради чего иначе покупают отдельную систему и потом заставляют людей в неё заходить. Здесь у Telegram неочевидное преимущество: он уже установлен у всех, и обучать никого не нужно.

Можно ли собрать самому

Спрашивают часто: формулировки вроде «telegram mini apps как создать» и «как создать мини приложение в телеграм» набирают около полутора сотен обращений в месяц. Ответ зависит от того, что понимать под «самому».

Без кода — в ограниченных рамках. Часть конструкторов ботов умеет показывать простые экраны-витрины. Это работает, пока задача укладывается в их шаблон: список товаров, карточка, кнопка заказа. Как только нужны свои правила расчёта или связь с вашей базой, шаблон заканчивается — та же граница, где конструктор упирается в потолок, только наступает она раньше, чем у обычного бота.

Своими силами, если есть веб-разработчик. Это реалистично: мини-приложение — обычный фронтенд плюс небольшой бэкенд. Разработчику, который делает сайты, освоить особенности Telegram — вопрос нескольких дней. Именно поэтому статьи в выдаче написаны для программистов: с их стороны задача действительно понятная.

Что не получится сделать без разработчика вообще: проверку подписи на сервере, интеграцию с вашими системами, оплату по правилам площадки. Всё это серверная работа, и в конструкторе её нет.

Если вы ещё не выбрали площадку и способ сборки, начать стоит с общего разбора — как создать бота и какие есть варианты, от конструктора до своего кода. Разумный вариант для проверки идеи — собрать первую версию из готовых блоков, посмотреть, пользуются ли ей, и только потом заказывать своё. Стоимость ошибки в этом порядке измеряется вечером, а не бюджетом.

Мини-приложения есть не только в Telegram

Об этом редко пишут, а для планирования важно: интерфейс внутри мессенджера — не исключительная особенность Telegram.

TelegramMAXВКонтакте
Мини-приложенияда, семь способов запускада, открываются после модерации ботада, давняя платформа приложений
Оплата внутриStars для цифрового, провайдер для физическогопо правилам платформысвоя платёжная механика
Проверка перед запускомнетбот проходит модерацию до 48 часовзависит от типа приложения
Аудиториясамая широкая в РФрастёт, конкуренции меньшетам, где живут сообщества

Тем, кто планирует надолго, это стоит заложить сразу: логика приложения — каталог, расчёты, интеграции — общая, а обёртка под каждую площадку своя. Поэтому проект стоит с самого начала строить так, чтобы бизнес-часть жила отдельно от способа показа. Тогда второй мессенджер обойдётся заметно дешевле первого. Мини-приложения есть и в MAX, и открываются они после того, как бот прошёл проверку площадки — как устроен запуск бота в MAX, разобрано отдельно.

Откуда берутся пользователи

Мини-приложение не приводит людей само — у него нет ни поиска, ни витрины магазина приложений. Входов ровно четыре, и планировать их надо до разработки, а не после.

Ваш бот и канал. Основной путь: кнопка меню в боте, ссылка в закреплённом посте, упоминание в рассылке по подписчикам. Работает, если аудитория в Telegram уже собрана.

Прямая ссылка снаружи. Единственный способ привести человека, который о вас не знал: ссылку ставят на сайт, в рекламу, в письмо, в визитку. Открывается она сразу в приложении, минуя переписку.

Реклама в Telegram. Объявление ведёт не на сайт, а прямо в интерфейс. Для товаров это короче на два шага, чем путь через посадочную страницу.

Из рук в руки. Мини-приложением можно поделиться в чате, и получатель откроет его в один тап. Для сервисов, где решение принимают вдвоём — выбор подарка, заказ на компанию, — это заметный канал.

Проверьте перед запуском самое обидное: как выглядит ссылка, отправленная человеку, у которого Telegram не установлен. Если она ведёт в пустоту, а трафик вы гоните из общей рекламы, часть бюджета уходит в никуда — и лечится это простой посадочной страницей-перехватчиком.

Сколько стоит и сколько занимает

Разработка мини-приложения — это веб-разработка, поэтому и считается она как веб-разработка, а не как настройка бота.

Что делаемСрокЧто определяет цену
Форма или анкета с отправкой ботунесколько днейчисло полей и проверок
Витрина без оплаты1–2 неделисколько экранов и откуда товары
Каталог с корзиной и оплатой3–6 недельинтеграции и способ оплаты
Личный кабинет с данными из ваших системот 6 недельналичие API у ваших систем
Поддержка и правкипостояннокак часто меняется ассортимент

Мини-приложение при сопоставимой задаче обычно обходится в два-три раза дороже бота. Причина не в жадности подрядчиков, а в составе работ: у бота есть сценарий, у приложения — экраны, состояния, поведение на разных размерах, обработка ошибок сети и серверная часть под всё это.

Главный множитель цены — есть ли у ваших систем API. Если каталог и остатки отдаются программно, работа сводится к интерфейсу. Если товары живут в таблице, которую ведёт вручную сотрудник, к проекту добавляется отдельная задача про данные — и она нередко больше самого приложения. Порядок сумм и что на них влияет разобраны в статье про то, сколько стоит чат-бот: для мини-приложения логика та же, коэффициент выше.

Из чего состоит проект

Полезно понимать состав работ — хотя бы для того, чтобы читать сметы подрядчиков и видеть, что в них пропущено.

Сценарий и экраны. Не дизайн, а решение: сколько экранов, что на каждом, куда ведёт каждая кнопка. Этот этап делается на бумаге и стоит дешевле всего, а сэкономленный на нём день оборачивается неделей переделок.

Интерфейс. Вёрстка и поведение: списки, фильтры, корзина, состояния загрузки и ошибок. Отдельная строка — поддержка светлой и тёмной темы, о которой забывают в половине проектов.

Серверная часть. Проверка подписи, хранение заказов, обращения к вашим системам, обработка оплаты. Внешне её не видно, поэтому в дешёвых предложениях она чаще всего и отсутствует.

Бот-обвязка. Кнопка запуска, уведомления, статусы, ответы на вопросы. Мини-приложение без бота работает наполовину: интерфейс закрылся — и связь с человеком оборвалась.

Хостинг и домен. Мини-приложение должно лежать на сервере с HTTPS. Это небольшие деньги, но постоянные, и их стоит закладывать сразу.

Приёмка и правки. Две-три недели после запуска, когда становится видно, где люди застревают. Проект, у которого этого этапа нет в плане, считайте недооценённым.

Что нужно от вас как от заказчика: список того, что показываем, откуда берутся данные, кто отвечает за содержание и что происходит после заказа. Последнее забывают чаще всего — и получают красивое приложение, из которого заказы уходят на почту, куда никто не смотрит.

Что спросить у подрядчика

Пять вопросов, которые отделяют осмысленное предложение от красивой презентации.

«Где проверяется подпись данных пользователя?» Правильный ответ — на сервере. Ответ «мы берём данные из Telegram» без упоминания сервера означает, что проверки нет.

«Что происходит, когда пропадает сеть?» Должен быть внятный ответ про индикаторы загрузки и повторную отправку. Мини-приложениями пользуются в дороге.

«Как приложение узнаёт про наличие и цены?» Если ответ «занесём вручную», спросите, кто и как часто будет это делать через полгода.

«Что увидит человек в чате после заказа?» Хорошая связка всегда пишет в бот подтверждение. Если этого нет в плане, его туда стоит добавить.

«Как тестируется оплата?» Ответ должен содержать тестовый режим. Проверять оплату на живых деньгах и живых клиентах — плохая практика, которая всплывает в самый неподходящий момент.

Вопросы работают и в обратную сторону: если подрядчик сам поднимает эти темы до вас, с ним, скорее всего, можно работать.

Что ломается на практике

Пять вещей, которые видно только после запуска на живых людях.

Интерфейс сделан для большого экрана. Мини-приложение открывается в окне поверх чата, и это окно меньше, чем кажется в макете. Каталог, красивый на ноутбуке, на телефоне превращается в бесконечную прокрутку.

Тема оформления не учтена. Приложение, нарисованное только для светлой темы, у половины пользователей выглядит поломанным: белый текст на белом фоне — классика.

Нет состояния «плохая сеть». В мессенджер заходят из метро и лифта. Экран без индикатора загрузки и без внятной ошибки читается как «приложение сломалось», и человек уходит.

Данные не проверены на сервере. Разобрано выше и стоит повторить: это не мелочь, а прямая дыра.

Нет пути назад в бот. Пользователь закрыл окно — и остался в пустом чате, не понимая, что произошло с заказом. Хорошая связка всегда пишет в чат: «заказ №14 принят, ждите звонка».

Порядок, который экономит бюджет
  1. 1
    Бот со сценариемнеделя, дёшево, сразу в работе
  2. 2
    Месяц наблюденийгде люди застревают и чего просят
  3. 3
    Один экран приложениясамое узкое место, а не весь каталог
  4. 4
    Оплатакогда путь до заказа уже работает
  5. 5
    Личный кабинетесли клиенты возвращаются
Каждый шаг даёт данные для следующего и позволяет остановиться раньше

Как решить, нужно ли оно вам

Четыре вопроса, ответы на которые обычно закрывают тему за десять минут.

Что человек должен сделать? Если глагол — «выбрать из многого», «сравнить», «настроить», интерфейс нужен. Если «сообщить», «записаться», «узнать» — хватит бота.

Сколько у вас позиций? До полутора десятков прекрасно листаются кнопками в чате. Сотня — уже каталог, и в переписке она нечитаема.

Возвращаются ли клиенты? Личный кабинет с историей заказов имеет смысл там, где покупают повторно. Для разовой услуги это лишние деньги.

Откуда придут люди? Если ответ «из поиска» — сначала сайт, мини-приложение вторым шагом. Если «из нашего канала и рекламы в Telegram» — можно сразу сюда.

Частая и дорогая ошибка — заказать интерфейс до того, как проверен спрос. Бот со сценарием стоит недели работы и отвечает на главный вопрос: чего людям на самом деле не хватает. Половина заказчиков после такого месяца обнаруживает, что каталог не нужен, а нужен нормальный статус заказа и напоминание.

Если задача шире, чем «сделать бота», и звучит как «собрать продукт внутри мессенджера» — это разработка чат-ботов и приложений под задачу, и начинается она с разбора сценария, а не с выбора технологии.

Если непонятно, нужен вам интерфейс или хватит бота

Разница между ботом и мини-приложением стоит денег: интерфейс дороже сценария в разы, и заказывать его имеет смысл не всегда. Опишите, что должен делать пользователь — выбирать из каталога, заполнять форму, смотреть свои данные, — и я скажу, где проходит граница в вашем случае и во что обойдётся каждый вариант. Разбор бесплатный.

Денис Лузиков
Денис ЛузиковРазработчик ИИ-агентов и чат-ботов

5 лет работаю с ИИ, 120+ проектов в разных нишах. Четыре продукта в Telegram, которые можно открыть и попробовать прямо сейчас, — суммарно 477 016 пользователей в месяц. Разработку веду сам, без агентства.

Вопросы

Частые вопросы

Чем мини-приложение отличается от обычного чат-бота?

Бот общается сообщениями и кнопками: вопрос — ответ — кнопка — следующий шаг. Мини-приложение показывает полноценный интерфейс, как сайт: каталог с фильтрами, корзина, календарь, личный кабинет. Правило простое: если действие описывается диалогом, хватит бота; если пользователю нужно что-то выбирать, сравнивать и листать — нужен интерфейс.

Сколькими способами можно открыть мини-приложение?

Семью. Официальная документация перечисляет: главное мини-приложение из профиля бота, кнопка обычной клавиатуры, инлайн-кнопка под сообщением, кнопка меню бота, инлайн-режим, прямая ссылка и меню вложений. Для бизнеса чаще всего используют три: кнопку меню, инлайн-кнопку и прямую ссылку — последняя удобна тем, что её можно поставить на сайт и в рекламу.

Как принимать оплату в мини-приложении?

Зависит от товара. Цифровые товары и услуги — доступы, подписки, курсы — Telegram разрешает продавать только за Telegram Stars, валюта XTR. Физические товары и услуги оплачиваются через стороннего платёжного провайдера, которого подключают через BotFather; Telegram при этом не берёт комиссию и не хранит данные карт. Вариант с оплатой на своей странице тоже работает и часто оказывается проще.

Можно ли доверять данным о пользователе, которые приходят в мини-приложение?

Только после проверки. Telegram передаёт данные о пользователе строкой initData с цифровой подписью, и её обязательно сверять на своём сервере. Без проверки подписи любой человек может подделать эти данные и представиться кем угодно. Это самая частая дыра в мини-приложениях, сделанных наспех.

Мини-приложение заменяет сайт?

Для сценария внутри мессенджера — да, документация прямо говорит, что мини-приложения могут полностью заменить сайт. Но у него нет отдельного адреса в поиске: страницу мини-приложения не найдут в Яндексе, туда попадают из Telegram. Поэтому сайт и мини-приложение решают разные задачи: сайт приводит людей из поиска, мини-приложение обслуживает пришедших.

Сколько стоит разработать мини-приложение?

Дороже бота — обычно в два-три раза при сопоставимой задаче, потому что это полноценная веб-разработка плюс серверная часть. Простая витрина с корзиной укладывается в несколько недель, личный кабинет с интеграциями считается отдельно. Сэкономить помогает порядок: сначала бот со сценарием, интерфейс — когда точно известно, чего людям не хватает.