Как я сделал SaaS для салонов красоты: 55 триалов и 20 платящих клиентов за три месяца
Три месяца назад BeautyDash был набором отчётов для одной клиники — нашей, в Екатеринбурге. Сегодня его попробовали 55 салонов и клиник, 20 из них платят каждый месяц. Через сервис прошло больше 100 тысяч сообщений клиентам, в его CRM — больше 9 тысяч сделок.
В статье две части. Первая — для владельцев салонов и клиник: какие задачи решает сервис, за что салоны готовы платить и сколько денег это приносит. Вторая — для разработчиков и тех, кто делает свой SaaS: как устроен продукт, как я веду разработку с ИИ-агентами и на какие грабли наступил в интеграциях с YCLIENTS, DIKIDI, amoCRM и мессенджерами.
Коротко в цифрах
- Первая оплата: 14 июля 2026 года
- Попробовали сервис: 55 салонов и клиник
- Платят сейчас: 20 (36% от попробовавших)
- Доход сервиса: около 100 000 ₽ в месяц, всего получено 187 000 ₽
- Экономия нашей клиники: 51 000 ₽ в месяц на сервисах, которые заменил BeautyDash
- Подключено филиалов: больше 50
- Сообщений через единое окно переписки: больше 100 000
- Подключённых мессенджеров: 77 — WhatsApp, Telegram, MAX, ВКонтакте, Instagram, Авито
- Сделок в CRM: больше 9 000
- Код: около 120 000 строк на Python, 1 051 автотест
- Обновлений: больше 500 за последние 2,5 месяца
С чего всё началось
У нас клиника косметологии. Запись — в YCLIENTS, заявки — в amoCRM, переписка с клиентами — в мессенджерах. Данных много, а ответов на простые вопросы нет:
- кто из постоянных клиентов перестал ходить и кому звонить сегодня;
- почему выручка за неделю ниже обычной — пришло меньше людей или упал средний чек;
- какой администратор записывает клиентов, а какой просто отвечает на сообщения;
- окупаются ли рассылки или это просто расход.
Стандартные отчёты показывают цифры, но не говорят, что с ними делать. Я начал собирать свои отчёты — сначала в таблицах, потом в отдельном сервисе. Когда им начали пользоваться наши администраторы и руководитель отдела продаж, стало понятно: эти же вопросы есть у каждого салона. Так появился BeautyDash.
Что умеет BeautyDash
Каждое утро — разбор в Telegram
Бот присылает владельцу разбор вчерашнего дня, а по понедельникам — разбор недели: что просело, у кого из специалистов, насколько и где посмотреть подробности. Если проблема есть, бот не хвалит, а пишет, сколько дней подряд она не решена. Это правило появилось после первых отзывов: отчёт, который хвалит при живой проблеме, быстро перестают читать.
Кому звонить сегодня
Сервис считает личный ритм каждого клиента — как часто он обычно приходит — и делит базу: «пора прийти», «под угрозой», «потерян». Отдельно выделены ценные клиенты: им звоним, остальным пишем. В зону риска клиент попадает не раньше чем через 60 дней после визита — иначе в обзвон попадали люди, которые только что закончили курс процедур.
Рассылки, которые окупают сервис
Подтверждение и напоминание о записи, поздравление с днём рождения, возврат давно не приходивших, сбор отзывов. Каналы — WhatsApp, Telegram и MAX, любое количество номеров и каналов за одну цену. Сообщение уходит не «всем раз в месяц», а тогда, когда конкретному клиенту по его ритму пора на процедуру. Тексты, аудитории и подарки готовим мы и согласуем с салоном.
Отдачу считаем прямо: клиент получил сообщение и в течение 14 дней записался — запись и её сумма засчитываются рассылке. В одном из салонов клиенты, получившие сообщение, записывались в 4,4 раза чаще похожих клиентов без сообщения: 10,2% против 2,3%. И ещё одно правило: одному клиенту — не больше одного сообщения-приглашения в 21 день, сколько бы каналов ни было подключено.
Вся переписка и CRM в одном окне
WhatsApp, Telegram, MAX, ВКонтакте, Instagram и Авито — в одной ленте. По каждому обращению — сделка с воронкой, задачами и историей визитов клиента из системы записи. Для салона это замена связки «CRM плюс сервис для мессенджеров». Расширение для браузера открывает окно переписки прямо поверх журнала YCLIENTS или DIKIDI, а на телефоне переписка ставится как приложение с уведомлениями.
Новое: «Заполнить свободные окна»
Выбираете специалиста и неделю — сервис находит пустые окна в его расписании и подбирает его же клиентов, которым пора на повторную процедуру: срок подошёл, будущей записи нет, услуга помещается в окно. Функцию попросил клиент, и мы сделали её за один день. На данных нашей клиники у одного косметолога на неделю нашлось 13 свободных окон и 32 клиента, которых можно в них пригласить.
У каждого клиента две кнопки — «Позвонить» и «Написать». Сообщение с процедурой, днём и временем уже составлено, администратор выбирает мессенджер и отправляет.
ИИ-советник
Вопрос своими словами — «почему упала выручка в октябре?», «кто из мастеров теряет клиентов?» — и ответ по данным салона. Сейчас в тестовом режиме.
Сотрудники и филиалы
У каждого сотрудника свой вход и свои отчёты, доступ можно ограничить филиалом. Звонок клиенту — прямо из карточки через телефонию салона.
С какими системами работаем
YCLIENTS, DIKIDI и 1С:Салон красоты. Для клиента из США подключили американскую систему записи MoeGo. Если у вас другая система записи или медицинская информационная система — подключим: интеграцию настраиваем с любой системой, из которой можно получить данные.
Почему салоны платят и что не сработало
Из 55 салонов, которые попробовали сервис, платят 20 — это 36%. Что я понял за эти три месяца:
- «Аналитику» не продать. Владельцу салона не нужны графики. Ему нужен список, кому звонить сегодня, и рассылки, которые приводят клиентов. Как только мы стали говорить про рассылки и деньги, а не про отчёты, разговоры с салонами пошли иначе.
- В конце пробного периода — письмо с цифрами самого салона. Не «продлите подписку», а: повторных визитов 18% при норме 50%, недополучено около 1,16 млн рублей, вот что сделать сегодня — выгрузить список и отдать администраторам на обзвон. Подписка окупается с одного вернувшегося клиента. После таких писем продлились первые клиенты.
- Подключение без ручного ввода. Салон даёт доступ к системе записи, ночью сервис собирает данные, утром приходит первый разбор. Если подключение требует заполнять что-то руками, до результата не доходит никто.
- Короткий пробный период. Семь дней хватает, чтобы увидеть первые находки и первые записи с рассылок.
- Не всем нужны рассылки. Некоторые салоны боятся передавать телефоны клиентов. Для них есть режим без телефонов и имён — только аналитика.
Сколько денег это приносит
Мне как разработчику
Подписка стоит 5 000 рублей в месяц за кабинет. Вот сколько пришло оплат по месяцам (до комиссии эквайринга):
- Июль: около 10 000 ₽ — первые клиенты
- Август: 35 000 ₽
- Сентябрь: 40 000 ₽
- Октябрь (на 24 число): 102 000 ₽
Всего за три с половиной месяца — 187 тысяч рублей. Сейчас платят 20 кабинетов, это около 100 тысяч рублей в месяц, и каждый новый салон добавляет ещё 5 тысяч.
Нашей клинике
Клиника была первым пользователем сервиса, и по ней видно, сколько он экономит и приносит:
- Отказались от сервиса для подключения мессенджеров к CRM — минус 36 000 рублей в месяц. Вся переписка теперь в BeautyDash.
- Отказались от отдельного сервиса рассылок — минус 15 000 рублей в месяц.
- Итого 51 000 рублей экономии в месяц — больше 600 тысяч в год.
- Рассылки вернули клиентов. С 25 августа после сообщений-приглашений записались 101 человек. 82 из них уже пришли и заплатили 252 тысячи рублей, а вместе с записями на будущие даты — 361 тысяча.
То есть одна клиника за два месяца получила от сервиса больше, чем он заработал на всех клиентах за первые три месяца.
Для разработчиков: как устроен сервис
Монолит на Python и Flask, база — SQLite, всё на одном сервере. Ночные сборщики забирают данные из систем записи, считают отчёты и сохраняют готовые срезы, а страницы кабинета читают уже готовое. Вокруг монолита — Telegram-бот для отчётов, свои шлюзы к мессенджерам, расширение для браузера и мобильное приложение переписки с push-уведомлениями. Сейчас это около 295 модулей и 120 тысяч строк кода, плюс 133 файла автотестов — 1 051 тест.
Первая архитектурная грабля была ожидаемой, но больно ударила. Кабинет работает в одном потоке, а ответ ИИ-советника приходит за 20–60 секунд. Пока модель думала над вопросом одного салона, кабинеты всех остальных клиентов «замирали». Решение — любая долгая операция уходит в фоновый поток, страница опрашивает её статус. С тех пор это правило для всех тяжёлых операций.
Как я веду разработку с ИИ-агентами
Большую часть кода пишут ИИ-агенты — Claude Code и Codex. Моя роль — продукт: я ставлю задачи словами владельца салона, принимаю результат на живых данных и решаю, что выкатывать клиентам. Что я из этого вынес:
1. Правила нужно записывать, а не повторять
У агента есть файлы памяти с «канонами»: что считается визитом, что считается выручкой, какой длины пробный период, чего нельзя делать на боевом сервере. Каждая ошибка, на которую я ругаюсь, превращается в записанное правило — и больше не повторяется.
2. Каждая правка проходит один и тот же ритуал
Резервная копия файлов, автотесты, номер версии и запись в журнале изменений, проверка на живой странице и скриншот. Агент не говорит «готово», пока не посмотрел результат сам.
3. Сначала пилот
Всё новое и видимое сначала появляется у нашей клиники, а клиентам — после проверки на реальной работе администраторов.
4. Агенту — всё, кроме необратимого
Он сам пишет код, тесты и выкатывает правки, но не включает автоматические рассылки на боевом и не пишет клиентам без моего «да».
5. Один агент пишет, другой проверяет
Независимый аудит кода вторым агентом находит то, что автор пропустил: от дыр в правах доступа до неверных формул в отчётах.
6. Подробное техзадание не нужно
Нужны пример («вот скрин из amoCRM, сделай так же») и критерий проверки («у этого косметолога на неделю должны найтись окна и клиенты»).
Грабли интеграций
YCLIENTS
- Постраничная выгрузка кассовых операций на широком периоде молча теряет строки — например, минус две операции на 9 630 рублей. Помогают запросы короткими периодами и сверка итоговой суммы.
- Токен пользователя умирает при смене пароля или «завершить все сеансы». Причём часть методов после этого отдаёт пустой список вместо ошибки, и отчёт показывает «ноль». Нужен запасной токен и сторож, который отличает «ноль» от «не ответили».
- Изменение услуги через API разрушающее: поля, которые вы не передали, сбрасываются — услуга становится неактивной и пропадает из онлайн-записи.
- Планов лечения и медкарт в публичном API нет.
Что такое «визит»
Полтора десятка модулей считали визиты каждый по-своему, и отчёты расходились между собой. Служебные записи вроде «Собрание» превращались в «новых клиентов», а лист ожидания — в отмены: у одного салона набралось 1 524 ложные отмены. Пришлось записать единое определение — визит = клиент + отметка «пришёл» + хотя бы одна услуга — и перевести на него все отчёты.
Деньги
Выручка — только кассовые операции, а не стоимость визитов. Выручка мастера — стоимость его собственных услуг. Раньше «осмотр за 0 рублей» у главного врача забирал половину стоимости чужой процедуры в тот же день, и у двух специалистов вместо 64 000 и 3 000 рублей показывалось по 33 500.
Мессенджеры
WhatsApp ограничивает номер за полдня, если массово писать людям, которые раньше с этим номером не переписывались. Вывод: в WhatsApp — только сообщения о записи и тем, с кем уже есть переписка; приглашения вернуться — в Telegram и MAX; объём на номер растёт лесенкой, до сотни сообщений в день.
amoCRM
Лимит запросов к API общий на весь аккаунт. Многопоточная выгрузка съела его целиком, и amoCRM заблокировал IP сервера — встали все интеграции разом. Теперь массовые операции идут в один поток, с паузой между запросами и ночью.
Ритм клиента
Личный ритм — медиана промежутков между визитами. Но курс процедур раз в одну–четыре недели после окончания давал ложную «угрозу ухода» уже через пять–семь недель. Отсюда правило: «под угрозой» — не раньше 60 дней после визита.
Что дальше
Ближайшие планы — «Заполнить свободные окна» для DIKIDI и медицинских систем, новые подключения систем записи и развитие ИИ-советника. Приоритеты задают клиенты: большая часть функций за эти три месяца появилась из их вопросов и жалоб.
Если у вас салон или клиника и вы хотите понять, сколько клиентов уходит незаметно и сколько денег можно вернуть рассылками, — попробуйте BeautyDash: beautydash.ru. Пробный период — 7 дней, подключение без ручного ввода данных. Работаем с YCLIENTS, DIKIDI, 1С и подключим вашу систему записи или МИС.
Если вы делаете свой SaaS с ИИ-агентами — пишите в комментариях, какие грабли собрали вы. Отвечу на вопросы про архитектуру, интеграции и про то, как держать агентов в рамках.