S4F-CRM.ru
CRM для мотосервиса
всё в одном окне
Полная CRM для мотомастерских: онлайн-запись, чаты и объявления Avito, SMS-верификация, PWA-приложение для клиентов, промокоды магазина и сервиса, онлайн-оплата, умные печатные формы, телефония, склад и 1С — всё в одной системе.
Система работает на двух уровнях
Отдельные порталы для сотрудников и для клиентов — каждый видит только то, что нужно.
Мастерская и сотрудники
Полный контроль над работой сервиса: записи, заказ-наряды, склад, маркетплейсы и аналитика.
- Управление записями, слотами и календарём
- Назначение механиков, графики смен
- Чаты и объявления Avito прямо в CRM
- Склад запчастей, каталог марок и моделей ТС
- Применимость номенклатуры к технике
- Печатные формы с Handlebars-шаблонами
- Телефония Mango Office, фискальные чеки
- Финансовая аналитика и отчёты
Клиенты сервиса
Клиент заходит с телефона — видит статус, историю и может записаться сам.
- Онлайн-запись на удобное время
- Статус ремонта в реальном времени
- История всех обращений и заказов
- Карточки своих мотоциклов
- Вход по SMS-коду — без паролей и регистраций
- Устанавливается как приложение (PWA)
- Push-уведомления об изменении статуса
От записи до оплаты — в одном кабинете
Клиент сам выбирает время, применяет подходящий промокод и оплачивает сервисную запись онлайн — без звонков и переписки.
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, без паролей.
Умный редактор шаблонов
Создавайте заказ-наряды, акты и договоры с переменными, которые подставляются автоматически при печати.
Почему S4F-CRM
Система создана специально для мотосервисов, а не адаптирована из общего CRM-конструктора.
Заточено под мото
Карточки байков с VIN, маркой, моделью и пробегом. Каталог марок ТС из 1С. Не универсальный «клиент», а конкретная техника с историей.
Маркетплейсы внутри
Avito-чаты, объявления и лиды — прямо в панели. Не нужно переключаться между вкладками и терять заявки.
Клиент без лишних шагов
Вход по SMS-коду за 30 секунд. PWA-приложение на экране телефона. Push-уведомления. Клиент всегда в курсе — без вашего звонка.
Всё у вас на сервере
Self-hosted на Docker. Ваши данные остаются у вас. Нет подписки, нет зависимости от облачного провайдера.
Два интерфейса, один сервер
Общий API-сервер, разные JWT-токены и полное разделение доступа.
Панель управления
Полный функционал для администраторов и механиков:
- Записи, Avito-чаты, печатные формы
- Клиенты, техника, история обслуживания
- Склад, каталог ТС, применимость запчастей
- Телефония, аналитика, фискальные чеки
- Хранение ТС, мойка, интернет-магазин
Личный кабинет
Мобильное PWA-приложение для клиентов:
- Вход по SMS-коду — без паролей
- Статус ремонта в реальном времени
- Самостоятельная онлайн-запись
- Промокоды и онлайн-оплата записи
- История заказов и карточки мотоциклов
- Push-уведомления об изменении статуса
Рабочие экраны — без лишних слов
Панель помогает команде вести сервис, а клиентский кабинет делает запись и контроль ремонта удобными с телефона.
Все записи сервиса перед глазами
Фильтры, статусы, исполнители и быстрые действия в одном рабочем экране.
Управляйте сервисом даже с телефона
Адаптивный интерфейс панели сохраняет ключевые сценарии в дороге и на рабочем месте.
Клиент видит всё важное сразу
Активные записи, гараж и быстрый переход к записи на обслуживание — в одном кабинете.
Запчасти и покупки — тоже в кабинете
Клиент может открыть карточку детали, увидеть цену и наличие, а затем оформить заказ.
Полная база знаний S4F-CRM
Пошаговые инструкции по первичной настройке, ежедневной работе сотрудников и сценариям клиентского приложения.
Попробуйте изменить запрос или выбрать тему слева.
make deploy
Команда последовательно соберёт сервисы, запустит контейнеры, дождётся готовности TLS-прокси и выполнит post-deploy проверки.
- клиенты, техника, записи и заказ-наряды;
- учётные записи и роли сотрудников;
- склад, интеграции, сообщения, шаблоны и настройки.
MONGODB_URI или безопасно собирается production Compose из параметров MongoDB. Фотографии и документы хранятся отдельно в настроенном файловом или S3-совместимом хранилище.
ADMIN_USERNAME и обязательный production-пароль ADMIN_PASSWORD. Если активных администраторов ещё нет, API создаст первую учётную запись автоматически.
После входа откройте раздел Сотрудники, создайте персональные учётные записи для команды и больше не используйте общий администраторский логин в ежедневной работе.
git pull origin main
make deploy
Стандартный deploy последовательно пересобирает сервисы, запускает стек и проверяет публичные security headers. Данные в постоянных Docker-томах не удаляются.
docker compose down -v: флаг -v удаляет постоянные тома.- Заполнить Реквизиты и загрузить логотип.
- Создать Типы транспорта и проверить каталог марок и моделей.
- Добавить Услуги, цены и длительность.
- Создать учётные записи и карточки Персонала.
- Настроить Рабочее время и слоты онлайн-записи.
- Проверить Разделы и доступы для каждой роли.
- Подключить SMS, push, хранилище, 1С, Avito и оплату, если они используются.
- Создать тестового клиента и пройти полный сценарий записи до завершения.
- Аналитика показывает ключевые показатели, популярные услуги и состояние системы.
- Записи объединяют список, Kanban и календарь.
- Клиенты содержат карточки клиентов, технику, историю, покупки и переписку.
- Управление сервисом включает услуги, персонал, склад, графики, мойку и хранение ТС.
- Онлайн-продажи объединяют Avito, магазин, заказы, промокоды и доставку.
- Настройки отвечают за интерфейс, реквизиты, интеграции и доступы.
- Выберите светлую, тёмную или системную тему.
- Настройте цветное или монохромное отображение статусов.
- Сохраните изменения — они применятся к текущему аккаунту.
Результат: интерфейс сохраняет выбранный вид при следующем входе.
- Скрывайте неиспользуемые модули, чтобы упростить навигацию.
- Оставляйте финансовые и системные разделы только администраторам и менеджерам.
- Механикам используйте отдельный кабинет работ, а мойщикам — раздел «Мойка».
- Заполните название, контакты и юридические данные организации.
- Загрузите логотип в поддерживаемом формате изображения.
- Проверьте предпросмотр и нажмите «Сохранить».
- Администратор — полный доступ, включая системные настройки и сотрудников.
- Менеджер — клиенты, записи, сервис, продажи и отчёты в рамках выданных доступов.
- Механик — назначенные работы, детали заказа и свой рабочий кабинет.
- Мойщик — доска мойки и график работы.
- Мастер-приёмщик и менеджер по запчастям — профессиональные должности, используемые в процессах сервиса.
- Откройте раздел Клиенты.
- Нажмите кнопку «Новый клиент».
- Укажите ФИО и телефон. При наличии добавьте email и примечание.
- Проверьте номер телефона: по нему клиент входит в личный кабинет.
- Сохраните карточку.
Результат: клиент появится в общей базе, а в его карточке станут доступны вкладки информации, техники, истории, покупок и чата.
- Информация — контакты, источник и основные данные.
- Техника — автомобили и мотоциклы клиента.
- История — записи и обслуживание.
- Покупки — заказы магазина.
- Чат — переписка с клиентом.
- Откройте Записи и нажмите «Новая запись».
- Выберите существующего клиента или создайте нового.
- Выберите технику клиента и услуги.
- Укажите дату, временной слот, исполнителя и комментарий.
- Проверьте итог и сохраните.
Результат: запись появится в списке, Kanban и календаре, а клиент увидит её в личном кабинете.
- Список удобен для поиска, фильтрации и последовательной обработки.
- Kanban группирует карточки по статусам и показывает текущую загрузку.
- Календарь помогает планировать занятость по датам и времени.
- Клиент вводит номер телефона в формате +7.
- Система отправляет 4-значный код через SMS Aero (действует 5 минут).
- Клиент вводит код — существующие пользователи сразу получают токен.
- Новые клиенты заполняют имя один раз при первом входе.
- Android (Chrome): открыть сайт → нажать «⋮» → «Установить приложение» или «Добавить на главный экран».
- iOS (Safari): открыть сайт → нажать кнопку «Поделиться» → «На экран Домой».
- Не настроены переменные
SMS_AERO_EMAILиSMS_AERO_API_KEY— в этом случае в dev-режиме код отображается в ответе API. - Баланс SMS Aero исчерпан — проверьте в личном кабинете smsaero.ru.
- Прошло менее 60 секунд с предыдущей отправки (rate-limit) — кнопка «Отправить снова» активируется автоматически.
- Номер телефона занесён в стоп-лист оператора — такое случается редко.
- Установить переменные
VAPID_PUBLIC_KEYиVAPID_PRIVATE_KEY. Сгенерировать их можно командой:node -e "const w=require('web-push'); const k=w.generateVAPIDKeys(); console.log(k)" - Клиент должен дать разрешение на уведомления в браузере (в личном кабинете есть кнопка «Включить уведомления»).
- На главном экране нажмите «Записаться».
- Выберите технику и необходимые услуги.
- Выберите доступную дату и время.
- Добавьте комментарий и проверьте данные.
- Примените промокод, если он доступен, и подтвердите запись.
Результат: новая запись появится в разделе «Мои записи» со статусом «Ожидает».
- Укажите код, период действия и размер скидки.
- Выберите область применения: магазин, сервис или оба направления.
- Настройте минимальную сумму, лимит использований и применимые товары или услуги.
- Сохраните и проверьте предпросмотр расчёта.
.env задайте три переменные:
SMS_AERO_EMAIL=your@email.ruSMS_AERO_API_KEY=ваш_api_ключSMS_AERO_SIGN=ИмяОтправителя
Логин, ключ и имя отправителя берутся из личного кабинета smsaero.ru. После перезапуска контейнера SMS-отправка активируется автоматически — в настройках CRM появится зелёный индикатор «SMS активны».
- При входе в личный кабинет — 4-значный OTP-код верификации.
- При подтверждении записи администратором.
- При изменении статуса заказ-наряда.
- Напоминание накануне визита (за 24 часа, по расписанию).
SMS_AERO_EMAIL, SMS_AERO_API_KEY и SMS_AERO_SIGN. Если хотя бы одна из них отсутствует — отображается статус «не настроено». После добавления всех трёх переменных и перезапуска контейнера статус переключается в «активно» без перезагрузки страницы.
- Выберите марку из выпадающего списка (загружается из каталога ТС).
- После выбора марки выберите модель.
- Нажмите «Добавить» — связь сохранится.
Данные можно:
- Добавлять и редактировать вручную прямо в таблице.
- Синхронизировать из 1С — кнопка «Синхронизация с 1С» загружает справочник
Catalog_Ф1_МаркиМотоцикловиCatalog_Ф1_МоделиМотоциклов.
ONEC_BASE_URL=http://ваш-1с-сервер/base/odata/standard.odataONEC_USER=имя_пользователяONEC_PASSWORD=пароль
После настройки в панели управления появятся кнопки ручной синхронизации. Автоматическая ночная синхронизация запускается по расписанию cron.
- Номенклатура — наименование, артикул, цена, единица измерения, остатки.
- Марки мотоциклов — справочник
Catalog_Ф1_МаркиМотоциклов. - Модели мотоциклов — справочник
Catalog_Ф1_МоделиМотоцикловс привязкой к маркам.
- Номенклатура: Склад → кнопка «Синхронизация с 1С» в шапке страницы.
- Каталог ТС: Склад → Каталог ТС → кнопка «Синхронизация с 1С».
POST /api/admin/warehouse/vehicle-catalog/sync. Синхронизация выполняется асинхронно и возвращает статистику: сколько марок и моделей создано / обновлено.
- Механик — назначается на записи ремонта; обязательно указание типов транспорта.
- Мойщик — назначается на записи мойки через специальную доску; обязательно указание типов транспорта.
- Мастер приёмки — работает с входящими записями; типы транспорта не требуются.
- Менеджер по запчастям — работает со складом и заказами; типы транспорта не требуются.
При попытке сохранить форму без выбора хотя бы одного типа транспорта появляется ошибка «Выберите хотя бы один тип транспорта». Для должностей «Мастер приёмки» и «Менеджер по запчастям» это поле не отображается — оно не обязательно.
- Все — все сотрудники.
- Механик / Мойщик / Мастер приёмки / Менеджер по запчастям — только выбранная должность.
Назначение также доступно при создании новой записи на мойку через кнопку «+ Новая запись».
- Нажмите «Подключить Avito».
- Вы будете перенаправлены на страницу авторизации Avito (OAuth 2.0).
- Разрешите доступ — и вы вернётесь в CRM с активным подключением.
- Введите название шаблона (например, «Заказ-наряд стандартный»).
- Напишите HTML-разметку документа.
- Вставляйте переменные через двойные фигурные скобки:
{{client.fullName}},{{appointment.number}}. - При наборе
{{откроется автокомплит с доступными переменными и образцами.
{{client.*}}— данные клиента: fullName, phone, email.{{appointment.*}}— запись: number, date, status, services.{{car.*}}— техника: brand, model, vin, mileage, year.{{company.*}}— реквизиты вашего сервиса из настроек.{{parts}}— массив запчастей с ценами и количеством.
{{money value}}, {{formatDate date}}, {{upper string}}. Полный список — в интерфейсе редактора.
- 80 / 443 — HTTP/HTTPS для Nginx (панель и личный кабинет).
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 дней.
apt install certbot python3-certbot-nginxcertbot --nginx -d panel.s4f-crm.ru -d client.s4f-crm.ru
Certbot автоматически обновит конфигурацию Nginx и настроит автопродление сертификата. Убедитесь, что DNS-записи для обоих доменов указывают на ваш сервер.
GET /api/healthz, который используется healthcheck-контейнерами.
Логи контейнера:
docker compose logs -f api-server
После развёртывания выполните
make post-deploy. Для постоянного внешнего мониторинга можно использовать Uptime Kuma или другую систему, проверяющую публичные HTTPS-адреса.
Запустите систему сегодня
Один docker compose up — и вся CRM работает на вашем сервере.
Свяжитесь с нами
Ответим на вопросы, поможем с запуском и настройкой системы.