Определите, что именно занимает заказ
Запись может занимать время специалиста, помещение, оборудование или сразу несколько ресурсов. Условный пример: консультация требует одного сотрудника, а выездная услуга — ещё и времени на дорогу. Если бот учитывает только начало встречи, соседние записи могут оказаться несовместимыми.
До разработки опишите длительность типовых услуг, перерывы, выходные и исключения. Не обязательно автоматизировать каждый редкий случай. Для нестандартной длительности можно оставить запрос на согласование, ясно отделив его от мгновенной записи. Главное — не обещать автоматически то, что фактически решается вручную.
Выбор времени ещё не равен бронированию
Пока человек заполняет данные, другой клиент может выбрать тот же интервал. В момент подтверждения система должна повторно проверить доступность и безопасно закрепить ресурс. Разработчик определяет механизм блокировки или атомарного сохранения с учётом системы расписания.
Если предусмотрена временная бронь, задайте срок её действия и правила освобождения. Клиенту нужно видеть, что время удерживается временно. Не оставляйте бесконечно занятые интервалы после незавершённых диалогов. При конфликте предложите актуальные альтернативы, сохранив уже введённые сведения.
| Этап | Статус времени |
|---|---|
| Просмотр | Показана доступность на момент запроса |
| Предварительный выбор | Время ещё может потребовать подтверждения |
| Подтверждение | Ресурс закреплён по правилам системы |
| Отмена | Ресурс освобождён и уведомления обновлены |
Текстовое пояснение схемы
- Выбор. Клиент указал интервал
- Проверка. Система сверила доступность
- Бронь. Получено действующее подтверждение
Спроектируйте перенос как отдельную операцию
При переносе важно не потерять старую запись раньше, чем новая действительно согласована. Правило зависит от бизнеса: можно сначала закрепить новое время или передать сложный перенос сотруднику. Пользователю следует объяснить, какое из двух времён сейчас действует.
Старые кнопки в чате не должны отменять уже изменённую запись без проверки. Telegram передаёт событие нажатия, а актуальность действия проверяет ваша система. Свяжите кнопку с конкретной записью и её состоянием. После завершения покажите действующие дату, время, место и способ уточнения.
Текстовое пояснение схемы
- Длительность. Работа, подготовка и перерыв
- Одновременность. Два клиента выбирают одно время
- Изменения. Перенос, отмена и старые кнопки
Проверяйте календарь конфликтными сценариями
В тестовой среде попробуйте два одновременных подтверждения, изменение длительности услуги, отмену, перенос и завершение временной брони. Отдельно проверьте часовой пояс, если клиенты или сотрудники находятся в разных регионах. Не ограничивайтесь записью на заведомо свободный интервал.
Сотрудники должны видеть тот же актуальный календарь, что использует бот. Если они ведут отдельную неподключённую таблицу, автоматически избежать всех пересечений не получится. Сначала определите единый источник расписания, а затем проектируйте удобный интерфейс поверх него.
Что взять в работу
- Учитывайте ресурсы и полную длительность услуги.
- Подтверждайте доступность в момент бронирования, а не только при показе календаря.
- Испытайте переносы и одновременные записи на один интервал.
Источники и уточнения
Внешние факты сверены по указанным материалам 20 сентября 2026 года. Примеры и критерии выбора в статье — практические рекомендации, а не обещание результата.
Обсудим вашу задачу?
Пришлите сайт или опишите ситуацию. Начнём с того, какой результат вам нужен.
