Как избежать двойных записей в салоне

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

Большинство двойных записей появляется одинаково: два человека смотрят на две разные правды. Администратор пишет время в журнал, клиент в ту же минуту бронирует на сайте, и оба уверены, что место их. То же самое происходит, когда календарь знает только про мастеров, а услуге нужен ещё кабинет или аппарат, который в календаре никто не держит.

Почему две записи оказываются в одном месте?

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

Четыре самых частых сценария:

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

Первые два лечит дисциплина, вторые два — то, что ресурсы и исключения живут в календаре.

Какие ресурсы на самом деле ограничивают ваш день?

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

Сколько клиентов помещается в ваш салон одновременно?

Введите свои числа и посмотрите, какой ресурс упирается в потолок первым. Расчёт идёт только в браузере и никуда не сохраняется.

Записей одновременно
2
параллельных приёмов
Узкое место
Ресурсы сбалансированы: несколько из них упираются в потолок одновременно.

Это модель планирования, а не расписание. Реальное пересечение всегда решает конкретная запись со своей длительностью и ресурсами.

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

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

Как Tervita не даёт записям пересечься?

Три разных защиты, работающих на разных уровнях.

Мастер — на уровне базы данных. Двух пересекающихся записей одному мастеру просто не сохранить: это проверяет не интерфейс, а ограничение самой базы. Технически это exclusion constraint: он сравнивает временные интервалы и отклоняет строку, диапазон которой пересекается с уже существующим у того же мастера; документация PostgreSQL описывает этот механизм.

Разница с обычной проверкой практическая. Проверка в интерфейсе смотрит на данные, которые были на экране мгновение назад, и проигрывает, когда двое сохраняют одновременно: оба видели свободное время, оба получили «сохранено». Ограничение базы решает в момент записи, и один из двоих получает честный отказ. Именно эта разница важна в час пик, когда администратор принимает звонок, а клиент бронирует на сайте в ту же минуту.

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

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

Дневной вид Tervita: записи каждого мастера в отдельной колонке
Один вид на все каналы: записи с сайта и заведённые вручную лежат в одном календаре. В дневном виде запись можно перетащить на другое время или в колонку другого мастера.

Чего Tervita не делает: не синхронизируется с календарями Google и Outlook. Если команда ведёт личный календарь отдельно, он остаётся второй правдой — а вторая правда и есть источник двойных записей.

Что делать, если двойная запись уже случилась?

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

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

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

Как выстроить защиту за неделю?

  • День 1. Решите, что календарь — единственная правда. Все записи попадают туда сразу, в том числе во время звонка.
  • День 2. Привяжите кабинеты и общее оборудование к тем услугам, которым они нужны.
  • День 3. Внесите известные отсутствия на следующий месяц.
  • День 4. Проверьте в настройках, насколько заранее и насколько поздно клиент может записаться, — см. параметры записи.
  • День 5. Договоритесь с командой, кто решает, когда два канала предложили одно время.

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