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

Именно такой контур мы построили для медицинского центра «Інстинкт Сонця» в Харькове, сайт instinctsun.com. До начала работ на старом сайте, работавшем на устаревшей CMS, было более 800 URL, а форма записи не работала: введённые данные оставались в браузере посетителя и не доходили до клиники. С мая по август 2026 года сайт, админку и мини-CRM переработали, а в августе система вышла в продакшен. Сейчас в ней 531 заявка, 404 карточки пациентов, 23 врача и 295 услуг.

Интерфейсы и итог проекта можно посмотреть в кейсе «Інстинкт Сонця». Ниже разбираем не презентацию, а рабочую логику: что происходит от выбора времени до повторного визита.

Что такое CRM для клиники и чем она отличается от обычного сайта?

Короткий ответ: сайт отвечает на вопросы пациента до обращения, а CRM ведёт само обращение дальше. Она принимает заявку, сверяет её с графиком врача, показывает администратору текущий статус, объединяет повторные обращения в одну карточку и сохраняет историю визитов. Врач работает в своём модуле, а не в общем списке заявок: фиксирует жалобы, диагноз, назначения и рецепт, после чего печатает нужный бланк. Отдельные правила запускают уведомления в Telegram, SMS и заявку на follow-up. Поэтому CRM клиники связывает публичный сайт, расписание, администратора, врача и пациента. Если сайт просто отправляет форму на почту, в нём нет контроля занятости, единой истории и защиты от повторного ввода данных. В рабочей системе каждое действие изменяет одну общую запись, которую видит только роль с соответствующим доступом. Проверять такую CRM нужно по полному маршруту: от доступного слота до медкарты, сообщения и контролируемого доступа к документу.

В этом проекте собственная админка насчитывает 48 экранов и работает по принципу «админка = зеркало сайта». Для каждого типа страницы есть поля контента и SEO-вкладка с превью поискового сниппета. Роли разделены на администратора, менеджера и врача, а право управлять врачами и графиками вынесено в отдельное разрешение. Доступ проверяется на уровне страниц.

Маршрут данных виден на одном обращении. Пациент выбирает слот на сайте, после сохранения заявка появляется в воронке и уведомляет команду в Telegram. Менеджер подтверждает запись, а система отправляет SMS. По номеру телефона обращение попадает в существующую карточку или становится основой новой. После приёма врач добавляет медицинскую запись и при необходимости создаёт follow-up. Эта цепочка не требует повторно переносить имя, телефон, врача и время между отдельными таблицами.

Как онлайн-запись показывает реальные свободные слоты?

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

Онлайн-запись медицинского центра с выбором врача, услуги, даты и свободного слота

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

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

Что происходит при одновременном бронировании?

Доступность проверяется ещё раз во время сохранения. Первая успешная запись занимает слот. Второй пользователь получает отказ, а занятое время исчезает из списка. Это закрывает сценарий, который не решает обычная форма с полем «желаемое время». Базовую логику такого модуля мы подробнее разбирали в статье о системе онлайн-записи для бизнеса.

Как работают воронка заявок и календарь администратора?

У каждой заявки есть статус и полная история. Она движется по маршруту: новая, в работе, подтверждена, пришёл, отменена или спам. Администратор видит, где нужен звонок, а где приём уже подтверждён. Новая заявка сразу запускает уведомление в Telegram.

  • Новая: обращение только что попало в систему.
  • В работе: менеджер уже обрабатывает заявку.
  • Подтверждена: время согласовано с пациентом.
  • Пришёл: запланированный визит состоялся.
  • Отменена или спам: запись не должна оставаться среди активных приёмов.
CRM медицинского центра с воронкой новых, подтверждённых, завершённых и отменённых заявок

В календаре запись можно перетащить на другую дату. Изменение не создаёт отдельную несогласованную копию: карточка заявки сохраняет историю, а новое время становится частью того же процесса. Это даёт менеджеру один экран для ежедневной работы вместо переписки, таблицы и бумажного журнала.

Календарь записей медицинского центра с переносом заявки на другую дату

Что хранится в карточке пациента и медкарте?

Карточка пациента собирает все обращения одного человека. Заявки объединяются в карточку по номеру телефона, поэтому повторная запись не создаёт новый изолированный профиль. В карточке есть медицинская информация, история и количество визитов, а для постоянного пациента показывается отдельный бейдж.

Для администратора это убирает дубликаты с разными датами, а для врача сохраняет последовательность обращений. Бейдж постоянного пациента не является отдельным списком, он показывается в той же карточке, где уже есть предыдущие визиты. На момент подготовки кейса в продакшене было 404 такие карточки.

Карточка пациента в CRM с медкартой, историей визитов и документами

Почему медицинские документы не лежат в публичной папке?

Файл в публичном каталоге веб-сервера можно отдать по прямому адресу, если путь стал известен. В этой системе документы хранятся за пределами публичной папки. Доступ к ним проходит через защищённый маршрут после проверки авторизации. Это техническая граница между материалами сайта, например фотографиями услуг, и приватными файлами пациента.

Что врач заполняет во время приёма?

Модуль приёма фиксирует данные консультации в карточке пациента. Врач вносит жалобы, диагноз, назначения и рецепты. ИМТ рассчитывается автоматически. Для повторяющихся сценариев есть шаблоны приёма и команда «повторить предыдущий», чтобы не набирать одинаковую структуру заново.

Из записи формируются три печатных бланка: консультативное заключение, лист назначений и направление. Если врач указывает дату follow-up, система создаёт новую заявку в воронке. Повторный контакт не остаётся примечанием, которое администратор должен случайно заметить.

Шаблон и команда повторения сокращают именно повторный ввод, но не отменяют решение врача. Жалобы, диагноз, назначения, рецепт и дата следующего контакта остаются отдельными частями приёма. Благодаря этому печатные формы собираются из текущей записи, а не из копии старого документа.

Как работают SMS для пациентов и что в этом модуле нужно тестировать?

SMS привязано к событию, а не к ручному копированию номера. Модуль поддерживает пять сценариев: новая заявка, подтверждение, напоминание, отмена и перенос. Тихие часы действуют с 21:00 до 9:00, повторные сообщения отсекает дедупликация, а напоминания запускаются по расписанию.

Экран настройки SMS для подтверждения, напоминания, отмены и переноса записи

Какие дефекты нашли аудиты до запуска?

Проверка реальных переходов между состояниями обнаружила в SMS-модуле восемь дефектов, четыре из них были серьёзными. Запись со статусом failed могла навсегда заблокировать следующее напоминание. При переносе система отправляла текст отмены, но подставляла в него новую дату. Оба сценария исправили до запуска.

Аудиты также показали, что заявка могла молча потеряться из-за ошибки в номере телефона, а деактивация пользователя не отзывала его активную сессию. Эти ошибки тоже исправили до выхода в продакшен. Такой тест должен охватывать не только успешное создание записи, но и повторы, ошибки доставки, перенос, изменение доступа и конкурентное бронирование.

Как перенести старый сайт клиники без потери рабочих адресов?

Сначала составляют полную карту старых URL, затем каждой странице назначают новую цель. На старом сайте было более 800 URL. Для запуска подготовили 932 редиректа и sitemap на 599 URL, добавили JSON-LD для MedicalOrganization, Physician, MedicalProcedure и Article, а Search Console настроили с нуля.

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

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

Публичная часть имеет 22 маршрута. ISR в Next.js позволяет отдавать подготовленные страницы и обновлять данные без полной перестройки сайта. В продакшене главная страница отвечает за 0,18 с.

Что получила клиника и сколько стоит подобная система?

Результат можно описать цифрами, которые уже есть в продакшене. Система обслуживает 295 услуг в 31 категории и пяти группах, 23 врача, 285 статей, 46 акций, 531 заявку и 404 карточки пациентов. Она объединяет сайт, 48 экранов админки, CRM, приём врача, сообщения и SEO-миграцию.

Технический объём: около 51 000 строк TypeScript. Стек состоит из Next.js 16, React 19, TypeScript, PostgreSQL 17 и Prisma 7 с 79 моделями. Авторизация работает на next-auth и bcrypt, SMS отправляются через TurboSMS API, внутренние уведомления через Telegram Bot API.

Когда стоит рассматривать собственную систему?

Готовый продукт можно взять за основу, если клинике подходят стандартные роли, карточка и схема записи. Собственная разработка имеет смысл, если система должна рассчитывать слоты по вашим услугам, повторять структуру публичного сайта в админке, работать с отдельными правами на графики, хранить приватные документы и переносить большой массив старых URL.

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

Какой бюджет взять за ориентир?

Корпоративный сайт в Artbrain стоит от $1200, разработка CRM от $3000. Связку сайта, онлайн-записи, CRM и модуля врача оценивают после брифа, потому что объём зависит от ролей, данных, миграции и нужных сценариев. Для клиник мы собрали отдельную страницу о разработке CRM для медицинского центра.

FAQ

Что такое CRM для клиники?

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

Как работает онлайн-запись к врачу по свободным слотам?

Система берёт график выбранного врача, вычитает занятые записи и строит слоты с шагом, равным длительности услуги. Если два человека одновременно выбирают одно время, первая запись занимает слот, а второй пользователь получает отказ.

Что должна содержать карточка пациента в CRM?

В этом кейсе карточка содержит медкарту, историю и количество визитов, документы и связанные заявки. Повторные обращения объединяются по номеру телефона, а приватные файлы хранятся за пределами публичной папки сайта.

Сколько стоит CRM для клиники?

Разработка CRM в Artbrain стоит от $3000, корпоративного сайта от $1200. Общий бюджет сайта, записи и медицинских модулей определяется после брифа.

Готовая медицинская система или собственная CRM: что выбрать?

Готовый продукт подходит, если роли и процесс записи укладываются в его стандартную логику. Собственную CRM стоит рассматривать, когда нужны свои статусы, графики, документы, права доступа, интеграции или миграция большого старого сайта.

Частые вопросы

Что такое CRM для клиники?

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

Как работает онлайн-запись к врачу по свободным слотам?

Система берет график выбранного врача, отнимает занятые записи и строит слоты с шагом, равным продолжительности услуги. Если два человека одновременно выбирают одно время, первая запись занимает слот, а второй пользователь получает отказ.

Что должно содержать карточка пациента в CRM?

В этом кейсе карта содержит медкарту, историю и количество визитов, документы и заявки. Повторные обращения сливаются по телефону, а частные файлы сохраняются вне публичной папки сайта.

Сколько стоит CRM для клиники?

Цена зависит от объема работ, интеграции и сроков. Точную оценку готовим после бесплатного разбора задачи.

Готовая медицинская система или собственная CRM: что выбрать?

Готовый продукт подходит, если роли и процесс записи вкладываются в его стандартную логику. Собственную CRM следует оценивать, когда нужны свои статусы, графики, документы, права доступа, интеграции или миграция большого старого сайта.

Anton Kunashenko, CEO & Lead Developer
CEO и ведущий разработчик Artbrain

Anton Kunashenko

Основатель Artbrain с 2018 года. Разрабатывает цифровые продукты для бизнеса: от лендингов до enterprise-систем.