Документация СкороСервис CRM: установка, настройка и работа с разделами
Документация

СкороСервис CRM: полное руководство

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

1. Требования к хостингу

СкороСервис CRM устанавливается на PHP-хостинг или VPS. До установки проверьте, что тариф поддерживает HTTPS, MySQL/MariaDB, cron и исходящие HTTPS-запросы к внешним сервисам.

ПараметрМинимумРекомендовано
PHP8.1+8.2 или 8.3
База данныхMySQL 5.7 / MariaDB 10.3MySQL 8 / MariaDB 10.6+
Расширения PHPPDO MySQL, curl, mbstring, json, openssl, fileinfozip, gd/imagick, intl дополнительно
Память PHP256 МБ512 МБ для резервных копий, документов и обновлений
HTTPSобязательносертификат с автопродлением
Cronжелательнокаждые 1-5 минут

Файлы и права

  • Папки `storage`, `public/uploads`, `cache`, `backups` должны быть доступны PHP на запись.
  • `config/database.php`, `config/secret.php`, `config/license.dat`, логи и бэкапы не должны открываться напрямую из браузера.
  • Если хостинг блокирует методы DELETE/PUT, CRM использует POST-fallback для удаления и сохранения критичных действий.

Внешние соединения

Для бизнес-интеграций хостинг должен разрешать исходящие HTTPS-запросы к ЛК НПД/Мой Налог, DaData, Яндекс.Картам, MAX, VK, Prodamus, ККТ и серверу лицензий.

2. Подготовка к установке

  1. Создайте поддомен или отдельную папку для CRM.
  2. Создайте базу данных и отдельного пользователя MySQL/MariaDB.
  3. Скачайте актуальный архив CRM по ссылке из письма.
  4. Загрузите архив на хостинг и распакуйте его в корень будущей CRM.
  5. Проверьте наличие `.htaccess`, `index.php`, `install.php`, папок `app`, `core`, `config`, `public`, `views`.
  6. Подготовьте лицензионный ключ и домен, на который он выдан.
crm/
├─ app/                Контроллеры, модели и сервисы CRM
├─ config/             Настройки, license.dat, database.php, secret.php
├─ core/               Ядро, роутер, авторизация, проверки
├─ public/             Публичные файлы, загрузки, APK, ассеты
├─ views/              Страницы CRM и HTML-шаблоны интерфейса
├─ storage/            Логи, временные файлы, сформированные документы
├─ vendor/             Библиотеки, если входят в поставку
├─ .htaccess           Правила маршрутизации и защиты
├─ index.php           Точка входа CRM
├─ install.php         Мастер установки
└─ install_schema.sql  Схема БД для установщика

3. Установка CRM

Откройте домен CRM в браузере. Если установка еще не завершена, откроется мастер установки. Шаги показываются по одному, используйте “Далее” и “Назад”.

Шаг 1. Настройка базы

  1. Укажите host, имя базы, пользователя и пароль.
  2. Перейдите дальше: установщик проверит соединение и создаст таблицы.
  3. При ошибке проверьте сервер базы, права пользователя и пароль.
Установщик: шаг 1, подключение к базе.
Установщик: шаг 1, подключение к базе.

Шаг 2. Основное

  1. Заполните название CRM и основные параметры.
  2. Выберите возможности: заявки, клиенты, прайс, запчасти, документы, финансы, партнеры, звонки, сообщения, e-mail, SMS, чеки, учет оплаты, выездные заявки, платежный модуль, электронная подпись, ККТ/Мой Налог, Android-приложение, оповещения, кастомные страницы.
  3. Отключенная возможность скрывается из меню, форм, карточек, настроек и связанных сценариев.
Установщик: шаг 2, выбор возможностей.
Установщик: шаг 2, выбор возможностей.

Шаг 3. Роли

  1. Создайте свои роли пользователей.
  2. Введите название роли: например “Мастер”, “Менеджер”, “Агент”.
  3. Технический код роли формируется автоматически транслитом.
  4. Права доступа к разделам настраиваются после установки.
Установщик: шаг 3, создание ролей.
Установщик: шаг 3, создание ролей.

Шаг 4. Создание администратора

  1. Введите имя администратора.
  2. Укажите телефон/e-mail при необходимости.
  3. Задайте логин и надежный пароль.
  4. Сохраните пароль в менеджере паролей.
Установщик: шаг 4, создание администратора.
Установщик: шаг 4, создание администратора.

Шаг 5. Ввод ключа

  1. Введите лицензионный ключ из письма.
  2. CRM проверит ключ на сервере лицензий и привяжет его к текущему домену.
  3. После успешной проверки создается зашифрованный файл лицензии.
Установщик: шаг 5, ввод лицензионного ключа.
Установщик: шаг 5, ввод лицензионного ключа.

4. Вход в CRM

После установки откройте домен CRM и войдите под созданным администратором. Для входа используется логин и пароль.

Особенности входа

  • Неавторизованный пользователь не должен видеть защищенные разделы и данные.
  • Сессия ограничена по времени: при простое CRM может попросить войти снова.
  • Если браузер блокирует cookie или хранилище, возможны повторные входы.
  • Если видите “Нет доступа”, проверьте роль пользователя и разрешения раздела.
Страница входа в CRM.
Страница входа в CRM.

5. Интерфейс CRM

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

Левое меню

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

Верхняя панель

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

Общие правила форм

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

6. Дашборд

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

Карточки обзора

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

Активные заявки

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

Дашборд с уведомлениями и активными заявками.
Дашборд с уведомлениями и активными заявками.

7. Заявки

Заявка - центральная сущность CRM. В ней хранятся клиент, устройство, неисправность, сроки, запчасти, услуги, документы, оплата, чек, история статусов и комментарии.

Список заявок

  • Фильтры позволяют смотреть заявки по статусу, дате, мастеру, источнику, типу и поисковой строке.
  • Номер заявки кликабелен и открывает карточку.
  • Цветовые статусы помогают быстро отличать новую, рабочую, готовую, закрытую и отмененную заявку.

Создание заявки

  1. Выберите клиента или создайте нового.
  2. Укажите тип заявки: в мастерской, выездная, по городу или другой доступный тип.
  3. Заполните устройство, внешний вид, комплектацию, неисправность и комментарии.
  4. Укажите сроки: дата выполнения, гарантия, дата выезда или получения.
  5. Добавьте услуги из прайса или произвольную услугу.
  6. Добавьте запчасти, если модуль включен.
  7. Сохраните заявку и проверьте карточку.

Карточка заявки

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

Статусы

  • Новая - заявка создана и ожидает обработки.
  • В работе - заявка принята мастером или менеджером.
  • Ожидает запчасти - ремонт зависит от поставки деталей.
  • Готова к выдаче - работа завершена.
  • Выдана - устройство выдано клиенту.
  • Закрыта - заявка завершена финансово и организационно.
  • Отменена/отклонена - заявка не выполняется.

Оплата заявки

Если включен учет оплаты, в карточке доступен блок оплаты. Метод оплаты может быть наличными, переводом, картой, SoftPOS, Prodamus или другим настроенным способом. Для менеджеров и агентов доступность способов может быть ограничена правами.

Чек НПД

Чек формируется при закрытии заявки администратором или мастером, если настроен соответствующий модуль. При промежуточной оплате агентом чек не должен формироваться автоматически, если заявка еще не закрыта.

Документы

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

Удаление заявки

Удаление обычно доступно только для новых или отмененных заявок и только ролям с соответствующим правом. Для хостингов, блокирующих метод DELETE, CRM использует POST-fallback.

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

8. Клиенты

Раздел хранит физлиц, ИП и организации. Клиент может быть связан с заявками, звонками, SMS, e-mail, мессенджерами и документами.

Карточка клиента

  • ФИО или название компании.
  • Телефоны, e-mail, адрес.
  • Тип клиента: физлицо, ИП или юридическое лицо.
  • ИНН, реквизиты, представитель и комментарии.
  • Кнопки VK, MAX, другие мессенджеры - если переписка привязана к клиенту или ее можно создать.

Поиск и дубли

Перед созданием клиента проверяйте поиск по телефону. CRM нормализует российские номера, но лучше хранить основной телефон в формате +7XXXXXXXXXX.

Документы клиента

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

Список клиентов.
Список клиентов.
Карточка клиента.
Карточка клиента.

9. Прайс-лист

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

Поля услуги

  • Название услуги.
  • Цена для клиента.
  • Категория или группа.
  • Активность услуги.
  • Шаблон документа и заголовок, если услуга формирует отдельный документ.

Как использовать

При создании или редактировании заявки нажмите “Из прайса”, выберите услугу, проверьте цену и количество. Если услуга нестандартная, используйте произвольную строку.

10. Запчасти

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

Склад запчастей

  • Название и модель устройства.
  • Артикул и поставщик.
  • Закупочная цена и цена для клиента.
  • Количество и наличие.
  • Цвет, качество, совместимость и комментарии.

Запчасть в заявке

В заявке запчасть может быть неоплаченной, оплаченной, заказанной, ожидаемой или установленной. Если запчасть уже оплачена клиентом, на публичной странице статуса она отображается как “Оплачено”.

Поиск

Поиск поддерживает модель, тип детали и дополнительные слова. Для точного результата вводите модель и ключевое слово: например “Infinix Hot 50 дисплей”.

Создание новой запчасти.
Создание новой запчасти.
Список запчастей.
Список запчастей.
Добавление запчасти в заявку.
Добавление запчасти в заявку.

11. Документы и шаблоны

CRM поддерживает HTML- и DOCX-шаблоны. Документы можно печатать из заявок, клиентов, услуг и запчастей.

Типы шаблонов

  • Заявка-договор.
  • Акт выполненных работ.
  • Договор для физлиц, ИП и юрлиц.
  • Счет, приложение, счет к приложению.
  • Согласия, гарантийные талоны, внутренние формы.

Плейсхолдеры

Шаблоны используют значения вида `{{client_name}}`, `{{client_company}}`, `{{order_number}}`, `{{services_list}}`, `{{parts_list}}`, `{{public_status_qr}}`. Точный набор зависит от шаблона и места печати.

Разделение по типам клиентов

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

QR статуса

QR формируется только если в настройках заполнена ссылка публичной страницы статуса. Если ссылка пустая, QR не вставляется, а трек-код не становится кликабельным.

Создание шаблона

  1. Откройте Документы или вкладку шаблонов в настройках.
  2. Нажмите Добавить шаблон.
  3. Введите понятное название: например “Акт выполненных работ”, “Договор ИП/ЮЛ”, “Счет к приложению”.
  4. Выберите раздел шаблона: заявки, клиенты, услуги, запчасти, партнеры или внутренние формы.
  5. Укажите, где шаблон будет доступен: в карточке заявки, в карточке клиента, в печатном меню услуги, в счете или приложении.
  6. Выберите тип клиентов, если шаблон зависит от клиента: физлицо, ИП, юрлицо или несколько типов сразу.

Вариант 1. Загрузка DOCX

  1. Подготовьте документ в Word или LibreOffice.
  2. Вставьте плейсхолдеры в нужные места: {{client_name}}, {{order_number}}, {{services_list}}, {{parts_total}} и т.д.
  3. Сохраните файл в формате .docx.
  4. В CRM выберите тип шаблона DOCX и загрузите файл.
  5. Сохраните шаблон и проверьте генерацию на тестовой заявке.

Вариант 2. HTML-код

  1. Выберите тип шаблона HTML.
  2. Вставьте HTML-разметку документа в поле шаблона.
  3. Добавьте CSS прямо в шаблон или в блок стилей, если документ требует точного вида.
  4. Используйте разрывы страниц через CSS, например page-break-after: always;.
  5. Проверьте печать в браузере и PDF, особенно счета, приложения и подписи.

Права и видимость шаблона

  • Раздел шаблона определяет, где шаблон показывается.
  • Тип клиента скрывает неподходящие формы, например договор ИП/ЮЛ для физлица.
  • Роли ограничивают, кто может печатать или редактировать шаблон.
  • Активность позволяет временно скрыть шаблон без удаления.

Проверка шаблона

  1. Откройте реальную или тестовую заявку.
  2. Нажмите Печать и выберите шаблон.
  3. Проверьте заполнение ФИО, реквизитов, услуг, запчастей, сумм, дат, QR и подписей.
  4. Если плейсхолдер не заменился, проверьте его написание и доступность данных в заявке.
  5. Проверьте разрывы страниц: после договора, приложений, счета и других крупных блоков.
Добавление шаблона документа.
Добавление шаблона документа.
Печать документа из карточки заявки: выбор шаблона.
Печать документа из карточки заявки: выбор шаблона.
Предпросмотр и печать документа.
Предпросмотр и печать документа.

12. Финансы

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

Доходы

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

Расходы

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

Отчет по году

Годовой отчет помогает видеть сезонность, налоговую нагрузку и маржу по месяцам.

Финансы: обзор.
Финансы: обзор.
Финансы: доходы.
Финансы: доходы.
Финансы: расходы.
Финансы: расходы.
Финансы: отчет по году.
Финансы: отчет по году.
Финансы: ручное добавление расхода.
Финансы: ручное добавление расхода.

13. Партнеры

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

Агенты и точки приема

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

  1. Откройте раздел Партнеры и нажмите Добавить.
  2. Выберите тип партнера “Агент” или задайте партнеру агентский сценарий в карточке.
  3. Заполните название, контактное лицо, телефон, e-mail и комментарий.
  4. Добавьте точки партнера: название точки, адрес, телефон, ответственного менеджера.
  5. Создайте пользователя с ролью агента и привяжите его к партнеру и, если нужно, к конкретной точке.
  6. Проверьте права роли: агент должен видеть только свои заявки, свои оплаты и доступные действия.

Точки партнера

  • Название точки - как точка будет отображаться в заявке и отчетах.
  • Адрес - нужен для аналитики и понимания, откуда пришла техника.
  • Ответственный - сотрудник или менеджер, который работает с точкой.
  • Активность - отключенная точка не используется в новых заявках, но остается в истории.

Настройка комиссии агента

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

  1. Откройте карточку партнера.
  2. Перейдите к блоку комиссий.
  3. Выберите тип расчета: процент от суммы, фиксированная сумма, смешанная схема или индивидуальное правило.
  4. Укажите базу расчета: услуги, запчасти, общая сумма или маржа.
  5. Сохраните правило и проверьте пример расчета.

Расчет комиссий за период

  1. Откройте раздел комиссий или финансовый отчет по партнерам.
  2. Выберите партнера и период.
  3. CRM покажет заявки, которые подходят под правило расчета.
  4. Проверьте список: учитываются выданные и закрытые заявки, а готовые к выдаче без закрытия не должны попадать в начисление.
  5. Подтвердите расчет или выгрузите отчет.

Субподрядчики

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

  1. Создайте партнера с типом “Субподрядчик”.
  2. Заполните контакты, реквизиты и внутреннюю заметку.
  3. В карточке заявки выберите субподрядчика.
  4. Укажите стоимость субподрядчика и статус: передано, в работе, выполнено.
  5. После оплаты отметьте, что расчет с субподрядчиком произведен.

Что попадает в финансы

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

Партнеры: добавление агента.
Партнеры: добавление агента.
Партнеры: создание точки агента.
Партнеры: создание точки агента.
Партнеры: создание менеджера точки.
Партнеры: создание менеджера точки.
Создание заявки с источником “Агент”.
Создание заявки с источником “Агент”.
Карточка агента: расчет комиссии.
Карточка агента: расчет комиссии.
Партнеры: создание субподрядчика.
Партнеры: создание субподрядчика.
Карточка заявки: сторонний исполнитель.
Карточка заявки: сторонний исполнитель.
Карточка стороннего сервиса.
Карточка стороннего сервиса.

14. Выездные заявки

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

Типы выездов

  • По городу - адрес находится в основном населенном пункте или в зоне базовой стоимости.
  • За город - адрес вне основной зоны, стоимость может считаться по отдельному правилу.
  • Индивидуальный выезд - стоимость задается вручную в заявке, если стандартное правило не подходит.

Создание выездной заявки

  1. Нажмите Новая заявка.
  2. Выберите или создайте клиента.
  3. В поле типа заявки выберите выездной вариант.
  4. Укажите адрес клиента. Если подключены подсказки адресов или карты, используйте предложенный адрес, чтобы избежать ошибок.
  5. Укажите дату и время выезда.
  6. Заполните устройство, неисправность, внешний вид, комплектацию и услуги.
  7. Проверьте рассчитанную стоимость выезда. При необходимости измените стоимость вручную, если роль имеет такое право.
  8. Сохраните заявку и проверьте, что событие появилось в календаре.

Работа с выездом в карточке заявки

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

Где настраивается стоимость

Стоимость выездов настраивается в Настройки → Расчеты. Там задаются базовый адрес, стоимость выезда в том же населенном пункте, стоимость выезда за пределами населенного пункта, срочность и правила отображения примеров. Подробные шаги настройки описаны в разделе “Настройки”.

Создание выездной заявки: адрес и время выезда.
Создание выездной заявки: адрес и время выезда.

15. Календарь

Календарь показывает даты выполнения, выезды, гарантии и нерабочие дни.

  • Синие события - даты выполнения.
  • Оранжевые - выезды.
  • Зеленые - гарантийные даты.
  • Красные - нерабочие дни.

Постоянные выходные

Постоянные выходные нужны, чтобы CRM заранее подсвечивала дни, когда сервис не работает. Например, если сервис не работает по воскресеньям, этот день будет отмечаться в календаре и учитываться в выборе дат.

  1. Откройте раздел Календарь.
  2. Нажмите Нерабочие дни или Настройки.
  3. В блоке постоянных выходных отметьте дни недели: понедельник, вторник и т.д.
  4. Сохраните настройки.
  5. Вернитесь в календарь и проверьте, что нужные дни подсвечены как выходные.

Индивидуальные нерабочие дни

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

  1. Откройте Календарь → Нерабочие дни.
  2. Нажмите Добавить.
  3. Выберите дату или диапазон дат.
  4. Укажите тип: праздник, отпуск, технический день, другое.
  5. Добавьте комментарий, чтобы сотрудники понимали причину.
  6. Сохраните. День появится красным в календаре.

Как нерабочие дни влияют на работу

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

Работа с событиями календаря

  1. Откройте месяц или неделю.
  2. Найдите событие заявки по номеру или клиенту.
  3. Кликните по событию, чтобы перейти в карточку заявки.
  4. Если дата неверная, измените ее в карточке заявки, а не только визуально в календаре.
Календарь.
Календарь.
Календарь: настройка постоянных выходных.
Календарь: настройка постоянных выходных.
Календарь: создание праздничного дня.
Календарь: создание праздничного дня.
Календарь: создание периода отпуска.
Календарь: создание периода отпуска.

16. Сообщения

Раздел “Сообщения” объединяет включенные каналы: VK, MAX-бот, MAX личный и другие доступные интеграции. Telegram в продажной CRM отключен из-за ограничений его работы на территории РФ.

Добавление аккаунта

  1. Откройте “Сообщения”.
  2. Нажмите настройки аккаунтов.
  3. Выберите платформу: VK, MAX QR или MAX бот.
  4. Введите токен или параметры подключения.
  5. Для webhook используйте URL, который показывает CRM; для polling настройте cron.
  6. Сохраните аккаунт и отправьте тестовое сообщение.

Работа с диалогом

  1. Выберите канал фильтром.
  2. Откройте диалог.
  3. Если клиент не привязан, нажмите “Привязать”.
  4. Отправьте текст или вложение.
  5. В MAX-боте в CRM должна попадать только переписка после сценария “Написать мастеру”.
Сообщения: переписка и фильтры каналов.
Сообщения: переписка и фильтры каналов.
Сообщения: добавление аккаунта VK.
Сообщения: добавление аккаунта VK.
Сообщения: добавление личного MAX через QR.
Сообщения: добавление личного MAX через QR.

17. E-mail

E-mail используется для переписки, служебных писем после покупки CRM, уведомлений и обработки входящих обращений.

Подключение ящика

  1. Откройте раздел E-mail или настройки e-mail.
  2. Укажите SMTP: сервер, порт, логин, пароль, TLS/SSL.
  3. Если принимаете входящую почту, заполните IMAP/POP3.
  4. Сохраните и отправьте тестовое письмо.
  5. Проверьте входящее письмо в разделе.

Шаблоны

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

E-mail: входящие письма и просмотр сообщения.
E-mail: входящие письма и просмотр сообщения.
E-mail: добавление аккаунта SMTP/IMAP.
E-mail: добавление аккаунта SMTP/IMAP.

18. SMS

SMS используются для быстрых уведомлений, истории общения и шаблонов. Часть сценариев может работать через Android-приложение.

  1. Настройте шаблоны SMS.
  2. Привяжите клиента к заявке.
  3. Отправьте SMS из карточки клиента или заявки.
  4. Проверьте историю отправки.

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

SMS: добавление сообщения.
SMS: добавление сообщения.
SMS: список сообщений.
SMS: список сообщений.

19. Заявки с сайта

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

Точки входа

  • Основная форма на сайте.
  • Форма “CRM под ключ”.
  • Форма покупки лицензии CRM.
  • Форма поддержки в документации.
  • Отдельные рекламные страницы или квизы.

Технический поток

  1. Пользователь отправляет форму.
  2. Сайт сохраняет обращение в таблицу заявок с сайта или отправляет запрос в API CRM.
  3. В CRM появляется запись “С сайта” с именем, телефоном, e-mail, темой, текстом, источником и URL страницы.
  4. Менеджер проверяет телефон и данные.
  5. Если клиент уже есть, CRM связывает обращение с клиентом; если нет, предлагает создать клиента.
  6. После принятия создается обычная заявка, которая попадает в общий список.
  7. Если обращение нецелевое, его можно отклонить с причиной.

Что важно в формах

  • Минимум: имя, телефон, тема/устройство, описание.
  • Для покупки CRM: e-mail, домен, период лицензии.
  • Для CRM под ключ: описание задачи, сайт/домен, нужные интеграции.
  • Под формой должна быть ссылка на политику конфиденциальности.

Обработка заявки “В работу”

  1. Откройте раздел С сайта.
  2. Выберите новую заявку.
  3. Проверьте телефон, имя, e-mail, устройство, описание и источник.
  4. Нажмите В работу, если нужно сначала уточнить детали.
  5. CRM сменит статус обращения на обработку, чтобы другие сотрудники видели, что заявкой уже занимаются.
  6. После звонка или переписки можно создать обычную заявку или отклонить обращение.

Создание обычной заявки из обращения

  1. Откройте обращение.
  2. Нажмите Создать заявку или Принять.
  3. CRM проверит телефон и предложит существующего клиента, если номер уже есть в базе.
  4. Если клиента нет, создайте его прямо из обращения.
  5. Проверьте устройство и неисправность: они переносятся из формы сайта, но их лучше привести к нормальному виду.
  6. Выберите тип заявки, источник, дату выполнения, услуги и ответственного.
  7. Сохраните. Обращение получит статус converted и ссылку на созданную заявку.

Отклонение заявки с сайта

  1. Откройте обращение.
  2. Нажмите Отклонить.
  3. Укажите причину: дубль, спам, нецелевое обращение, клиент отказался, не удалось связаться.
  4. Сохраните. Статус станет rejected.
  5. Если клиент позже обратится повторно, старое обращение останется в истории.

Технические статусы

СтатусЧто означает
newНовое обращение, еще не обработано.
in_progressСотрудник взял обращение в работу.
convertedИз обращения создана обычная заявка CRM.
rejectedОбращение отклонено с причиной или без нее.
Заявки с сайта: список обращений.
Заявки с сайта: список обращений.
Заявки с сайта: карточка обращения и действия.
Заявки с сайта: карточка обращения и действия.

20. Настройки CRM

Настройки доступны администраторам и ролям с соответствующими правами.

Основное

Вкладка “Основное” отвечает за то, как CRM называется, какие данные подставляются в документы и какие публичные ссылки использует система.

  1. Заполните название CRM и название компании/мастера.
  2. Загрузите логотип, если он должен отображаться в интерфейсе и документах.
  3. Укажите телефон, e-mail, сайт и основной адрес.
  4. Заполните реквизиты: ИНН, банковские данные, ФИО руководителя или самозанятого.
  5. Укажите публичную страницу статуса в формате https://site.ru/status.php?id=. Если поле пустое, QR-коды и кликабельные трек-коды не формируются.
  6. Сохраните настройки и проверьте печатный документ на тестовой заявке.

Расчеты

Вкладка “Расчеты” управляет деньгами: налогом, платежными комиссиями, срочностью, выездами и агентскими начислениями.

Налог НПД

  1. Укажите ставку для физлиц.
  2. Укажите ставку для ИП/юрлиц.
  3. Если используется налоговый бонус, заполните его остаток или включите обновление из интеграции.
  4. Проверьте предварительный налог в разделе “Финансы”.

Комиссии платежных способов

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

Доплата за срочность

Используется, когда заявка должна быть выполнена быстрее обычного. Укажите фиксированную сумму или правило, после чего CRM сможет добавлять доплату в расчет.

Стоимость выездных заявок

  1. Заполните базовый адрес сервиса. В типовой поставке пример адреса: “г. Любой, ул. Стандартная, д. 123”.
  2. Укажите стоимость выезда для адреса в том же населенном пункте.
  3. Укажите стоимость выезда для адреса за пределами населенного пункта.
  4. Если используется карта или геокодер, проверьте API-ключ и доступность подсказок адресов.
  5. Создайте тестовую выездную заявку и проверьте, что стоимость считается ожидаемо.

Агентские комиссии

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

Пользователи и роли

  1. Создайте роли, если стандартных ролей недостаточно.
  2. Для каждой роли задайте доступ к разделам: просмотр, скрытие раздела, ограничения действий.
  3. Создайте пользователя, укажите логин, ФИО, телефон, e-mail и роль.
  4. Если пользователь относится к партнеру или точке, привяжите его к партнеру.
  5. При увольнении сотрудника заблокируйте учетную запись, а не удаляйте ее, чтобы сохранить историю действий.

Интеграции

  • Prodamus - платежная форма, callbacks и варианты оплаты. Документация: help.prodamuspay.ru, виджет оплаты, API-уведомления.
  • ЛК НПД / Мой Налог / ККТ - чеки, отмена чеков, печать и фискальные сценарии.
  • DaData - подсказки адресов, компаний, ИНН и реквизитов.
  • Яндекс.Карты - карты, маршруты и расчет выездов.
  • VK и MAX - аккаунты сообщений, бот, webhook/polling, привязка диалогов к клиентам.
  • Android - загрузка APK и API-доступ для мобильного приложения.

Как подключать интеграцию

  1. Получите ключ или токен в личном кабинете сервиса.
  2. Вставьте ключ в соответствующее поле CRM.
  3. Сохраните настройки.
  4. Нажмите кнопку проверки, если она есть.
  5. Сделайте тестовое действие: платеж, сообщение, чек, подсказку адреса или синхронизацию.

Обслуживание

  • Резервные копии базы - ручное создание, скачивание и удаление старых копий.
  • Импорт/экспорт - перенос справочников, запчастей, клиентов или финансовых данных.
  • Очистка временных файлов - удаление кэша, временных документов и устаревших вложений, если это предусмотрено настройками.
  • Проверка системных параметров - PHP, права на папки, доступность расширений, состояние лицензии и обновлений.

Оповещения

Во вкладке задаются события, получатели и каналы уведомлений.

  1. Выберите событие: новая заявка, заявка с сайта, изменение статуса, отклонение, поступление сообщения, новая оплата, комментарий.
  2. Выберите роли-получатели.
  3. Укажите, нужно ли уведомление в CRM, SMS, e-mail, MAX/VK или push в Android.
  4. Настройте шаблон текста. Используйте переменные заявки и клиента.
  5. Сохраните и проверьте на тестовой заявке.

О программе

  • Показывает текущую версию CRM.
  • Показывает домен лицензии, дату выдачи и срок действия.
  • Позволяет вручную проверить лицензию.
  • Показывает доступные обновления и список изменений.
  • Содержит кнопку продления лицензии и ссылку на документацию.
Настройки: Основное, внешний вид и публичная ссылка статуса.
Настройки: Основное, внешний вид и публичная ссылка статуса.
Настройки: Основное, реквизиты компании.
Настройки: Основное, реквизиты компании.
Настройки: Основное, кастомные страницы и нумерация.
Настройки: Основное, кастомные страницы и нумерация.
Настройки: Расчеты, стоимость выездов.
Настройки: Расчеты, стоимость выездов.
Настройки: Расчеты, срочность и комиссии оплат.
Настройки: Расчеты, срочность и комиссии оплат.
Настройки: Пользователи и роли.
Настройки: Пользователи и роли.
Настройки: Права доступа групп.
Настройки: Права доступа групп.
Настройки: Интеграции.
Настройки: Интеграции.
Настройки: Обслуживание, Android-приложение.
Настройки: Обслуживание, Android-приложение.
Настройки: Обслуживание, резервные копии и импорт.
Настройки: Обслуживание, резервные копии и импорт.
Настройки: Обслуживание, режим обслуживания.
Настройки: Обслуживание, режим обслуживания.
Настройки: Оповещения.
Настройки: Оповещения.
Настройки: создание оповещения.
Настройки: создание оповещения.
Настройки: О программе.
Настройки: О программе.
Настройки: продление лицензии.
Настройки: продление лицензии.

21. Публичная страница статуса

Публичная страница позволяет клиенту открыть статус заявки по трек-коду без входа в CRM.

Точки входа

  • Ссылка из SMS или e-mail.
  • QR-код в договоре, акте или заявке-договоре.
  • Кликабельный трек-код в CRM, если задана базовая ссылка.
  • MAX-бот со стартовым параметром трек-кода.

Технический поток

  1. CRM формирует трек-код заявки.
  2. В настройках хранится базовая ссылка, например `https://site.ru/status.php?id=`.
  3. Документы получают QR с полной ссылкой.
  4. Страница статуса запрашивает данные по трек-коду.
  5. Если есть неоплаченные услуги или запчасти, клиент может перейти к оплате Prodamus.
  6. Если заявка готова или закрыта, клиент может оставить отзыв.
  7. При переходе в MAX-бота с трек-кодом бот может автоматически привязать диалог к клиенту.

Оплата через Prodamus

Для платежного виджета и уведомлений используйте документацию Prodamus: подключение виджета и API-уведомления об оплатах.

22. Android-приложение

Android-приложение разрабатывается индивидуально под проект и работает с API CRM.

Точки входа и сценарии

  • Авторизация сотрудника через API CRM.
  • Дашборд с заявками по статусам.
  • Карточка заявки: статус, клиент, устройство, сумма, комментарии.
  • Календарь заявок, выездов и гарантий.
  • Клиенты, история обращений и быстрый звонок.
  • SMS-шаблоны и оповещения.
  • История звонков и источники обращений.
  • Офлайн-кэш части справочников и заявок.

Что нужно для подключения

  1. Включенный модуль Android-приложения.
  2. HTTPS-домен CRM.
  3. Пользователь CRM с правами для мобильной работы.
  4. Настроенные API-маршруты и токены.
  5. Согласованная логика уведомлений и SMS-шаблонов.
Хотите готовое приложение?

Разработаем его для Вас! Оставьте заявку на странице нашей CRM.

Оставить заявку

23. Техническая интеграция и API

Этот раздел нужен разработчику публичного сайта, страницы статуса, Android-приложения или внешнего сервиса. Ниже описаны точки входа, форматы запросов, ключевые таблицы и минимальные примеры кода. В примерах заменяйте https://crm.example.ru на домен установленной CRM.

Не подключайте публичный сайт к базе CRM, если можно использовать API или промежуточный обработчик. Прямое подключение к базе допустимо только на том же сервере или в закрытой сети, с отдельным пользователем MySQL и минимальными правами.

Базовые адреса

НазначениеАдресКомментарий
CRMhttps://crm.example.ru/Адрес панели управления.
Защищенное APIhttps://crm.example.ru/api/...Требует заголовок Authorization: Bearer ACCESS_TOKEN.
Публичный статусGET /api/public/track/{code}Не требует входа, работает по трек-коду заявки.
Публичные настройкиGET /api/public/settingsВозвращает публичные параметры: название, контакты, ссылку статуса, доступность платежей.
Ссылка статуса на сайтеhttps://site.example.ru/status.php?id={track_code}Задается в настройках CRM в поле “Публичная страница статуса”.

Авторизация API

Для Android-приложения и внутренних интеграций используйте логин сотрудника CRM. После входа API возвращает access-token и refresh-token. Access-token передается в заголовке каждого защищенного запроса.

МетодEndpointТело запросаОтвет
POST/api/auth/login{ "login": "admin", "password": "secret" }{ "success": true, "access_token": "...", "refresh_token": "...", "user": {...} }
POST/api/auth/refresh{ "refresh_token": "..." }Новая пара токенов.
GET/api/auth/meBearer tokenТекущий пользователь и роль.
curl -X POST 'https://crm.example.ru/api/auth/login' \
  -H 'Content-Type: application/json' \
  -d '{"login":"admin","password":"secret"}'

Основные защищенные маршруты

РазделМаршрутыЧто передается
КлиентыGET /api/clients, GET /api/clients/search?q=..., POST /api/clients, PUT /api/clients/{id}Тип клиента, ФИО/компания, телефон, e-mail, ИНН, адрес, заметки.
ЗаявкиGET /api/orders, POST /api/orders, GET /api/orders/{id}, PUT /api/orders/{id}Клиент, тип заявки, устройство, неисправность, сроки, услуги, запчасти, источник.
Статус заявкиPUT /api/orders/{id}/status или PATCH /api/orders/{id}/status{ "status": "in_progress", "comment": "..." }.
ОплатаPUT /api/orders/{id}/paymentpayment_status, payment_method, payment_channel, payment_variant.
Услуги заявкиPOST /api/orders/{id} при создании или редактировании заявкиМассив услуг: название, цена, количество.
Запчасти заявкиGET/POST /api/orders/{id}/parts, PUT /api/orders/{id}/parts/{partId}, POST /api/orders/{id}/parts/{partId}/deleteНазвание, поставщик, закупка, цена клиента, количество, статус поставки, оплата.
Заявки с сайтаGET /api/web-requests, PUT /api/web-requests/{id}/status, GET /api/web-requests/{id}/convertСписок входящих заявок, принятие, отклонение и создание заявки CRM.
СообщенияGET /api/messenger/conversations, GET /api/messenger/conversations/{id}/messages, POST /api/messenger/conversations/{id}/sendДиалоги VK/MAX, текст, вложения, привязка к клиенту.
E-mailGET /api/email/messages, POST /api/email/send, POST /api/email/fetchПисьма, вложения, отправка, синхронизация.
SMSGET /api/sms, POST /api/sms, POST /api/sms/{id}/deleteИстория SMS, ручное добавление, привязка к клиенту.

Публичный API статуса заявки

Публичная страница статуса должна принимать трек-код из URL и запрашивать данные заявки. Трек-код хранится в таблице orders.track_code и не равен внутреннему id.

МетодEndpointПеременныеОтвет
GET/api/public/track/{code}code - трек-код, например MP45RW4R.Данные заявки: номер, статус, клиентские поля, услуги/запчасти, оплата, ссылка на чек, отзыв.
const code = new URLSearchParams(location.search).get('id');
const response = await fetch(`https://crm.example.ru/api/public/track/${encodeURIComponent(code)}`);
const data = await response.json();

if (!data.success) {
  document.querySelector('#status').textContent = 'Заявка не найдена';
} else {
  document.querySelector('#status').textContent = data.data.status_label;
}

Пример страницы отслеживания статуса на PHP

Это минимальная заготовка для отдельного сайта. Она использует публичный API CRM, поэтому сайт не хранит пароль от базы CRM.

<?php
$crmUrl = 'https://crm.example.ru';
$code = trim($_GET['id'] ?? '');

if ($code === '') {
    http_response_code(400);
    echo 'Не указан трек-код';
    exit;
}

$url = $crmUrl . '/api/public/track/' . rawurlencode($code);
$json = file_get_contents($url);
$payload = json_decode($json, true);

if (!$payload || empty($payload['success'])) {
    echo '<h1>Заявка не найдена</h1>';
    exit;
}

$order = $payload['data'];
?>
<h1>Заявка №<?= htmlspecialchars($order['order_number'] ?? '') ?></h1>
<p>Статус: <?= htmlspecialchars($order['status_label'] ?? $order['status'] ?? '') ?></p>
<p>Устройство: <?= htmlspecialchars($order['device_model'] ?? '') ?></p>
<p>К оплате: <?= htmlspecialchars($order['payment_total'] ?? $order['total_amount'] ?? '0') ?> ₽</p>

Заявка с сайта: варианты подключения

Есть два рабочих сценария. Первый - сайт сохраняет заявку в свою базу или отправляет ее в CRM через отдельный обработчик. Второй - сайт и CRM находятся на одном сервере, и обработчик сайта напрямую пишет в таблицу web_requests. После этого заявка появляется в разделе “С сайта”.

Поля входящей заявки

ПолеТипОписание
nameстрокаИмя клиента или контактное лицо.
phoneстрока, обязательноТелефон клиента. Желательно нормализовать к +7XXXXXXXXXX.
emailстрокаE-mail, если клиент указал.
device_infoстрокаУстройство: модель, техника, объект ремонта.
problemтекстОписание неисправности или запроса.
serviceстрокаВыбранная услуга или тема обращения.
source_urlстрокаURL страницы, с которой пришла заявка.
statusenumnew, in_progress, converted, rejected.

Пример формы и AJAX-запроса

<form id="requestForm">
  <input name="name" placeholder="Ваше имя">
  <input name="phone" placeholder="+7..." required>
  <input name="device_info" placeholder="Устройство">
  <textarea name="problem" placeholder="Что случилось?"></textarea>
  <button>Оставить заявку</button>
</form>

<script>
document.querySelector('#requestForm').addEventListener('submit', async (event) => {
  event.preventDefault();
  const form = new FormData(event.target);
  const body = Object.fromEntries(form.entries());
  body.source_url = location.href;

  const response = await fetch('/index.php', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-Requested-With': 'XMLHttpRequest'
    },
    body: JSON.stringify(body)
  });

  const result = await response.json();
  alert(result.success ? 'Заявка отправлена' : (result.message || 'Ошибка отправки'));
});
</script>

Пример прямой записи в web_requests

<?php
$pdo = new PDO(
    'mysql:host=localhost;dbname=crm_database;charset=utf8mb4',
    'crm_user',
    'crm_password',
    [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
);

$stmt = $pdo->prepare(
    'INSERT INTO web_requests
     (name, phone, email, device_info, problem, service, source_url, ip_address, status)
     VALUES
     (:name, :phone, :email, :device, :problem, :service, :source, :ip, "new")'
);

$stmt->execute([
    ':name' => $_POST['name'] ?? null,
    ':phone' => $_POST['phone'] ?? '',
    ':email' => $_POST['email'] ?? null,
    ':device' => $_POST['device_info'] ?? null,
    ':problem' => $_POST['problem'] ?? null,
    ':service' => $_POST['service'] ?? 'Заявка с сайта',
    ':source' => $_SERVER['HTTP_REFERER'] ?? null,
    ':ip' => $_SERVER['REMOTE_ADDR'] ?? null,
]);

Прямое подключение к базе: ключевые таблицы

clientsКлиенты. Основные поля: client_type, first_name, last_name, company_name, inn, phone, email, address.
ordersЗаявки. Поля: order_number, track_code, client_id, order_type, status, payment_status, total_amount, planned_completion.
order_servicesУслуги заявки: order_id, service_name, price, quantity, subtotal.
order_partsЗапчасти заявки: part_name, supplier_name, client_price, payment_status, status, даты заказа/получения.
web_requestsВходящие заявки с сайта: имя, телефон, устройство, проблема, источник, статус обработки.
messenger_conversations / messenger_messagesДиалоги VK/MAX, привязка к клиенту, сообщения и вложения.
email_messages / sms_logПисьма и SMS, привязка к клиентам и заявкам.
settingsНастройки CRM. Значения хранятся по ключу setting_key и группе setting_group.

Допустимые значения статусов

ПолеЗначения
orders.statusnew, accepted, waiting_parts, in_progress, suspended, ready, issued, closed, cancelled
orders.order_typeonsite - в мастерской, field_city - выезд по городу, field_out - выезд за город.
clients.client_typeindividual, ip, legal.
order_parts.statusneeded, ordered, shipped, received, installed.
payment_statusОбычно unpaid или paid.

Создание заявки через API

Защищенный вариант подходит для Android-приложения или внутренней интеграции. Сначала найдите или создайте клиента, затем создайте заявку.

curl -X POST 'https://crm.example.ru/api/orders' \
  -H 'Authorization: Bearer ACCESS_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "client_id": 15,
    "order_type": "onsite",
    "device_model": "iPhone 12",
    "problem_description": "Не заряжается",
    "planned_completion": "2026-07-02",
    "source": "site",
    "services": [
      { "service_name": "Диагностика", "price": 0, "quantity": 1 }
    ]
  }'

Android: пример запроса

Приложение хранит адрес CRM, выполняет авторизацию, затем использует Bearer-token. Refresh-token нужен для продления сессии без повторного ввода пароля.

val request = Request.Builder()
    .url("https://crm.example.ru/api/orders?page=1&per_page=25")
    .addHeader("Authorization", "Bearer $accessToken")
    .addHeader("Accept", "application/json")
    .build()

client.newCall(request).execute().use { response ->
    if (!response.isSuccessful) error("HTTP ${response.code}")
    val json = response.body?.string().orEmpty()
    // parse: items, total, page, per_page
}

Prodamus и платежи

Платежная ссылка создается через публичный endpoint CRM, а уведомление об оплате приходит в callback. Документация Prodamus: подключение платежного виджета и API-уведомления об оплатах.

МетодEndpointНазначение
POST/api/public/prodamus/payment-linkСоздание ссылки/виджета оплаты для заявки, запчастей или продления лицензии.
POST/api/public/prodamus/callbackCallback от Prodamus после оплаты.

Cron и фоновые задачи

Cron нужен для фоновой синхронизации сообщений, проверки обновлений, уведомлений и периодических операций. Интервал обычно 1-5 минут.

*/2 * * * * /usr/bin/php /path/to/crm/cron.php >/dev/null 2>&1
# или, если хостинг разрешает только HTTP-вызовы:
*/2 * * * * /usr/bin/curl -fsS 'https://crm.example.ru/cron.php?key=CRON_KEY' >/dev/null 2>&1

24. Лицензия и обновления

Лицензия

Ключ лицензии привязывается к домену. CRM периодически проверяет статус ключа на сервере лицензий. Если срок истекает, вверху появляется предупреждение.

Продление

В `Настройки -> О программе` нажмите “Продлить”, выберите срок и оплатите. После оплаты срок лицензии обновляется. Если срок не обновился автоматически, нажмите “Проверить лицензию”.

Обновления

CRM проверяет наличие новой версии. Если версия доступна, появляется плашка “Доступно обновление”. В разделе “О программе” можно посмотреть список изменений и запустить обновление.

Целостность файлов

Продажная CRM проверяет контрольные суммы файлов проекта. Локальные файлы `config/database.php`, `config/secret.php`, `config/license.dat`, `config/release.json`, `config/integrity.json`, `config/.installed`, загрузки, бэкапы и кэш не участвуют в проверке.

25. Персональные данные и безопасность

CRM может хранить персональные данные клиентов, сотрудников, переписки, письма, вложения, платежные признаки и документы. Оператор обязан самостоятельно оформить политику обработки ПДн, определить цели обработки, сроки хранения и ответственных лиц.

Минимальные организационные меры

  • Используйте HTTPS.
  • Выдавайте пользователям индивидуальные учетные записи.
  • Ограничивайте роли по принципу минимально необходимого доступа.
  • Регулярно делайте резервные копии и храните их в защищенном месте.
  • Удаляйте доступы у бывших сотрудников.
  • Не передавайте токены интеграций в открытые чаты и скриншоты.

152-ФЗ

CRM предоставляет технические возможности разграничения доступа, хранения и удаления данных, но юридическое соответствие 152-ФЗ зависит от владельца установки: политики, согласий, приказов, модели угроз, договоров с обработчиками и фактической эксплуатации.

Резервные копии

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

26. Типовые ошибки и диагностика

СимптомПричинаЧто проверить
Белая страница или ошибка 500PHP, права файлов, база, памятьЛоги PHP, `config/database.php`, версию PHP, лимит памяти
Нелицензионный продуктНет лицензии, неверный домен, отозванный ключ, нарушение целостности`config/license.dat`, домен, срок, проверку ключа, измененные файлы
Не приходят сообщенияНе настроен cron, webhook, токен или защита хостингаАккаунт мессенджера, cron, логи webhook, режим polling
Не отправляется e-mailSMTP, пароль, порт, TLSНастройки e-mail, логи SMTP, доступность порта
Не формируется чекНе настроен ЛК НПД/ККТ или заявка не закрытаИнтеграции, статус заявки, способ оплаты
Обновление не меняет версиюНе обновился `config/release.json` или старая папка релизаРаздел О программе, сервер обновлений, права записи config

27. Поддержка

Если нужна помощь с установкой, настройкой или ошибкой, отправьте заявку. Укажите домен, версию CRM и что именно происходит.

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