Пока клиент отвечает на звонок для подтверждения номера, выбранное время должно иметь понятный статус в расписании: свободно, временно удержано или уже забронировано. Сам звонок подтверждает доступ к номеру, но ещё не гарантирует запись. Сайт закрепляет визит только после успешной проверки номера и повторной проверки времени на сервере. Ниже — схема для салона или другого бизнеса с записью по времени: она поможет выбрать правило удержания слота и проверить, что два клиента не получат один визит.
Дата публикации: 2026-11-08
Когда выбранное время становится записью?
Представьте, что клиент выбрал мастера и время, ввёл номер и ждёт звонка. Другой клиент в этот момент открыл тот же интервал. Если сайт считает выбор на экране готовой бронью, администратор увидит запись человека, который ещё не подтвердил номер. Если сайт вообще не удерживает время, первый клиент может ответить на звонок и обнаружить, что интервал уже заняли.
Поэтому в расписании полезно разделить три состояния. Свободное время можно предложить любому клиенту. Временное удержание оставляет интервал за одной заявкой на ограниченный срок. Подтверждённая запись появляется после проверки номера и закрепления времени на сервере. Когда срок удержания истекает, интервал снова становится доступным — такой принцип используют в сценариях предварительной записи (Sayly).
Начните с простого правила для одной услуги: что видит второй клиент, пока первый ждёт звонка? При индивидуальном приёме ему можно сразу показать другое время. При групповой записи сначала проверьте, сколько мест ещё свободно. В обоих случаях администратор должен отличать ожидание подтверждения от готового визита.
Удерживать время до звонка или проверять доступность после него?
Оба варианта работают, если сайт честно сообщает клиенту статус и сервер контролирует расписание. Выбор зависит от того, сколько времени бизнес готов держать интервал за человеком, который пока не завершил подтверждение номера.
| Подход | Что происходит во время звонка | Что проверить перед запуском |
|---|---|---|
| Временное удержание | Сайт оставляет интервал за заявкой до подтверждения номера или окончания срока удержания. | Срок виден клиенту; после его окончания время освобождается; ответ на поздний звонок не оживляет старую заявку. |
| Проверка после звонка | Пока клиент подтверждает номер, время остаётся доступным другим посетителям. | После звонка сервер ещё раз проверяет интервал; если его заняли, клиент получает предложение выбрать другое время. |
Для салона с плотным расписанием временное удержание избавляет клиента от ситуации, когда он ответил на звонок, а выбранное время уже исчезло. Зато заявки без ответа ненадолго закрывают интервалы. Если удержания нет, расписание остаётся открытым, но текст на экране должен говорить «Проверяем номер», а не «Вы записаны».
Зафиксируйте также границы интервала. Услуга может занимать время мастера целиком, включая подготовку рабочего места, если салон выделяет на неё отдельный промежуток. Две процедуры с разным временем начала тоже конфликтуют, когда их длительность пересекается. Это правило разработчику понадобится и для временного удержания, и для окончательной брони.
Что делать, если клиент не ответил на звонок или нажал подтверждение повторно?
Сначала определите срок жизни заявки. Он начинается, когда сервер принимает выбор времени, а заканчивается подтверждением записи, отменой или истечением срока. Экран клиента и календарь администратора должны брать статус из одного расписания. Иначе сайт может показать свободный интервал, который администратор уже занял по телефону.
Если клиент не ответил, сайт сообщает, что номер не подтверждён, и предлагает повторить попытку по заданному правилу. У временного удержания при этом есть предел: повторный звонок не должен продлевать его бесконечно. Если срок вышел, перед новой попыткой сайт проверяет доступность заново. Подход к ситуации, когда клиент недоступен, можно отдельно сверить с материалом о резервной авторизации по звонку.
Бывает и обратная ситуация: клиент ответил, но страница долго не показывает результат. Он нажимает кнопку ещё раз. Серверу нужно распознать повтор той же заявки и вернуть её текущий статус, вместо того чтобы создавать второй визит. Это отдельная задача от спора двух разных клиентов за один интервал. Защита от повторного нажатия не решает конфликт между их заявками.
Если срок удержания истёк, а клиенту всё ещё нужно это время, предложите выбрать новый интервал. Лист ожидания подходит лишь тогда, когда бизнес готов возвращаться к таким запросам: перед предложением освободившегося времени полезно проверить, доступен ли номер клиента. Подробнее этот шаг разобран в материале о проверке номеров в листе ожидания.
Как проверить связку звонка и расписания перед запуском?
Попросите разработчика подготовить отдельное тестовое расписание. Убедитесь, что заявки из него не попадают в рабочий календарь и не запускают звонки настоящим клиентам. Затем создайте мастера, индивидуальную услугу и один свободный интервал. Для проверки понадобятся два независимых сеанса браузера и тестовые номера, на которых можно завершить сценарий звонка.
В обоих окнах выберите одно время. Начните подтверждение номера для первого клиента и, пока оно не завершилось, отправьте заявку второго. Сравните сообщения на экране с календарём администратора. При удержании второй клиент не должен получить подтверждение на занятый интервал. Без удержания время достанется тому, чью запись сервер закрепит первым; второму сайт предложит выбрать другое.
Затем повторите проверку с опоздавшим ответом на звонок: дождитесь окончания срока удержания и только после этого завершите подтверждение номера. Старая заявка не должна занять интервал, который уже доступен другим. Проверьте и повторное нажатие после задержки ответа — в календаре должна остаться одна запись. Порядок ручной проверки двойного бронирования подробнее описан в статье на feelqueen.by.
Ручной тест помогает найти ошибку, но один успешный запуск ещё не доказывает защиту при одновременных запросах. Попросите разработчика показать, как сервер закрепляет время и не даёт второй заявке подтвердить тот же интервал. В задачу для API-интеграции добавьте и обмен с календарём администратора: запись по телефону должна менять доступность на сайте, а отмена — освобождать время по правилам салона.
Какие ошибки чаще всего путают клиента и администратора?
- Сайт пишет «Запись подтверждена» сразу после выбора времени. Исправление: показывать ожидание проверки номера до окончательного ответа сервера.
- После истечения срока удержания поздний ответ на звонок создаёт бронь. Исправление: проверять срок заявки и доступность перед закреплением времени.
- Заблокирована только кнопка на странице. Исправление: проверять конфликт на сервере, ведь другой клиент отправляет заявку из своего браузера.
- Календарь администратора и сайт расходятся. Исправление: проверить, как запись по телефону, отмена и новая заявка меняют общее расписание.
- Повторное нажатие создаёт ещё одну запись. Исправление: возвращать статус первой заявки без нового визита.
Откройте сегодня задачу на доработку записи и добавьте один критерий приёмки: «Пока первый клиент подтверждает номер по звонку, второй выбирает то же время; после ответов сервера в календаре остаётся не больше одной активной записи».



