Короткий ответ
Telegram-бот для записи показывает услуги и свободное время, временно резервирует выбранный слот, получает контакт, при необходимости принимает предоплату и подтверждает визит. После записи он отправляет напоминания и позволяет перенести или отменить визит без участия администратора. Критически важная часть находится на сервере: именно он должен атомарно резервировать время и исключать двойную запись.
Telegram-бот для записи показывает услуги и свободное время, временно резервирует выбранный слот, получает контакт, при необходимости принимает предоплату и подтверждает визит. После записи он отправляет напоминания и позволяет перенести или отменить визит без участия администратора. Критически важная часть находится на сервере: именно он должен атомарно резервировать время и исключать двойную запись.
Путь клиента от ссылки до подтверждения
Оптимальный сценарий:
- Клиент открывает бота с сайта, карты, рекламы или QR-кода.
- Выбирает услугу.
- Выбирает филиал и специалиста либо вариант «любой».
- Видит только реально свободные даты и время.
- Оставляет имя и телефон.
- Вносит предоплату, если она обязательна.
- Получает подтверждение, адрес и кнопку управления записью.
- До визита получает одно или два напоминания.
На каждом экране должна быть кнопка Назад. После выбора времени бот показывает итог: услуга, специалист, дата, длительность, цена, адрес и правила отмены.
Как хранить услуги, сотрудников и расписание
Для каждой услуги нужны:
- название для клиента;
- длительность;
- цена или правило расчёта;
- буфер до и после;
- допустимые сотрудники;
- филиалы;
- необходимость предоплаты;
- минимальное время до записи.
Сотруднику задаются рабочие интервалы, перерывы, отпуска и исключения. Расписание нельзя хранить только в тексте кнопок: свободные слоты вычисляются из актуальных данных при каждом запросе.
Пример: услуга длится 60 минут, после неё нужен буфер 15 минут. Если мастер занят в 14:00–15:00, следующий слот начинается не раньше 15:15.
Как исключить двойную запись
Проблема возникает, когда два клиента одновременно выбирают один слот. Надёжная схема:
- При выборе времени сервер создаёт временный резерв на 5–10 минут.
- Перед подтверждением повторно проверяет доступность.
- Запись создаётся в одной транзакции с блокировкой слота.
- Неоплаченный резерв автоматически освобождается.
- Повторный webhook оплаты не создаёт вторую запись.
Календарь в интерфейсе может обновляться с задержкой, поэтому последняя серверная проверка обязательна даже при небольшом потоке.
Выбор специалиста и филиала
Дайте три варианта:
- выбрать конкретного специалиста;
- выбрать любого доступного;
- сначала выбрать удобное время.
Последний вариант полезен клиентам, для которых дата приоритетнее выбора мастера. Для нескольких филиалов сначала спрашивайте локацию, иначе пользователь увидит неудобный общий список.
Не показывайте внутренние графики и причины отсутствия сотрудника. Клиенту достаточно свободных слотов.
Перенос, отмена и лист ожидания
В подтверждении размещаются кнопки:
- Перенести;
- Отменить;
- Добавить в календарь;
- Связаться с администратором.
При переносе старый слот освобождается только после успешного резервирования нового. При отмене бот уточняет причину короткими кнопками — это помогает увидеть проблемы с ценой, временем и коммуникацией.
Лист ожидания работает так:
- Клиент выбирает диапазон дат и подходящих специалистов.
- Освободившийся слот предлагается подходящим участникам.
- Первый подтвердивший получает временный резерв.
- Остальным предложение закрывается.
Напоминания, которые снижают неявки
Практичная схема — за сутки и за 2–3 часа до визита. Точный интервал зависит от услуги: для консультации с подготовкой напоминание нужно раньше, для короткой процедуры достаточно одного.
Сообщение содержит:
- дату и время;
- адрес или ссылку на видеозвонок;
- имя специалиста;
- требования к подготовке;
- кнопки переноса и отмены.
Не отправляйте ежедневные напоминания и рекламные сообщения без отдельного основания. Сервисное уведомление должно относиться к конкретной записи.
Предоплата и онлайн-касса
Telegram Bot Payments позволяет ботам выставлять счёт за физические товары и услуги через платёжных провайдеров. Telegram передаёт платёжные данные провайдеру и не хранит реквизиты карты. Фискализация, возвраты, договор с провайдером и соблюдение местных требований остаются ответственностью продавца.
Схема:
- Бот резервирует слот.
- Отправляет счёт.
- Проверяет pre-checkout запрос.
- После события успешной оплаты подтверждает запись.
- Передаёт данные в кассу и CRM.
- При истечении времени освобождает резерв.
Цифровые товары и услуги внутри Telegram подпадают под отдельные правила оплаты в Telegram Stars. Для офлайн-услуги уточните категорию платежа и поддержку нужного провайдера до разработки.
Синхронизация с Google и Яндекс Календарём
Есть два варианта:
Календарь — главный источник расписания
Бот читает занятость календаря и создаёт событие после записи. Это подходит одному специалисту, если он уже аккуратно ведёт календарь. Нужны отдельные календари или правила для каждого сотрудника.
Система записи — главный источник
База бота хранит услуги, слоты и статусы, а календарь получает копию события. Это надёжнее для нескольких мастеров, филиалов, ресурсов и сложных ограничений.
В обоих случаях:
- храните внешний ID события;
- обрабатывайте удаление и перенос;
- задайте единый часовой пояс;
- учитывайте повторные webhook-события;
- показывайте администратору ошибки синхронизации.
CRM и карточка клиента
В CRM передаются:
- Telegram ID и username;
- телефон;
- услуга, филиал и специалист;
- дата и статус записи;
- сумма и статус оплаты;
- источник и UTM;
- история переносов и отмен;
- согласие на коммуникацию.
По Telegram ID можно найти повторного клиента, но это не заменяет внутренний идентификатор CRM. Username пользователь может изменить или удалить.
Обычный бот, business-бот или Mini App
| Формат | Когда подходит |
|---|---|
| Обычный бот с кнопками | До нескольких десятков услуг, линейный выбор |
| Business-бот в личном профиле | Заявки уже приходят в аккаунт мастера и нужно отвечать от его имени |
| Telegram Mini App | Сложный календарь, фотографии специалистов, фильтры, корзина, несколько ресурсов |
Mini App даёт интерфейс, близкий к сайту, но требует больше фронтенд-разработки и тестирования. Для одного мастера с пятью услугами обычные кнопки быстрее и понятнее.
Конструктор или собственная разработка
Конструктор подходит, когда:
- одна локация;
- простое расписание;
- поддерживается ваша CRM;
- можно принять правила платформы и ежемесячный тариф.
Собственный бот выбирают при нескольких филиалах, нестандартных ограничениях, собственной CRM, business-подключении, сложной оплате или необходимости владеть кодом.
Перед выбором проверьте экспорт данных, резервное копирование, ограничения API, стоимость сообщений и возможность забрать номер бота при миграции.
Сколько стоит бот онлайн-записи
Цена зависит от источника расписания и интеграций:
- простой сценарный бот без сложного календаря — от 14 990 ₽;
- AI-менеджер для ответов и первичной квалификации — 19 990 ₽;
- синхронизация с отраслевой системой, платежами, кассой или Mini App рассчитывается после схемы.
В смете отдельно фиксируются хостинг, платёжный провайдер, касса, SMS, лицензия CRM и поддержка. Сам Telegram не берёт комиссию за платформу Bot Payments для физических товаров и услуг, но комиссию может брать платёжный провайдер.
Готовое ТЗ
1. Бизнес: отрасль, филиалы, часовые пояса.
2. Услуги: цена, длительность, буферы, подготовка.
3. Сотрудники: услуги, график, отпуска, кабинеты и ресурсы.
4. Правила: горизонт записи, минимальное время, отмена, опоздание.
5. Путь клиента: услуга → специалист → слот → контакт → оплата.
6. Резерв: срок удержания и поведение при неоплате.
7. Напоминания: интервалы, текст, перенос и отмена.
8. Интеграции: календарь, CRM, касса, платёжный провайдер.
9. Роли: администратор, мастер, руководитель.
10. Аналитика: источник, завершение записи, неявки, повторные визиты.
11. Ошибки: двойной клик, недоступное API, повторный webhook.
12. Данные: доступ, хранение, удаление и резервные копии.Практический пример: салон с двумя мастерами
Исходные условия:
- услуги: стрижка 60 минут и окрашивание 120 минут;
- мастера: Анна и Мария;
- Анна выполняет обе услуги, Мария — только стрижку;
- между клиентами нужен буфер 15 минут;
- окрашивание требует предоплату;
- запись закрывается за 2 часа до начала.
Как вычисляется свободное время
Клиент выбирает окрашивание. Бот оставляет только Анну, берёт её рабочие интервалы, вычитает существующие записи, перерыв и отпуск. Для каждого варианта проверяет непрерывный интервал 135 минут: 120 минут услуги и 15 минут буфера.
Если клиент выбрал 14:00, сервер создаёт резерв до 14:10 текущего времени. После оплаты запись получает статус confirmed. Если подтверждения нет, резерв становится expired, а 14:00 снова появляется в выдаче.
Что получает клиент
Запись подтверждена
Услуга: окрашивание
Специалист: Анна
Дата: 12 августа, 14:00
Длительность: около 2 часов
Адрес: ул. Примерная, 10
Предоплата: 1 000 ₽
[Добавить в календарь]
[Перенести]
[Отменить]
[Как добраться]Что получает администратор
Новая запись №521
Клиент: Елена, +7 ...
Услуга: окрашивание
Мастер: Анна
Время: 12.08, 14:00–16:00
Буфер до: 16:15
Оплата: подтверждена
Источник: QR-код в салонеМинимальная модель данных
| Объект | Основные поля |
|---|---|
| Услуга | название, длительность, цена, буфер, предоплата |
| Сотрудник | имя, филиал, услуги, рабочие интервалы |
| Исключение | отпуск, перерыв, больничный, ручная блокировка |
| Клиент | внутренний ID, Telegram ID, телефон, согласия |
| Резерв | услуга, сотрудник, начало, окончание, срок действия |
| Запись | клиент, слот, статус, источник, внешний ID |
| Платёж | сумма, провайдер, статус, уникальный ключ |
| Напоминание | время отправки, канал, статус, ошибка |
Время храните в UTC, а клиенту показывайте в часовом поясе филиала. Для филиалов в разных регионах часовой пояс является обязательным полем.
Статусы записи
hold → awaiting_payment → confirmed → completed
↘ expired confirmed → cancelled
confirmed → no_showКаждый переход проверяет допустимость. Например, оплата истёкшего резерва не должна автоматически занять уже проданный слот: такой случай отправляется администратору для возврата или ручного размещения.
Набор тестов перед открытием записи
- Два клиента одновременно выбирают один слот.
- Платёж приходит после истечения резерва.
- Провайдер дважды присылает уведомление об одной оплате.
- Сотрудник блокирует время, пока клиент находится на экране оплаты.
- Услуга заканчивается после закрытия филиала.
- Буфер пересекается со следующей записью.
- Клиент переносит запись с предоплатой.
- Администратор отменяет запись вручную.
- Календарь временно недоступен.
- Сотрудник работает в двух филиалах.
- Часы переводятся на летнее или зимнее время в используемом регионе.
- Клиент нажимает кнопку подтверждения несколько раз.
- Напоминание не доставлено.
- Пользователь удалил или заблокировал бота.
- Отчёт за день совпадает с календарём и CRM.
Особенно важны первые три сценария: ошибки в них приводят к двойной записи или неверной оплате.
План запуска за четыре этапа
Этап 1. Расписание без оплаты
Один филиал, ограниченный набор услуг, подтверждение администратором. Цель — проверить слоты, переносы и качество уведомлений.
Этап 2. Автоматическое подтверждение
Добавляются атомарное резервирование, статусы и синхронизация календаря. Администратор обрабатывает только исключения.
Этап 3. Предоплата
Подключаются тестовый режим провайдера, повторные webhook-события, возвраты и касса. После полного теста включаются реальные платежи.
Этап 4. Удержание
Добавляются лист ожидания, повторная запись и аналитика неявок. Рекламные сообщения включаются только при наличии подходящего согласия.
Что измерять
| Метрика | Что показывает |
|---|---|
| Переход → начало записи | Качество точки входа |
| Начало → подтверждение | Удобство сценария |
| Выбор слота → оплата | Проблемы цены или платежа |
| Отмена и перенос | Качество расписания и напоминаний |
| Неявка | Эффект предоплаты и уведомлений |
| Повторная запись | Удержание клиента |
| Доля ручной помощи | Какие ветки нужно улучшить |
Частые вопросы
Можно ли записываться без установки отдельного приложения?
Да. Клиент использует уже установленный Telegram. Первый запуск обычного бота требует открыть ссылку и нажать Старт.
Может ли бот сам видеть свободное время?
Да, если подключён к календарю или системе записи. Свободные слоты вычисляются сервером с учётом длительности, буферов и занятости.
Как бот предотвращает двойную запись?
Он временно резервирует выбранный слот и окончательно создаёт запись атомарной операцией после повторной проверки или оплаты.
Можно ли принимать предоплату?
Да. Telegram поддерживает счета ботов; нужен подходящий платёжный провайдер и корректная настройка кассы и возвратов.
Когда нужен Mini App?
Когда обычных кнопок недостаточно: много услуг и сотрудников, сложный календарь, фотографии, фильтры или корзина.
Заказать схему бота записи
Для точной оценки пришлите список услуг, график сотрудников, действующий календарь или CRM и правила отмены. ROI SEO подготовит рабочий сценарий, перечень интеграций и фиксированный состав первой версии.
Источники
Клиентский сервис
Как построить Telegram-бота для всей переписки
Когда к записи добавляются поддержка, CRM, свободные вопросы, оператор и расчёт окупаемости.
Открыть руководствоРазбор задачи
Получите конкретную схему и оценку
Опишите исходную ситуацию, желаемый результат и используемые сервисы. В ответ вы получите рекомендуемый сценарий, состав первой версии, срок и стоимость.
Обсудить задачу