CRM для мотосервиса нового поколения
Логотип S4F-CRM S4F-CRM.ru

CRM для мотосервиса
всё в одном окне

Полная CRM для мотомастерских: онлайн-запись, чаты и объявления Avito, SMS-верификация, PWA-приложение для клиентов, промокоды магазина и сервиса, онлайн-оплата, умные печатные формы, телефония, склад и 1С — всё в одной системе.

Записей без лимита
20+
Модулей в системе
2
Портала для работы
24/7
Доступность системы

Система работает на двух уровнях

Отдельные порталы для сотрудников и для клиентов — каждый видит только то, что нужно.

🔧

Мастерская и сотрудники

Полный контроль над работой сервиса: записи, заказ-наряды, склад, маркетплейсы и аналитика.

  • Управление записями, слотами и календарём
  • Назначение механиков, графики смен
  • Чаты и объявления Avito прямо в CRM
  • Склад запчастей, каталог марок и моделей ТС
  • Применимость номенклатуры к технике
  • Печатные формы с Handlebars-шаблонами
  • Телефония Mango Office, фискальные чеки
  • Финансовая аналитика и отчёты
🏍️

Клиенты сервиса

Клиент заходит с телефона — видит статус, историю и может записаться сам.

  • Онлайн-запись на удобное время
  • Статус ремонта в реальном времени
  • История всех обращений и заказов
  • Карточки своих мотоциклов
  • Вход по SMS-коду — без паролей и регистраций
  • Устанавливается как приложение (PWA)
  • Push-уведомления об изменении статуса

От записи до оплаты — в одном кабинете

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

Простой путь клиента — меньше ручной работы у менеджера

Все суммы рассчитываются на сервере. Скидка корректно учитывается до оплаты, а информация о применённом промокоде сохраняется вместе с записью.

  1. 1
    Выбирает услугу и свободный слотОнлайн-запись с телефона в личном кабинете
  2. 2
    Вводит промокодПроверка доступности и размера скидки до оплаты
  3. 3
    Оплачивает готовую сумму онлайнЕсли скидка покрыла всё — внешний счёт создавать не нужно
🎟️

Один промокод — нужная область применения

В админке можно создать код только для магазина, только для сервиса или для обоих направлений.

Только магазин Только сервис Магазин + сервис
Для сервиса скидка применяется только к стоимости работ — запчасти остаются без изменений.
💳

Прозрачная онлайн-оплата

До оплаты клиент видит исходную сумму, размер скидки и итог. Повторный запрос не создаёт второй платёж.

Avito прямо в панели управления

Отвечайте клиентам, следите за объявлениями и синхронизируйте лиды — не выходя из CRM.

Интеграция с Avito
по OAuth 2.0

Подключите аккаунт Avito один раз — и работайте с покупателями прямо внутри S4F-CRM. Токены обновляются автоматически, ничего не нужно настраивать повторно.

Посмотреть в панели →
  • 💬
    Чаты покупателей Читайте и отвечайте на сообщения Avito, отмечайте прочитанными
  • 📋
    Объявления Список всех объявлений с фильтрами по статусу, ценами и статистикой просмотров
  • 🔄
    Синхронизация клиентов Авито-покупатели автоматически попадают в базу клиентов CRM
  • 🔔
    Непрочитанные в навигации Счётчик новых сообщений всегда на виду в боковом меню

Всё для работы мотосервиса

22+ модуля, покрывающих все процессы — от онлайн-записи до OBD-2 диагностики.

🗓️

Онлайн-запись

Клиенты выбирают дату, мастера и услугу сами. Слоты по расписанию, без двойных броней, с оплатой из личного кабинета.

📱

Личный кабинет (PWA)

Статус ремонта в реальном времени. Устанавливается на экран телефона как приложение. Push-уведомления о статусе.

🔐

SMS-верификация

Вход в личный кабинет по 4-значному коду из SMS. Без паролей — 2 нажатия и готово. Новые клиенты регистрируются автоматически.

🏍️

Учёт техники

История обслуживания каждого мотоцикла: пробег, работы, запчасти — всё сохраняется.

📊

Аналитика и отчёты

Выручка по периодам, нагрузка на механиков, популярные услуги — в наглядных графиках.

👥

Управление персоналом

Профили механиков, распределение задач, контроль загруженности каждого сотрудника.

📅

График работы

Еженедельное расписание для каждого механика: рабочие дни, начало и конец смены.

📦

Складской учёт

Остатки запчастей, приходные накладные, расход по заказ-нарядам. Всегда знаете, что есть.

🚗

Каталог марок и моделей ТС

Справочник техники с синхронизацией из 1С. Быстрый поиск марки и модели при оформлении ТС клиента.

🔗

Применимость запчастей

Привязка номенклатуры к маркам и моделям техники. Сразу видно, к каким мотоциклам подходит деталь.

💬

SMS-уведомления

Клиент получает сообщение при подтверждении записи, смене статуса и напоминание накануне.

🛒

Avito-маркет

Чаты с покупателями, объявления и синхронизация лидов из Avito прямо в панели CRM.

📄

Печатные формы

Handlebars-шаблоны для заказ-нарядов, актов и договоров. Умный редактор с образцами переменных.

📞

Телефония

Интеграция с Mango Office: входящие звонки, история, инициирование звонка из карточки клиента.

🏠

Хранение ТС

Учёт мотоциклов на длительном хранении: даты приёма и выдачи, стоимость, состояние.

🚿

Мойка

Отдельный модуль для мойки ТС: статусы, очередь и история по каждому заезду.

🏭

1С Номенклатура

Синхронизация каталога запчастей и справочника ТС с 1С:Предприятие через OData. Актуальные цены и остатки.

🧾

Фискальные чеки

Интеграция с АТОЛ Онлайн и Эвотор Cloud для выдачи чеков по 54-ФЗ прямо из системы.

🔒

Роли и безопасность

JWT-авторизация, разделение ролей (админ, менеджер, механик, мойщик). Защита всех маршрутов.

🛍️

Интернет-магазин

Каталог запчастей с корзиной, промокодами и оформлением заказов для внешних покупателей. Синхронизирован со складом.

🎟️

Промокоды магазина и сервиса

Процентные и фиксированные скидки с областью применения: магазин, сервис или оба направления. Один код за заказ.

💳

Онлайн-оплата сервиса

Клиент видит итог после скидки и оплачивает запись онлайн. Применённая скидка и сумма сохраняются в истории.

🔌

OBD-2 диагностика

Подключение ELM327-адаптера по Bluetooth прямо в браузере. Чтение кодов ошибок (DTC), история сканирований по каждому ТС. Коды автоматически переносятся в заказ-наряд.

👨‍🔧

Управление персоналом

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

Личный кабинет как приложение
с SMS-верификацией

Клиент устанавливает кабинет на экран телефона и входит за 2 нажатия — без App Store, без паролей.

Как это работает

После установки приложения клиент входит по номеру телефона — система отправляет 4-значный SMS-код. Существующие клиенты получают токен сразу, новые заполняют имя один раз и больше к этому не возвращаются.

  • 1
    Открывает ссылку в браузере телефона Chrome или Safari предложат «Установить» — работает без App Store
  • 2
    Вводит номер телефона Система отправляет 4-значный код через SMS Aero
  • 3
    Вводит код → сразу внутри Готово. Токен сохраняется, следующий вход без SMS
  • 4
    Получает push-уведомления Статус ремонта приходит на экран как обычное уведомление телефона
📲
Установка без магазина приложений PWA-манифест + Service Worker — браузер предлагает добавить на рабочий стол
🔑
SMS OTP верификация 4-значный код действует 5 минут, максимум 5 попыток. Rate-limit: 1 код в 60 секунд
📶
Офлайн-оболочка Service Worker кэширует интерфейс — страница загружается даже без сети
🔔
Web Push уведомления Клиент разрешает уведомления один раз и получает их без открытого браузера
🌐
iOS и Android Работает на всех современных смартфонах без дополнительных настроек

Умный редактор шаблонов

Создавайте заказ-наряды, акты и договоры с переменными, которые подставляются автоматически при печати.

Почему S4F-CRM

Система создана специально для мотосервисов, а не адаптирована из общего CRM-конструктора.

01

Заточено под мото

Карточки байков с VIN, маркой, моделью и пробегом. Каталог марок ТС из 1С. Не универсальный «клиент», а конкретная техника с историей.

02

Маркетплейсы внутри

Avito-чаты, объявления и лиды — прямо в панели. Не нужно переключаться между вкладками и терять заявки.

03

Клиент без лишних шагов

Вход по SMS-коду за 30 секунд. PWA-приложение на экране телефона. Push-уведомления. Клиент всегда в курсе — без вашего звонка.

04

Всё у вас на сервере

Self-hosted на Docker. Ваши данные остаются у вас. Нет подписки, нет зависимости от облачного провайдера.

Два интерфейса, один сервер

Общий API-сервер, разные JWT-токены и полное разделение доступа.

Для сотрудников

Панель управления

Полный функционал для администраторов и механиков:

  • Записи, Avito-чаты, печатные формы
  • Клиенты, техника, история обслуживания
  • Склад, каталог ТС, применимость запчастей
  • Телефония, аналитика, фискальные чеки
  • Хранение ТС, мойка, интернет-магазин
Открыть панель →
panel.s4f-crm.ru
Для клиентов

Личный кабинет

Мобильное PWA-приложение для клиентов:

  • Вход по SMS-коду — без паролей
  • Статус ремонта в реальном времени
  • Самостоятельная онлайн-запись
  • Промокоды и онлайн-оплата записи
  • История заказов и карточки мотоциклов
  • Push-уведомления об изменении статуса
Войти в кабинет →
client.s4f-crm.ru

Рабочие экраны — без лишних слов

Панель помогает команде вести сервис, а клиентский кабинет делает запись и контроль ремонта удобными с телефона.

Панель управления Kanban записей

Все записи сервиса перед глазами

Фильтры, статусы, исполнители и быстрые действия в одном рабочем экране.

Kanban записей в панели управления S4F-CRM
Панель управления Мобильный доступ

Управляйте сервисом даже с телефона

Адаптивный интерфейс панели сохраняет ключевые сценарии в дороге и на рабочем месте.

Мобильный Kanban записей S4F-CRM
Клиентское приложение Главный экран

Клиент видит всё важное сразу

Активные записи, гараж и быстрый переход к записи на обслуживание — в одном кабинете.

Главный экран клиентского приложения S4F-CRM
Клиентское приложение Каталог запчастей

Запчасти и покупки — тоже в кабинете

Клиент может открыть карточку детали, увидеть цену и наличие, а затем оформить заказ.

Каталог запчастей в клиентском приложении S4F-CRM

Полная база знаний S4F-CRM

Пошаговые инструкции по первичной настройке, ежедневной работе сотрудников и сценариям клиентского приложения.

Ничего не найдено
Попробуйте изменить запрос или выбрать тему слева.
Как установить S4F-CRM на сервер?
Для запуска production-стека нужны Docker, Docker Compose и настроенный файл окружения на сервере. После клонирования репозитория выполните:

make deploy

Команда последовательно соберёт сервисы, запустит контейнеры, дождётся готовности TLS-прокси и выполнит post-deploy проверки.
⚠️ Секреты и пароли хранятся только в защищённом окружении сервера. Не добавляйте production-файл окружения в Git.
Какие базы данных используются?
Основное постоянное хранилище S4F-CRM — MongoDB:
  • клиенты, техника, записи и заказ-наряды;
  • учётные записи и роли сотрудников;
  • склад, интеграции, сообщения, шаблоны и настройки.
Подключение задаётся через MONGODB_URI или безопасно собирается production Compose из параметров MongoDB. Фотографии и документы хранятся отдельно в настроенном файловом или S3-совместимом хранилище.
Как создать первого пользователя панели управления?
До первого запуска задайте на сервере ADMIN_USERNAME и обязательный production-пароль ADMIN_PASSWORD. Если активных администраторов ещё нет, API создаст первую учётную запись автоматически.

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

git pull origin main
make deploy

Стандартный deploy последовательно пересобирает сервисы, запускает стек и проверяет публичные security headers. Данные в постоянных Docker-томах не удаляются.
⚠️ Перед обновлением сделайте проверенную резервную копию MongoDB и не используйте docker compose down -v: флаг -v удаляет постоянные тома.
Что настроить перед началом работы сервиса?
Администратор Рекомендуемый порядок первого запуска:
  1. Заполнить Реквизиты и загрузить логотип.
  2. Создать Типы транспорта и проверить каталог марок и моделей.
  3. Добавить Услуги, цены и длительность.
  4. Создать учётные записи и карточки Персонала.
  5. Настроить Рабочее время и слоты онлайн-записи.
  6. Проверить Разделы и доступы для каждой роли.
  7. Подключить SMS, push, хранилище, 1С, Avito и оплату, если они используются.
  8. Создать тестового клиента и пройти полный сценарий записи до завершения.
Как провести тестовый запуск без риска для реальных данных?
Администратор Создайте тестового клиента с контролируемым номером, тестовую технику и отдельную услугу. Проверьте создание записи, назначение сотрудника, изменение статусов, уведомления, печатную форму и завершение. После проверки отмените или удалите только тестовые записи.
💡 Не используйте реальные платёжные данные и не запускайте массовые рассылки во время теста.
Как устроена панель управления?
Все сотрудники Основные разделы находятся в боковом меню. На телефоне меню открывается кнопкой в правой части шапки.
  1. Аналитика показывает ключевые показатели, популярные услуги и состояние системы.
  2. Записи объединяют список, Kanban и календарь.
  3. Клиенты содержат карточки клиентов, технику, историю, покупки и переписку.
  4. Управление сервисом включает услуги, персонал, склад, графики, мойку и хранение ТС.
  5. Онлайн-продажи объединяют Avito, магазин, заказы, промокоды и доставку.
  6. Настройки отвечают за интерфейс, реквизиты, интеграции и доступы.
💡 Быстрый поиск в шапке помогает найти клиента, запись или другой объект без перехода по разделам.
Как настроить тему, цвет статусов и боковое меню?
Все сотрудники Откройте Настройки → Настройки аккаунта.
  1. Выберите светлую, тёмную или системную тему.
  2. Настройте цветное или монохромное отображение статусов.
  3. Сохраните изменения — они применятся к текущему аккаунту.
Боковую панель можно свернуть кнопкой в нижней части меню. Состояние запоминается в браузере.

Результат: интерфейс сохраняет выбранный вид при следующем входе.

Как включить или скрыть разделы панели?
Администратор Откройте Настройки → Разделы и доступы. Для каждого раздела можно изменить видимость и доступные роли. После сохранения меню сотрудников обновится.
  • Скрывайте неиспользуемые модули, чтобы упростить навигацию.
  • Оставляйте финансовые и системные разделы только администраторам и менеджерам.
  • Механикам используйте отдельный кабинет работ, а мойщикам — раздел «Мойка».
⚠️ Если сотрудник уже открыл страницу, сервер всё равно повторно проверит его права и не покажет запрещённые данные.
Как настроить название компании, логотип и реквизиты?
Администратор Перейдите в Настройки → Реквизиты.
  1. Заполните название, контакты и юридические данные организации.
  2. Загрузите логотип в поддерживаемом формате изображения.
  3. Проверьте предпросмотр и нажмите «Сохранить».
Реквизиты используются в печатных формах, а логотип — в интерфейсе и документах.
Какие роли сотрудников существуют и что они видят?
Администратор
  • Администратор — полный доступ, включая системные настройки и сотрудников.
  • Менеджер — клиенты, записи, сервис, продажи и отчёты в рамках выданных доступов.
  • Механик — назначенные работы, детали заказа и свой рабочий кабинет.
  • Мойщик — доска мойки и график работы.
  • Мастер-приёмщик и менеджер по запчастям — профессиональные должности, используемые в процессах сервиса.
Учётные записи настраиваются в разделе Сотрудники, профессиональные карточки — в разделе Персонал.
Как добавить нового клиента?
Администратор · Менеджер
  1. Откройте раздел Клиенты.
  2. Нажмите кнопку «Новый клиент».
  3. Укажите ФИО и телефон. При наличии добавьте email и примечание.
  4. Проверьте номер телефона: по нему клиент входит в личный кабинет.
  5. Сохраните карточку.

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

💡 Перед созданием используйте поиск по телефону — это помогает не создавать дубликаты.
Как найти клиента и отфильтровать базу?
Администратор · Менеджер В разделе Клиенты используйте поиск по имени, телефону или email. Дополнительные фильтры позволяют выбрать платформу привязки — Telegram, VK, MAX — и источник клиента: сервис или магазин. На мобильном экране фильтры находятся внутри раскрывающегося блока.
Что находится в карточке клиента?
Администратор · Менеджер Карточка открывается нажатием на строку клиента и содержит:
  • Информация — контакты, источник и основные данные.
  • Техника — автомобили и мотоциклы клиента.
  • История — записи и обслуживание.
  • Покупки — заказы магазина.
  • Чат — переписка с клиентом.
Прямые ссылки на карточку можно передавать коллегам: выбранный клиент и вкладка сохраняются в URL.
Как добавить клиенту автомобиль или мотоцикл?
Администратор · Менеджер Откройте карточку клиента → вкладку «Техника»«Добавить». Выберите тип транспорта, марку и модель, затем укажите год, VIN, госномер и пробег, если они известны. Сохранённая техника будет доступна при создании записи и в личном кабинете клиента.
💡 Марки и модели берутся из «Каталога ТС». Если нужного значения нет, сначала добавьте его в справочник или синхронизируйте с 1С.
Как изменить данные клиента или удалить ошибочную карточку?
Администратор · Менеджер Откройте карточку клиента и нажмите действие редактирования. После изменения контактов сохраните форму. Перед удалением проверьте историю записей, заказы и привязанные социальные сети.
⚠️ Удаление используйте только для ошибочно созданных карточек. Для реального клиента с историей безопаснее исправить данные, чтобы не потерять связи с заказами и работами.
Как понять, какие соцсети привязаны к клиенту?
Администратор · Менеджер В списке и карточке клиента отображаются признаки привязки Telegram, VK и MAX. Эти связи создаются только после подтверждённого входа через соответствующее мини-приложение и помогают объединить обращения одного человека.
Как создать новую запись из панели?
Администратор · Менеджер
  1. Откройте Записи и нажмите «Новая запись».
  2. Выберите существующего клиента или создайте нового.
  3. Выберите технику клиента и услуги.
  4. Укажите дату, временной слот, исполнителя и комментарий.
  5. Проверьте итог и сохраните.

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

Чем отличаются список, Kanban и календарь?
Все сотрудники с доступом к записям
  • Список удобен для поиска, фильтрации и последовательной обработки.
  • Kanban группирует карточки по статусам и показывает текущую загрузку.
  • Календарь помогает планировать занятость по датам и времени.
Фильтры по датам, механикам и SMS применяются к рабочему представлению.
Как менять статус записи и что увидит клиент?
Администратор · Менеджер · Механик Откройте запись и выберите следующий статус: ожидает → подтверждена → в работе → завершена. Отменённые записи помечаются отдельно. Каждое изменение попадает в историю статусов. Клиент видит актуальный статус и временную шкалу в карточке записи; при настроенных уведомлениях он также получает SMS или push.
Как назначить механика, услуги и запчасти?
Администратор · Менеджер В карточке записи выберите исполнителя, подходящего по типу транспорта, добавьте услуги и необходимые запчасти. Для совместной работы можно назначать сотрудников на отдельные услуги. Перед завершением проверьте фактический состав работ, выданные детали и итоговую стоимость.
Как перенести, отменить или удалить запись?
Администратор · Менеджер Для переноса откройте карточку и измените дату или временной слот. Для реального отказа клиента используйте «Отменить» — история сохранится, а слот освободится. Удаление предназначено для дублей и ошибочных записей.
⚠️ Не удаляйте завершённые заказ-наряды: они участвуют в истории клиента и отчётности.
Как настроить рабочее время и слоты онлайн-записи?
Администратор · Менеджер Откройте Настройки записи. Укажите начало и конец рабочего дня, длительность слота, доступные дни и лимиты. Сохраните форму и проверьте предпросмотр слотов. Клиент увидит только доступные даты и время; занятые или отключённые слоты не предлагаются.
Как открыть запись по прямой ссылке?
Все сотрудники с доступом При открытии карточки выбранная запись добавляется в URL. Скопируйте ссылку из адресной строки и отправьте коллеге. После закрытия карточки или нажатия «Назад» панель возвращается к предыдущему представлению и фильтрам.
Как создать услугу и настроить цену?
Администратор · Менеджер Откройте Услуги«Добавить услугу». Укажите название, категорию, цену, длительность и применимые типы транспорта. Активные услуги доступны при создании записи и в клиентской онлайн-записи.
Как добавить сотрудника и связать его с персоналом?
Администратор Сначала создайте учётную запись в разделе Сотрудники и назначьте роль входа. Затем создайте или отредактируйте профессиональную карточку в разделе Персонал: должность, контакты, категории и типы транспорта.
Как составить график работы?
Администратор · Менеджер Откройте График работы, выберите период и должность, затем добавьте смены сотрудникам. Фильтр по роли помогает отдельно планировать механиков, мойщиков и мастеров приёмки.
Как вести записи на мойку?
Администратор · Менеджер · Мойщик Раздел Мойка показывает записи с услугами категории «Мойка». Создайте запись, выберите мойщика и меняйте статус по мере выполнения. Недоступные или деактивированные мойщики не предлагаются для новых назначений.
Как учитывать хранение транспортных средств?
Администратор · Менеджер В разделе Хранение ТС создайте договор хранения, выберите клиента и технику, укажите период, место и условия. Используйте статусы для контроля активных договоров и планируемой выдачи.
Как механик работает со своими заказами?
Механик После входа механик попадает в отдельный кабинет. В разделе «Мои работы» он видит назначенные услуги, открывает детали, прикладывает фотографии и отмечает выполнение. Завершать можно только собственные назначения; общая запись закрывается после выполнения всех обязательных работ.
Где смотреть аналитику, зарплату и отчёты?
Администратор · Менеджер Главная страница показывает выручку, записи и популярные услуги. Раздел Отчёты содержит детальные отчёты и конструктор, Зарплата — начисления сотрудникам, а отчёты магазина и Avito вынесены в соответствующие подразделы онлайн-продаж.
Как настроить телефонию и звонить клиенту из CRM?
Администратор · Менеджер Подключение настраивается в разделе Телефония. После сохранения параметров номера клиентов становятся доступными для звонка из карточки и панели. История входящих, исходящих и пропущенных вызовов отображается в CRM.
Как публиковать новости и делать рассылки?
Администратор · Менеджер В разделе Новости создайте материал, добавьте текст и изображение, затем опубликуйте — клиент увидит его в своём приложении. Раздел Рассылки используется для целевых уведомлений. Перед отправкой проверьте аудиторию, текст и канал; массовую отправку нельзя отменить после запуска.
Как настроить контент клиентского приложения?
Администратор Откройте Настройки → Контент клиентов. Здесь настраиваются видимые клиенту блоки и сообщения. Используйте короткие понятные формулировки, проверьте результат на мобильном экране и не размещайте внутреннюю служебную информацию.
Как клиент входит в личный кабинет?
С введением SMS-верификации вход выглядит так:
  • Клиент вводит номер телефона в формате +7.
  • Система отправляет 4-значный код через SMS Aero (действует 5 минут).
  • Клиент вводит код — существующие пользователи сразу получают токен.
  • Новые клиенты заполняют имя один раз при первом входе.
Токен сохраняется в браузере — при повторных открытиях приложения SMS не требуется.
Как установить личный кабинет как приложение на телефон?
Личный кабинет — это PWA (Progressive Web App). Установка:
  • Android (Chrome): открыть сайт → нажать «⋮» → «Установить приложение» или «Добавить на главный экран».
  • iOS (Safari): открыть сайт → нажать кнопку «Поделиться» → «На экран Домой».
После установки приложение запускается без браузера, как обычное приложение из магазина.
💡 Push-уведомления работают только после установки приложения и явного разрешения в браузере.
Клиент не получил SMS с кодом. Что делать?
Возможные причины:
  • Не настроены переменные SMS_AERO_EMAIL и SMS_AERO_API_KEY — в этом случае в dev-режиме код отображается в ответе API.
  • Баланс SMS Aero исчерпан — проверьте в личном кабинете smsaero.ru.
  • Прошло менее 60 секунд с предыдущей отправки (rate-limit) — кнопка «Отправить снова» активируется автоматически.
  • Номер телефона занесён в стоп-лист оператора — такое случается редко.
Как настроить push-уведомления для клиентов?
Для работы Web Push необходимо:
  • Установить переменные VAPID_PUBLIC_KEY и VAPID_PRIVATE_KEY. Сгенерировать их можно командой: node -e "const w=require('web-push'); const k=w.generateVAPIDKeys(); console.log(k)"
  • Клиент должен дать разрешение на уведомления в браузере (в личном кабинете есть кнопка «Включить уведомления»).
После этого при каждом изменении статуса записи клиент получает уведомление на телефон.
Как клиент добавляет свою технику?
Клиент В нижнем меню откройте «Гараж» и нажмите добавление техники. Выберите тип транспорта, марку и модель, укажите год и дополнительные данные. После сохранения техника станет доступна при онлайн-записи.
Как клиент самостоятельно записывается на обслуживание?
Клиент
  1. На главном экране нажмите «Записаться».
  2. Выберите технику и необходимые услуги.
  3. Выберите доступную дату и время.
  4. Добавьте комментарий и проверьте данные.
  5. Примените промокод, если он доступен, и подтвердите запись.

Результат: новая запись появится в разделе «Мои записи» со статусом «Ожидает».

Где клиент видит статус и историю ремонта?
Клиент Откройте «Записи». Активные обращения показаны сверху, завершённые и отменённые — в истории. Нажмите на карточку, чтобы увидеть услуги, стоимость, комментарии и последовательность изменений статуса.
Как клиент пишет сервису в чат?
Клиент Откройте раздел «Чат» в нижнем меню, выберите диалог и отправьте сообщение. Непрочитанные ответы отмечаются счётчиком. Менеджер получает сообщение в разделе «Сообщения клиентов» панели управления.
Как клиент меняет профиль и номер телефона?
Клиент В профиле можно изменить имя, email и другие доступные данные. Телефон используется как идентификатор входа, поэтому его изменение может требовать повторного подтверждения. Если новый номер уже принадлежит другой карточке, обратитесь к менеджеру сервиса для безопасного объединения данных.
Как клиент покупает запчасти в магазине?
Клиент Откройте «Магазин», найдите товар по названию или артикулу, откройте карточку и проверьте наличие. Добавьте товар в корзину, укажите количество и перейдите к оформлению. Перед оплатой система повторно проверит цену и остаток.
Как настроить товар для продажи в магазине?
Администратор · Менеджер В разделе Склад откройте позицию, проверьте название, артикул, цену, остаток, категорию и изображения. Товар должен иметь доступный розничный остаток; позиции, находящиеся только на сервисном складе, не показываются покупателям.
Как создать промокод для магазина или сервиса?
Администратор · Менеджер Откройте Магазин → Промокоды и нажмите создание.
  1. Укажите код, период действия и размер скидки.
  2. Выберите область применения: магазин, сервис или оба направления.
  3. Настройте минимальную сумму, лимит использований и применимые товары или услуги.
  4. Сохраните и проверьте предпросмотр расчёта.
Сумма пересчитывается на сервере, а применённая выгода сохраняется в заказе или записи.
Как обрабатывать заказы интернет-магазина?
Администратор · Менеджер Откройте Магазин → Заказы. Проверьте клиента, состав, оплату и способ получения. Переводите заказ по статусам только после фактического действия: подтверждение, сборка, передача в доставку, выдача или отмена.
Как работает онлайн-оплата?
Администратор Платёжная интеграция настраивается в разделе Интеграции. После подключения клиент получает защищённую форму оплаты. Итоговая сумма формируется сервером с учётом промокода, а статус заказа меняется только после подтверждённого ответа платёжной системы.
⚠️ Не отмечайте заказ оплаченным только по скриншоту клиента — ориентируйтесь на статус платежа в CRM.
Как оформить доставку через СДЭК?
Администратор · Менеджер В разделе Доставка СДЭК проверьте контактные данные, адрес или пункт выдачи, параметры отправления и стоимость. Создайте отправление, сохраните трек-номер и передайте заказ в доставку после сборки.
Где клиент видит свои покупки?
Клиент Раздел «Заказы» показывает активные покупки и историю. В карточке заказа доступны состав, сумма, применённая скидка, статус оплаты и доставки.
Как подключить SMS-уведомления через SMS Aero?
В файле .env задайте три переменные:

SMS_AERO_EMAIL=your@email.ru
SMS_AERO_API_KEY=ваш_api_ключ
SMS_AERO_SIGN=ИмяОтправителя

Логин, ключ и имя отправителя берутся из личного кабинета smsaero.ru. После перезапуска контейнера SMS-отправка активируется автоматически — в настройках CRM появится зелёный индикатор «SMS активны».
Когда клиент получает SMS?
SMS отправляется клиенту в следующих случаях:
  • При входе в личный кабинет — 4-значный OTP-код верификации.
  • При подтверждении записи администратором.
  • При изменении статуса заказ-наряда.
  • Напоминание накануне визита (за 24 часа, по расписанию).
Все уведомления отправляются асинхронно и не блокируют основной поток обработки.
Почему SMS-статус в настройках показывает «не настроено»?
Индикатор в разделе «Настройки → Интеграции» проверяет наличие трёх переменных: SMS_AERO_EMAIL, SMS_AERO_API_KEY и SMS_AERO_SIGN. Если хотя бы одна из них отсутствует — отображается статус «не настроено». После добавления всех трёх переменных и перезапуска контейнера статус переключается в «активно» без перезагрузки страницы.
Как привязать запчасть к маркам и моделям техники?
Откройте карточку товара на складе (Склад → Позиция). В разделе «Применимость»:
  • Выберите марку из выпадающего списка (загружается из каталога ТС).
  • После выбора марки выберите модель.
  • Нажмите «Добавить» — связь сохранится.
Можно добавить неограниченное число связей для одной позиции. Также поддерживается ввод применимости свободным текстом для совместимости с данными из 1С.
Как работает каталог марок и моделей транспортных средств?
Каталог ТС доступен в разделе «Склад → Каталог ТС». Он состоит из двух уровней: марки (бренды) и модели.

Данные можно:
  • Добавлять и редактировать вручную прямо в таблице.
  • Синхронизировать из 1С — кнопка «Синхронизация с 1С» загружает справочник Catalog_Ф1_МаркиМотоциклов и Catalog_Ф1_МоделиМотоциклов.
Синхронизация обновляет существующие записи и добавляет новые, не удаляя данные, которых нет в 1С.
Как настроить типы транспортных средств?
Типы ТС (мотоцикл, скутер, квадроцикл и т.д.) настраиваются в разделе «Настройки → Типы транспорта». Здесь можно добавить, переименовать или удалить тип. Типы используются при оформлении техники клиента и в форме онлайн-записи.
Как настроить синхронизацию с 1С?
Для интеграции с 1С:Предприятие через OData задайте переменные окружения:

ONEC_BASE_URL=http://ваш-1с-сервер/base/odata/standard.odata
ONEC_USER=имя_пользователя
ONEC_PASSWORD=пароль

После настройки в панели управления появятся кнопки ручной синхронизации. Автоматическая ночная синхронизация запускается по расписанию cron.
Что синхронизируется из 1С?
Из 1С синхронизируются:
  • Номенклатура — наименование, артикул, цена, единица измерения, остатки.
  • Марки мотоциклов — справочник Catalog_Ф1_МаркиМотоциклов.
  • Модели мотоциклов — справочник Catalog_Ф1_МоделиМотоциклов с привязкой к маркам.
Синхронизация идёт в одну сторону: 1С → CRM. Изменения в CRM в 1С не записываются.
Как принудительно запустить синхронизацию с 1С?
В панели управления:
  • Номенклатура: Склад → кнопка «Синхронизация с 1С» в шапке страницы.
  • Каталог ТС: Склад → Каталог ТС → кнопка «Синхронизация с 1С».
Через API: POST /api/admin/warehouse/vehicle-catalog/sync. Синхронизация выполняется асинхронно и возвращает статистику: сколько марок и моделей создано / обновлено.
Какие должности поддерживает раздел «Персонал»?
В реестре персонала поддерживаются четыре должности:
  • Механик — назначается на записи ремонта; обязательно указание типов транспорта.
  • Мойщик — назначается на записи мойки через специальную доску; обязательно указание типов транспорта.
  • Мастер приёмки — работает с входящими записями; типы транспорта не требуются.
  • Менеджер по запчастям — работает со складом и заказами; типы транспорта не требуются.
Все должности отображаются в едином разделе «Персонал» с фильтрацией по вкладкам.
💡 Должность — это профессиональная роль в сервисе. Роль входа в систему (Администратор / Менеджер / Механик / Мойщик) настраивается отдельно в разделе «Сотрудники».
Почему нельзя сохранить механика без типов транспорта?
Для механиков и мойщиков типы транспорта обязательны — они используются при создании записи для фильтрации доступных специалистов по виду транспорта клиента. Без этих данных система не сможет корректно подобрать мастера.

При попытке сохранить форму без выбора хотя бы одного типа транспорта появляется ошибка «Выберите хотя бы один тип транспорта». Для должностей «Мастер приёмки» и «Менеджер по запчастям» это поле не отображается — оно не обязательно.
Как работает фильтр по должностям в графике работы?
Раздел «График работы» отображает смены всего персонала в единой сетке. Вкладки-фильтры над сеткой позволяют ограничить отображение:
  • Все — все сотрудники.
  • Механик / Мойщик / Мастер приёмки / Менеджер по запчастям — только выбранная должность.
Вкладка отображается только если в базе есть хотя бы один сотрудник с этой должностью. Каждая строка и карточка статистики показывает цветной значок должности сотрудника.
💡 Мойщик, вошедший в систему под своим аккаунтом, видит в графике только собственную строку — расписание других сотрудников ему недоступно.
Как назначить мойщика на запись мойки?
На доске мойки откройте карточку нужной записи и нажмите «Назначить мойщика». В выпадающем списке отображаются только сотрудники с должностью «Мойщик» — механики и другой персонал там не появятся.

Назначение также доступно при создании новой записи на мойку через кнопку «+ Новая запись».
Как подключить Avito?
Интеграция с Avito настраивается в разделе «Маркетплейс → Настройки Avito»:
  • Нажмите «Подключить Avito».
  • Вы будете перенаправлены на страницу авторизации Avito (OAuth 2.0).
  • Разрешите доступ — и вы вернётесь в CRM с активным подключением.
Токены обновляются автоматически, повторная авторизация не требуется.
Почему чаты Avito не обновляются?
Чаты Avito загружаются по запросу — система не использует webhook-подписки (Avito API не предоставляет webhook для чатов). Нажмите кнопку обновления или обновите страницу чатов, чтобы загрузить новые сообщения. Счётчик непрочитанных в навигации обновляется каждые 30 секунд автоматически.
Как покупатели из Avito попадают в базу клиентов?
При синхронизации чатов система извлекает данные покупателя (имя, Avito ID) из диалога и создаёт запись клиента в CRM, если её ещё нет. К клиенту привязываются все его чаты и диалоги. Впоследствии клиента можно найти в общем списке и привязать к записи на обслуживание.
Как создать первый шаблон печатной формы?
Перейдите в раздел «Печатные формы» и нажмите «Новый шаблон». В редакторе:
  • Введите название шаблона (например, «Заказ-наряд стандартный»).
  • Напишите HTML-разметку документа.
  • Вставляйте переменные через двойные фигурные скобки: {{client.fullName}}, {{appointment.number}}.
  • При наборе {{ откроется автокомплит с доступными переменными и образцами.
Нажмите «Сохранить», затем «Предпросмотр» — система подставит тестовые данные и покажет результат в PDF.
Какие переменные доступны в шаблоне?
В шаблоне доступны объекты:
  • {{client.*}} — данные клиента: fullName, phone, email.
  • {{appointment.*}} — запись: number, date, status, services.
  • {{car.*}} — техника: brand, model, vin, mileage, year.
  • {{company.*}} — реквизиты вашего сервиса из настроек.
  • {{parts}} — массив запчастей с ценами и количеством.
Хелперы: {{money value}}, {{formatDate date}}, {{upper string}}. Полный список — в интерфейсе редактора.
Почему сотрудник видит «Доступ запрещён»?
Проверьте роль учётной записи и настройки раздела в Настройки → Разделы и доступы. После изменения прав попросите сотрудника обновить страницу. Если роль сотрудника была изменена, система сверяет её с актуальной записью и не должна полагаться только на старую сессию.
Почему нужный раздел не отображается в меню?
Раздел может быть скрыт глобально, отключён для роли или недоступен текущему типу сотрудника. Администратор должен проверить «Разделы и доступы». На мобильном устройстве также убедитесь, что раскрыто боковое меню.
Почему нет доступного времени для записи?
Проверьте Настройки записи: рабочие часы, длительность слота, выходные дни и лимиты. Затем проверьте уже созданные записи на выбранную дату. Если услуга требует специалиста, убедитесь, что есть активный сотрудник нужной должности и типа транспорта.
Что делать, если появились дубли клиентов?
Сравните телефоны, email, технику, историю и социальные привязки. Не удаляйте карточку с заказами или записями до переноса необходимых данных. Новых клиентов всегда ищите по телефону перед ручным созданием.
Почему не загружаются фотографии и вложения?
Откройте Настройки → Хранилище и проверьте статус подключения. Убедитесь, что формат и размер файла поддерживаются, а текущая роль имеет доступ к записи или заказ-наряду. При частном S3-хранилище файлы должны загружаться и открываться через авторизованный API.
Почему интеграция отмечена как неактивная?
В разделе Интеграции проверьте обязательные поля и статус соединения. После изменения серверных переменных может потребоваться перезапуск API-контейнера. Для 1С и хранилища дополнительно проверьте доступность адреса из сети сервера.
⚠️ Не вставляйте секретные ключи в комментарии, чаты или публичные инструкции.
Почему клиент не видит новую запись или изменение статуса?
Проверьте, что запись привязана к правильному клиенту и его номеру телефона. Попросите клиента обновить раздел «Записи». Если запись видна, но уведомление не пришло, отдельно проверьте SMS/push-подписку и журналы отправки.
Как безопасно обратиться в поддержку?
Подготовьте время ошибки, адрес раздела, роль пользователя, последовательность действий и снимок экрана без персональных данных. Не отправляйте пароли, токены, ключи API, файлы окружения и резервные копии базы через обычную переписку.
Какие порты нужно открыть на сервере?
Для публичного доступа необходимы:
  • 80 / 443 — HTTP/HTTPS для Nginx (панель и личный кабинет).
MongoDB, API и остальные сервисы работают только во внутренней Docker-сети. Не публикуйте наружу порты базы данных и внутренних приложений.
Как сделать резервную копию данных?
Резервное копирование MongoDB:

docker compose exec mongo mongodump --db s4f --out /backup/$(date +%Y%m%d)

Для PostgreSQL:
docker compose exec postgres pg_dump -U postgres s4f_auth > backup_auth.sql

Рекомендуем настроить cron-задачу для автоматического ежедневного бэкапа с ротацией за последние 7 дней.
💡 Храните резервные копии на отдельном сервере или в облачном хранилище (S3, Yandex Object Storage).
Как настроить HTTPS с Let's Encrypt?
Для получения SSL-сертификата через Certbot:

apt install certbot python3-certbot-nginx
certbot --nginx -d panel.s4f-crm.ru -d client.s4f-crm.ru

Certbot автоматически обновит конфигурацию Nginx и настроит автопродление сертификата. Убедитесь, что DNS-записи для обоих доменов указывают на ваш сервер.
Как отслеживать здоровье системы?
API предоставляет внутренний эндпоинт GET /api/healthz, который используется healthcheck-контейнерами.

Логи контейнера:
docker compose logs -f api-server

После развёртывания выполните make post-deploy. Для постоянного внешнего мониторинга можно использовать Uptime Kuma или другую систему, проверяющую публичные HTTPS-адреса.

Запустите систему сегодня

Один docker compose up — и вся CRM работает на вашем сервере.

Свяжитесь с нами

Ответим на вопросы, поможем с запуском и настройкой системы.