Телефон звонит, когда мастер под машиной. Он вытирает руки, идёт к трубке, три минуты выясняет, на когда записать, ищет свободное окно в тетради, записывает — и возвращается к работе. Двенадцать звонков в день.
Часть из них приходит вечером, когда трубку никто не берёт. Эти клиенты не перезванивают: они звонят следующему в поиске.
Что меняется
| Запись по телефону | Онлайн-запись | |
|---|---|---|
| Кто тратит время | мастер или администратор | никто |
| Вечер и выходные | звонок в пустоту | клиент записался сам |
| Свободное время | ищем в тетради | клиент видит только реально свободное |
| Двойная запись | случается | невозможна |
| Отмена и перенос | звонок вам | двумя кликами, слот сразу свободен |
| Мастер узнаёт | когда ему передадут | сам, в тот же момент |
Посчитайте на своих числах: если хотя бы один звонок в день приходит в 21:40, когда трубку никто не берёт, — это один потерянный клиент ежедневно. Не потому что вы плохо работаете, а потому что в 21:40 он выбирает того, кто ответил.
Как это выглядит для клиента
Автосервис на Ленина · Запись
┌────────────────────────────────────────────┐
│ Услуга: Замена масла · 40 мин · 2 500 ₽ │
│ │
│ Пятница, 8 августа │
│ [ 10:00 ] [ 10:40 ] 11:20 [ 12:00 ] │
│ ↑ занято │
│ │
│ Имя Иван │
│ Телефон +7 999 123-45-67 │
│ [ Записаться ] │
└────────────────────────────────────────────┘
Ссылку кладут в шапку сайта, в профиль в соцсети, в сообщение клиенту. Регистрация не нужна: чем меньше шагов, тем больше записей.
Цена бывает не точной — и это можно сказать честно. У половины бытовых услуг итог виден только после осмотра: стрижка зависит от длины волос, выезд — от адреса, диагностика — от того, что найдут. Поэтому у услуги есть переключатель «Как показывать цену»: «Точная цена» или «Цена от». Со вторым клиент читает «от 1 800 ₽» вместо «1 800 ₽» — вместо выбора между двумя неправдами (назвать нижнюю границу точной ценой и объясняться на кассе или не показывать цену вовсе и потерять тех, кто не звонит).
Точная цена Замена масла · 40 мин · 2 500 ₽
Цена от Стрижка · 1 ч · от 1 800 ₽
Меняется только подпись на странице. Предоплата считается от той же цены, что и раньше, а в счёт и в чек уходит фактическая — «от» в чеке не бывает. Услуга без цены остаётся без подписи: «от» без суммы — не цена, а обрыв текста.
Ссылка может вести сразу на нужную услугу. Допишите к адресу её название — и клиент, который по ней пришёл, начинает не со списка, а прямо с выбора времени:
Общая ссылка craftyourcrm.ru/b/ВАШ-КЛЮЧ
Сразу на услугу …/b/ВАШ-КЛЮЧ?service=Замена масла
Это ровно то, что нужно, когда услуги адресованы разным людям: своим ученикам барабанщик даёт одну
ссылку, ученикам вокалистки достаётся другая, и никто из них не листает чужой список. Регистр и пробелы
в названии значения не имеют, а если услугу переименовали — старая ссылка просто откроет обычный первый
экран, без всякой ошибки. Есть модуль «Площадки» — тем же способом называется и зал (?venue=…).
У каждой записи есть страница статуса по ссылке: клиент открывает её без регистрации, видит время и сам переносит или отменяет визит. Это не «удобство для клиента», а ваш незанятый слот: отменённая накануне запись продаётся заново, а неявка — нет.
Ссылка уходит клиенту сама, сразу после записи. Как только создана бронь времени — к мастеру или в кабинет, с сайта или вашими руками, — CRM пишет клиенту подтверждение: когда, к кому, куда ехать и ссылка «перенести или отменить». Записи в группу это пока не касается (см. «Честные ограничения»). Канал выбирается сам: если человек когда-то нажал «Старт» нашему боту, подтверждение придёт в Telegram (и вы увидите его в переписке с клиентом), иначе — письмом на адрес из записи. Нет ни того ни другого — не уйдёт ничего, и запись от этого не пострадает. Кнопка «Поделиться статусом» на карточке записи никуда не делась: она нужна, когда ссылку просят повторно.
Со стороны кабинета то же самое делается в два клика. «Перенести» и «Отменить» живут и на карточке записи, и в меню события на календаре: клиент позвонил и не придёт — администратор открывает день, отменяет запись, и время тут же возвращается в расписание к следующему клиенту.
Записался — и появился в базе клиентов
Запись с сайта не оставляет имя и телефон просто строчками в брони. Телефон ищется в том разделе, к которому вы подключили онлайн-запись, — у салона это «Клиенты», у клиники «Пациенты». Нашёлся — запись связывается с его карточкой. Не нашёлся — карточка заводится из имени и телефона, которые он ввёл, и связывается с записью.
Разница видна не в момент записи, а на пятый раз. Человек, записавшийся пять раз, — это один клиент с пятью визитами, а не пять безымянных строк: история лежит в одной карточке, и всё, что по ней считается, считается целиком. Правило «давно не был — напомни о себе» видит его настоящий последний визит, абонемент списывается с той же карточки, а начисления идут одному человеку, а не его копиям.
Аня записалась в марте Аня записалась в мае
«+7 900 111-22-33» «8 900 111 22 33»
│ │
└───────────► Аня ◄──────────────┘
карточка одна,
визитов два
Написание номера значения не имеет: +7 900 111-22-33, 8 900 111 22 33 и 79001112233 — один и тот же
человек, вторая карточка не появится. Работает это не «умным сравнением», а тем же механизмом, которым
формы захвата помечают повторные заявки: у вопроса «этот человек у нас уже есть» в продукте один ответ на
все двери, а не по одному на каждую.
Визит закончился — чек собрался
Клиент встал из кресла. Дальше в любой CRM начинается ручная работа: перевести запись в «Выполнена», завести заказ, вписать в него услугу, вспомнить цену, добавить воск, который человек взял с полки, и списать со склада то, что ушло на саму стрижку.
Закрытие визита — одно действие продукта, и всю работу ниже оно делает само. Честно о том, где
оно живёт сегодня: действие есть у ручки продукта (POST /api/booking/{запись}/checkout) — им уже
пользуются интеграции, — а кнопки «Закрыть визит» в карточке записи, рядом с «Перенести» и
«Отменить», пока нет: экран под действием строится. Что происходит по одному вызову:
Запись «Иван Петров, 24 августа»
│
├─► статус «Выполнена»
├─► ЗАКАЗ: «Стрижка + борода, Иван Петров, 24 августа»
│ └─ строка «Стрижка + борода» · работа · 1 × 2 600 ₽
│ (дальше вы добиваете товары: «Воск для укладки» 1 100 ₽)
│ Итого 3 700 ₽ · «Работы 2 600» · «Товары 1 100»
└─► СКЛАД по рецепту услуги
«Воск для укладки × 0.05» → расход 0.05
«Одноразовая бритва × 1» → расход 1
Заказ — не отдельная сущность «для записей»: это та же карточка, к которой у вас цепляются позиции, подытоги и платежи, — ровно как заказ-наряд в автосервисе, где работы и запчасти давно живут одним документом: с раздельными подытогами по работам и по материалам и с давальческой деталью, которая попадает в бумагу клиенту, но не в вашу выручку и не в списание с полки. Мы не построили вторую такую механику, мы подключили к ней запись.
Мастер в чеке — тот, кто стоит в записи ответственным. Это не украшение: платёж по заказу попадает именно ему, и зарплатная схема «процент с продаж» видит и услугу, и товары, которые администратор добил в тот же чек. Продал воск — процент за воск получил тот, кто его продал.
Расходники списываются по рецепту услуги. В карточке услуги есть поле «Расходники на одну услугу»: по строке на позицию, обычными названиями из каталога. Не хватило на полке — визит всё равно закрывается: остаток уходит в минус, движение так и пишет («на складе не хватало 2»), а товар всплывает в панели «Пора пополнить». Бизнес важнее учёта, а учёт всё равно догонит.
Тот же примитив закрывает приём в клинике («консультация + препараты», материалы протокола со склада) и мойку («работа + химия», шампунь по норме расхода) — ниша меняет только тексты и состав, не механику.
Каждый делает своё
В салоне два мастера: Аня стрижёт, Марина делает маникюр. Клиент выбирает маникюр и нажимает «ближайшее свободное» — и час Ани ему предлагать нельзя, потому что маникюра она не делает.
В настройках записи есть таблица «Кто оказывает услуги»: строка — услуга, галочки — календари, которые её делают.
Кто оказывает услуги Аня Марина
┌─────────────────────────────────────────────────────────┐
│ Стрижка ✓ · │
│ Маникюр · ✓ │
│ Консультация оказывают все · · │
└─────────────────────────────────────────────────────────┘
Отмеченное действует сразу и на всех трёх путях записи: шаг «к кому?» показывает только тех, кто эту услугу делает, автоподбор перебирает только их, а ссылка с чужой парой («к Ане на маникюр» из старой вкладки) получает честный отказ вместо молчаливой подмены мастера — человек, который шёл к конкретному мастеру, не должен узнавать о замене в кресле.
Пустая строка означает «оказывают все», а не «никто». Это важнее, чем кажется: настройка появилась позже самого модуля, и она не имеет права выключить приём записей у того, кто галочек ещё не ставил. Таблицы нет вовсе, пока календарь один: вопроса «кто из них?» тогда не существует.
Раньше это лечили обходным путём — заводили отдельный «календарь под услугу». Он ломал то, ради чего календари и заводят: мастер, который делает и то и другое, оказывался двумя расписаниями, и один его час продавался дважды.
Мастер узнаёт о своей записи сам
Свяжите мастера с его календарём один раз — в модуле «Сотрудники и ставки» у карточки человека есть поле «Календарь», — и дальше запись находит его сама:
- клиент записался — мастеру приходит личное уведомление: «К вам записались: Иван, завтра в 14:00». Запись при этом закрепляется за ним: она появляется в его «Моём дне» и в его личных списках;
- отмена и перенос доходят тем же путём — «Запись перенесена: Иван, 20 августа в 16:00». Именно перенос и опасен молчанием: человек, которого не предупредили, приедет к старому времени;
- владелец видит всю картину от третьего лица одной строкой на запись: «Иван → Мария, завтра 14:00». Владельцу-мастеру два уведомления об одном событии не приходят — только личное.
Уведомления можно выключить: на всё пространство (настройки онлайн-записи) и лично на себя (профиль). Личный выбор сильнее — владелец может выключить общий поток, а мастер оставить свой.
Если человек с календарём не связан, ничего не ломается: запись видит всё пространство общей строкой, как и раньше. Выдуманных адресатов не бывает.
И клиент не забывает о визите
Неявка стоит ровно столько же, сколько пустой слот, поэтому напоминание клиенту работает из коробки, без единой настройки. Модуль привозит два готовых правила — «за сутки» и «за 2 часа» до визита. Обе строки видны в «Правилах» с пометкой «Системное»: текст можно переписать своими словами, срок — сдвинуть, любое из двух — выключить галочкой, не трогая второе.
Уходит одно сообщение первым доступным каналом: в Telegram, если клиент его подключил, иначе письмом на адрес из карточки. Записи, которую отменили или отметили «Не пришёл», не уходит ничего — правило перечитывает статус в момент отправки, а не когда напоминание встало в очередь. Каким каналом ушло напоминание, видно в журнале правила.
Как клиент подключает Telegram. Мессенджер не даёт компании написать человеку первой, поэтому
«Старт» нажимает сам клиент: кнопка «Напоминать в Telegram» стоит на экране «Вы записаны» — сразу
после записи, пока человек смотрит на подтверждение, — и на странице статуса визита. Нажать нужно один
раз: связка запоминается по номеру телефона, и все будущие записи с этим номером напоминаются в
мессенджер. Передумал — команда /stop боту, и напоминания снова уходят почтой.
Клиент, которого записал администратор по телефону, этих двух экранов не видит вовсе — ему приглашение приходит прямо в письме-напоминании, строкой со ссылкой внизу. Одно нажатие — и о следующем визите он узнает в Telegram.
Жизнь состоит из исключений
Недельный график отвечает на вопрос «как обычно». Но заболеть можно в четверг, уехать на обучение — со вторника по пятницу, а клиента, который умеет только по воскресеньям, взять один раз. Раньше такое выражалось порчей расписания: снял дни недели — и не забудь вернуть.
Теперь у каждого календаря рядом с неделей есть особые дни — две кнопки и список:
Мастер Иван · График работы
┌────────────────────────────────────────────────┐
│ Неделя: [Пн][Вт][Ср][Чт][Пт] Сб Вс │
│ 09:00 – 18:00, перерыв 13:00–14:00 │
│ │
│ Особые дни │
│ • 13 августа: не работаю весь день (болезнь) │
│ • 18–22 августа: не работаю (обучение) │
│ • 24 августа: работаю 10:00–14:00 │
│ [+ Не работаю] [+ Работаю] │
└────────────────────────────────────────────────┘
Работает это в обе стороны: «не работаю» убирает время (весь день или только часы), «работаю» — добавляет его в день, которого в неделе нет вовсе. Поэтому расписание можно вести и вообще без недельного графика: снимите все дни — и клиент увидит ровно те часы, которые вы объявили на конкретные даты. Так живут репетитор с плавающими днями, врач с редким приёмом и зал, который сдают «по договорённости».
Уже записанных клиентов закрытие дня не трогает. Отменить чужой визит молча, потому что вы отметили себе выходной, CRM не имеет права. Вместо этого она честно говорит: «на это время уже есть 2 записи» — с датой, временем и именем каждого. Переносить или отменять — ваше решение и два клика; новых клиентов на закрытое время страница уже не пустит.
Закрытые дни видны прямо в календаре записей. Над сеткой раздела «Записи» есть выбор календаря — и выбранный показывает свои особые дни фоновой штриховкой, с подписью «Закрыто: болезнь». Закрытый день перестаёт выглядеть как свободный, и визит, поставленный руками на собственный выходной, становится видно до того, как о нём узнает клиент. Ничего при этом не запрещается: время ваше, и поставить туда запись по-прежнему можно — просто теперь осознанно.
Двойная бронь невозможна физически
Обычно защита от двойной записи — проверка в коде: «посмотреть, свободно ли, и если свободно — записать». Между этими двумя действиями и случаются накладки, когда двое нажимают одновременно, а администратор в этот же момент вписывает третьего вручную.
У нас запрет живёт в самой базе данных: пересекающиеся интервалы на один ресурс она просто не примет. Не потому что мы проверили, а потому что такую строку невозможно записать. Второй клик получит честное «время уже занято», а не вторую запись на 14:00.
Тот же запрет действует и на занятие, которое вы завели сами — из формы записи или кликом по пустому часу в календаре. Указали в нём календарь мастера — этот час немедленно исчезает из публичной сетки, и поверх вашего занятия клиент записаться не сможет. А если час уже занят, CRM не даст сохранить карточку и назовёт, что мешает: «Это время уже занято: 10:00–11:15».
Занятость считается по календарю, а не по услуге, поэтому один человек, ведущий несколько разных занятий, продаёт свой час один раз. Как это выглядит у одиннадцати учеников и шести вечерних окон в дне, разобрано в CRM для репетитора и курсов: час, занятый под физику, закрыт и для математики, а выбранное родителем время держится пять минут, пока он вводит имя и телефон.
Это тот случай, когда разница между «мы проверяем» и «этого не может быть» стоит одного скандала в месяц.
Час, за который заплатили вперёд, не пропадает
Самая дорогая запись — та, на которую не пришли. Час забронирован, никому больше не предложен, мастер сидит. Позвонить и напомнить можно, заставить прийти — нет.
Поэтому у каждой услуги есть три поля: «Предоплата» (не требуется · процент от цены · фиксированная сумма), «Размер предоплаты» и «Оплатить в течение, мин». Включаются они по одной услуге, а не на всю страницу: депозит за окрашивание на четыре часа — разумно, за подравнивание чёлки — нет.
Дальше всё происходит само:
Клиент видит на карточке услуги Окрашивание · 4 ч · 6 000 ₽ · Предоплата 1 800 ₽
Записался Запись «Новая», час занят, ссылка на оплату на экране
Заплатил Запись сама становится «Оплаченной»
Не заплатил за 30 минут Запись отменяется, час снова в продаже
Сумму клиент узнаёт до формы, а не после. Она стоит на карточке услуги рядом с ценой — там же, где человек выбирает. Просьба о деньгах, всплывающая после того, как он оставил имя и телефон, читается как подвох, и это ровно та причина, по которой люди бросают запись на последнем шаге.
Статус двигают деньги, а не таймер надежды. Когда платёж проходит, банк сообщает об этом нам, и запись переходит в «Оплачена» сама — с записью в журнале и с вашим уведомлением. Ничего опрашивать и нажимать не нужно.
Не заплатил — час возвращается в продажу. По истечении окна запись отменяется, а время снова появляется в сетке. Причём в сетке оно свободно сразу, как только срок вышел: следующий клиент видит его в ту же секунду, а не после какого-то ночного обхода.
Вас это не касается. Записи, которые заводите вы сами — из формы раздела, из календаря, кнопкой «Поставить такое же», — предоплаты не требуют никогда. Вы записываете знакомого человека и сами решаете, брать ли с него аванс.
Процент — для услуг с прайсом, фиксированная сумма — для остальных. «30% от окрашивания» считается от цены услуги; у услуги с ценой «по договорённости» считать не от чего, и тогда работает фиксированная — «депозит 1 000 ₽», сколько бы ни стоила сама работа.
Для работы нужен подключённый приём оплаты («Настройки» → «Оплата»). Пока его нет, поля стоят, но денег никто не попросит: запись останется обычной, а не отменится по несуществующему счёту.
Кому это нужно в первую очередь
Клиникам и кабинетам — приём по времени, где накладка означает двух пациентов в коридоре. Автосервисам — подъёмник занят ровно одной машиной. Мастерским и студиям — один мастер, одно кресло, один слот.
Две ниши показывают, где у записи другая форма. В мастерской сборка спрашивает прямо — «Клиенты записываются к вам на время?», — и ответ «принимаю без записи» снимает модуль целиком: приёмке в порядке живой очереди публичная страница не нужна. В стройподряде записывают не на кресло, а на выезд, поэтому ресурс «Замерщик» приезжает с «Лимитом записей в день»: после третьей записи день закрывается весь, сколько бы свободных часов ни оставалось в графике — про дорогу между адресами сетка ничего не знает.
Сколько стоит
Нисколько. Онлайн-запись — модуль бесплатного тарифа, и отдельной платы «за модуль записи» у нас нет. Это заметная разница с отраслевыми платформами, где запись — ядро подписки и стоит денег ежемесячно. Ограничение тарифа тут одно, общее для всего продукта, — объём записей в базе (см. ниже).
Честные ограничения
- Время и календарь занятой записи меняются только действием «Перенести» — кнопка есть на карточке записи и в календаре. Правку даты или поля «Календарь» прямо в карточке CRM не пропустит и сама подскажет «Перенести»: так слот в расписании всегда совпадает с карточкой. Это правило действует и на занятия, заведённые из кабинета: как только у записи есть календарь и время, её час защищён так же, как у записи с сайта.
- Перевести запись в другой зал из интерфейса пока нельзя. Смена календаря у уже созданной записи умеет ровно то, что должна, — переписывает занятый час на новый зал одной операцией и отказывается, если там уже занято, — но выбор календаря в диалоге «Перенести» ещё не выведен: сегодня это доступно только через API. Пока экран не готов, переносят отменой и новой записью.
- График работы — правило для клиентов, а не для вас. Занятие, которое вы ставите руками, можно поставить и в выходной, и после закрытия, и мимо шага сетки: это ваше время. Единственное, чего нельзя никому, — два занятия на один час одного календаря. Занятие, переходящее через полночь, пока не выражается — окончание должно быть в том же дне.
- Час держит календарь, а не карточка. Запись без выбранного календаря — это заметка (лист ожидания, «перезвонить»): время она не занимает, потому что занимать его не за кем.
- Каталог на публичной странице — до 200 позиций. Для длинного прайса нужна пагинация, а не увеличенный потолок.
- Страница записи у пространства одна. Отдельных страниц «на каждого мастера» с разным оформлением нет: раздельность даётся ссылкой с предвыбором (см. выше), а не второй страницей. Саму ссылку собирать руками не нужно — в настройках записи у каждой услуги своя кнопка «Скопировать».
- Формат телефона страница не проверяет — только то, что поле заполнено. Российский номер она
приводит к единому виду
+7 (999) 123-45-67, а номер другой страны сохраняет ровно так, как его набрал клиент: подменить чужой номер на похожий российский было бы хуже любого отказа. Опечатку в цифрах CRM поймать не может — проверьте номер перед звонком. - Название на странице — это название пространства. По умолчанию оно совпадает с именем владельца при регистрации; владелец может поменять его в настройках пространства.
- Карточка клиента заводится только там, где раздел хранит его телефон. Если онлайн-запись подключена к разделу без поля телефона (например, к «Заказ-нарядам»), запись работает ровно как раньше, но клиента не заводит и ни с кем не связывает: карточка, которую следующая бронь не сможет найти по номеру, к третьему визиту превратилась бы в три дубля одного человека.
- Номер, не похожий на телефон, стоит связки, но не записи. «1234» или «позвоню сам» в поле телефона — запись всё равно сохранится, просто без клиента. Терять клиента из-за подсказки мы не станем; связать такую запись с карточкой можно потом руками.
Что дальше
Принимайте оплату по счетам и заказам — платежи по заказу; продайте пакет визитов — абонементы. Предоплата за саму запись жить в других модулях не уехала — она встроена сюда (см. «Час, за который заплатили вперёд, не пропадает»).
Две задачи разобраны отдельными страницами, со своими примерами и границами: если у вас кресла и мастера — CRM для барбершопа; если залы, группы и абонементы — онлайн-запись клиентов для студии, школы и зала.
Как этим пользоваться
Пошаговый разбор с картинками — в справке.
Открыть инструкциюОткрыто целиком, без регистрации.
Что рядом
- Живой кабинет: работа команды видна в тот момент, когда она происходитВидно, кто сейчас в записи и что правит; изменения коллег появляются без перезагрузки; одновременные правки объединяются по полям вместо «победил сохранивший последним».
- Склад и штрихкоды: перестаньте искать деталь, которая «где-то была»Остатки считаются сами, списание идёт из тех же карточек заказов, у товара появляется свой штрихкод и этикетка на рулонный принтер. Магазину, автосервису, мастерской и барбершопу склад приходит вместе с шаблоном, остальным включается за минуту.
Соберите свою CRM под свою нишу — бесплатно и без карты.
Собрать мою CRM →