Telegram Mini App
Запись в барбершоп прямо в Telegram, без звонков и переписки
Мини-приложение открывается из чата с ботом: клиент выбирает услугу, мастера и время, а бот присылает подтверждение и напоминание. Ниже рабочая версия: запишитесь, и рядом появится то, что пришло бы в чат с ботом.
- Задача
- Барбершоп записывает клиентов в мессенджере вручную: администратор отвечает на «есть время в субботу?», сверяется с расписанием мастеров и не всегда успевает напомнить о визите. Клиенты пропускают запись, окна простаивают, а звонить или заполнять форму на сайте многим неудобно.
- Решение
- Сделал запись прямо в Telegram: мини-приложение открывается из чата с ботом, берёт цвета темы пользователя и ведёт по шагам до подтверждения. Свободное время считается по правилам барбершопа, сервер проверяет подпись Telegram у каждой записи и не даёт занять одно время дважды, а бот присылает подтверждение, напоминание и принимает отмену.
- Что получает владелец
- Запись за минуту, без звонка и переписки с администратором
- Клиент видит только действительно свободное время, накладок в расписании нет
- Подтверждение и напоминание приходят в Telegram сами, отмена одной кнопкой
- Подделать запись от чужого имени нельзя: сервер проверяет подпись Telegram
- В рабочей версии подключаются расписание из учётной системы или Google Таблицы, предоплата и уведомления администратору
- Стек
- Telegram Mini Apps
- TypeScript без библиотек
- Бот: Node, Bot API
- Проверка подписи initData
- Docker, Caddy, свой VPS
Как устроено
Приложение берёт цвета из темы пользователя, поэтому в светлой, тёмной и любой своей теме смотрится родным. Нижняя кнопка и «назад» это кнопки самого Telegram, при выборе дня и времени телефон слегка вибрирует. Свой у барбершопа только знак в шапке.
Сетка по 30 минут: стрижка с бородой на полтора часа занимает три окна подряд. У каждого мастера свой выходной, у топ-барбера цена на 400 ₽ выше, ближе чем за полчаса до начала записаться нельзя. «Любой мастер» показывает общее свободное время и отдаёт запись тому, у кого дешевле.
Сервер проверяет слот и записывает его одним действием. Если два человека нажмут «Записаться» на одно время одновременно, второй увидит «это время уже заняли» и обновлённую сетку. Правила записи у телефона и сервера общие, из одного файла.
Входа и пароля нет: Telegram подписывает данные пользователя ключом бота, сервер проверяет подпись у каждой записи и отмены. Подделанный или устаревший запрос отклоняется. Телефон и другие личные данные не собираются, имя берётся из Telegram.
Подтверждение с кнопкой отмены, напоминание о визите, исправленное сообщение после отмены. В демо напоминание приходит через минуту, в рабочей версии за два часа до визита, а администратор получает уведомление о каждой записи и отмене.
Соберу мини-приложение и бота под ваш бизнес: запись к мастерам, каталог, заказ, оплата и уведомления. Смета по разделам, оплата по этапам после приёмки.
Напишите в чате на Профи.ру, что за проект и к какому сроку. В ответ пришлю смету по пунктам.