Приложение для сети салонов, которое заполняет окна в расписании
Как устроен проект, где главной задачей был не «сделать красиво», а вернуть клиентов, выпавших из своего цикла, и продать время, которое иначе простаивало.
- Отрасль
- Сеть салонов красоты и барбершопов
- Масштаб
- Мультифилиальная сеть, единая база клиентов
- Срок запуска
- 10–14 недель до первого релиза
- Стек и интеграции
- Flutter, Node.js, PostgreSQL, YCLIENTS, ЮKassa
Задача бизнеса
Выручка сети упёрлась в потолок при полной загрузке рекламы. Новых клиентов приводили дорого, а существующие тихо отваливались: человек ходил раз в шесть недель, потом просто переставал — и никто этого не замечал, пока это не отражалось на выручке через квартал.
Шесть проблем и что мы с ними сделали
Каждое решение здесь — ответ на конкретную потерю денег, а не пункт из типового ТЗ
Клиент отваливался незаметно
У каждого свой ритм визитов. Общая рассылка «мы соскучились» уходила всем одновременно и не работала ни для кого.
Система считает индивидуальный цикл каждого клиента по истории визитов: у одного окрашивание раз в шесть недель, у другого стрижка раз в три. За несколько дней до подхода срока приложение присылает напоминание — и сразу ведёт в запись к своему мастеру.
Если клиент выбился из цикла на треть срока, он попадает в отдельный сегмент, и сценарий возврата запускается с более весомым предложением. Это самая ценная точка контакта: человек ещё помнит салон, но уже начал искать альтернативу.
Пустые окна сгорали
Отмена за два часа — потерянные деньги. Администратор физически не успевает обзвонить тех, кому это время подошло бы.
Освободившийся слот запускает автоматический подбор: система смотрит, кто ходит именно к этому мастеру, у кого подошёл срок процедуры и кому подходит время по прошлым записям. Точечный push уходит короткому списку, а не всей базе.
Принципиальный момент: без скидки. Предложение — не «дешевле», а «есть окно у вашего мастера сегодня в 15:00». Скидка резала бы маржу на времени, которое и так должно быть продано по полной цене.
Клиент уходил вместе с мастером
Вся лояльность была привязана к человеку. Мастер менял салон — база уходила за ним.
Полностью защититься нельзя, и мы говорим об этом прямо. Но приложение смещает баланс: у клиента остаются накопленные баллы, оплаченный абонемент, депозит и история процедур с составами окрашивания — всё привязано к сети, а не к мастеру.
Плюс сеть видит отток по конкретному мастеру в аналитике сразу, а не через квартал по выручке, и успевает предложить клиентам альтернативу до того, как они уйдут.
Скидки вместо лояльности
Единственным инструментом удержания была скидка. Она резала маржу и приучала клиента ждать акцию.
Заменили на механики, которые дают ценность, но не бьют по марже напрямую: баллы с ограниченным сроком (возвращают в нужное окно, а не просто снижают цену), уровни с приоритетной записью и абонементы с депозитом.
Депозит — самая недооценённая механика в отрасли. Клиент, у которого на счету лежат деньги, возвращается почти гарантированно, а салон получает оборотные средства заранее.
Администратор вместо продаж
Полдня уходило на подтверждения, переносы и ответы на «сколько стоит окрашивание».
Запись, перенос и отмена ушли в приложение, подтверждения стали автоматическими. Типовые вопросы о ценах и услугах закрывает ассистент на базе языковой модели, который отвечает строго по прайсу из системы и не выдумывает цифры.
Всё, что касается спорных ситуаций и претензий, по-прежнему уходит человеку — здесь цена ошибки выше экономии.
Сеть не видела себя целиком
Каждая точка жила своей жизнью. Сравнить загрузку и возвращаемость можно было только вручную сведя выгрузки.
Единый профиль клиента по всем точкам и дашборд для управляющего: загрузка мастеров, доля повторных визитов, средний чек и процент выпадения из цикла — в разрезе точек и специалистов.
Директор точки видит только свою, управляющий сети — всё. Роли и права разграничены, действия журналируются.
Почему интеграция с YCLIENTS, а не замена
Администраторы уже работали в YCLIENTS, и ломать привычный процесс ради приложения было бы вредительством: любая система, которая усложняет работу сотруднику, тихо саботируется и умирает за месяц.
Поэтому расписание, записи и касса остались на месте. Приложение стало клиентским слоем поверх: читает свободные слоты, создаёт записи и забирает историю визитов, а всё остальное живёт там, где жило.
Отдельная работа — синхронизация в обе стороны. Запись, созданная администратором вручную, должна мгновенно исчезать из доступных слотов в приложении, иначе два клиента займут одно время. Эта «невидимая» логика обработки конфликтов заняла заметную часть разработки.
Что получилось в приложении
- Запись к своему мастеру с его расписанием, портфолио работ и списком услуг
- Повтор прошлой записи в один тап — та же услуга, тот же мастер, ближайшее время
- Абонементы и депозит с остатком на главном экране
- Баллы, уровни и сгорание вместо постоянной скидки
- История посещений с составами окрашивания и заметками мастера
- Напоминания по личному циклу, а не по общему расписанию рассылок
- Приглашение друга с бонусом обоим — самый дешёвый канал привлечения в отрасли
- Предоплата записи для снижения числа неявок
Ключевые экраны
Главный экран построен вокруг одного действия — записаться снова
Как мы считали, сработало ли это
До запуска зафиксировали точку отсчёта — иначе доказать эффект невозможно
Частота визитов
Сравниваем поведение одних и тех же клиентов до и после установки приложения, а не пользователей с непользователями — иначе результат завышен самим отбором.
Процент выпадения
Доля клиентов, вышедших за свой цикл более чем на треть. Главная метрика проекта: именно она превращается в потерянную выручку.
Заполнение окон
Сколько освободившихся слотов удалось продать через автоматический подбор и какая часть из них ушла бы в простой.
Выручка на клиента в год
Итоговый показатель. Рост здесь означает, что механики работают, а не что клиенты просто перешли из звонков в приложение.
Что изменилось в работе сети
Было
- Отвалившегося клиента замечали по выручке через квартал
- Освободившееся окно чаще всего сгорало
- Лояльность держалась на скидке и на личности мастера
- Администратор занят подтверждениями, а не продажами
- Данные по точкам сводились вручную в таблицах
Стало
- Клиент, выбившийся из цикла, попадает в сценарий возврата сразу
- Свободный слот автоматически предлагается подходящим клиентам
- Баллы, абонементы и депозит привязаны к сети
- Рутина автоматизирована, администратор работает с людьми
- Дашборд по точкам, мастерам и сегментам в реальном времени
Что мы вынесли из проекта
Цикл важнее рассылки
Одно напоминание, попавшее в личный ритм клиента, работает лучше десяти массовых рассылок. И не выжигает канал push-уведомлений.
Персонал решает
Установки росли не от рекламы, а от того, объясняет ли администратор выгоду в момент оплаты. Это стоит закладывать в проект как отдельную задачу.
Депозит недооценён
Механика, о которой почти не думают на старте, а по влиянию на возвращаемость она обгоняет бонусные баллы.
У вас похожая сеть?
Посчитаем на ваших цифрах: сколько клиентов выпадает из цикла и сколько окон сгорает за месяц.