Блог

Большое обновление SVCore: тринадцать языков, лояльность и защита переписки

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

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

Кабинет говорит на тринадцати языках

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

Где включить: «Настройки», раздел «Локализация», поле «Язык интерфейса». Список языков приходит с сервера, поэтому в нём только то, что кабинет действительно умеет показать.

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

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

Программа лояльности

Бонусный счёт умел только начисление за заказ. Теперь у программы есть правила, события и приглашения.

Что появилось:

1. Бонусы за события: приветственный при регистрации, подарок за первый заказ, подарок ко дню рождения, поощрение за отзыв. У каждого события своя ставка и своё правило однократности. «Первый заказ» считается по истории клиента, а не по первому срабатыванию события, поэтому подарок не достаётся человеку, который ходит к вам третий год.

2. Промокоды: код с фиксированной суммой или процентом, сроком действия, лимитом применений и ограничением по уровню привилегии.

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

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

Где настраивается: «Настройки», раздел «Привилегии клиентов». Там же лежит оферта программы. Оферта хранится редакциями: у принятой клиентом версии остаётся текст на момент принятия, поэтому через полгода можно ответить, на что именно человек соглашался.

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

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

!Клиенты: карточки, бонусы, согласия

```demo

{"type":"checklist","title":"Что включить, чтобы программа заработала","items":[{"text":"Выбрать режим программы: бонусы или скидки","done":false},{"text":"Задать ставку начисления и потолок списания","done":false},{"text":"Включить события: приветственный бонус, первый заказ, день рождения","done":false},{"text":"Загрузить текст оферты и опубликовать редакцию","done":false},{"text":"Разрешить приглашения и задать вознаграждение обеим сторонам","done":false},{"text":"Выдать роли право на раздел лояльности","done":false}],"action":"Программа готова"}

```

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

Рабочее место курьера

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

Заказ помнит маршрут плеча. При постановке на полку «На …» и при заборе в «Логистику» в карточку пишется, откуда и куда едет груз, на конечной точке запись снимается. Помнится и статус до постановки на маршрут: если заказ увезли с маршрута через карточку, он возвращается. Раньше «Ожидает курьера» висел вечно и заказ не уходил из раздела.

```demo

{"type":"steps","title":"Путь заказа через раздел «Курьеры»","steps":[{"title":"Заказ готов к перевозке","desc":"Приёмщик ставит заказ на полку «На сервис». Цепочка сама выставляет статус отправной точки.","screen":{"heading":"R-10482 · iPhone 13 Pro","sub":"Филиал на Ленина","pill":"Ожидает курьера","tone":"amber","fields":[{"label":"Откуда","value":"Филиал на Ленина, полка «На сервис»"},{"label":"Куда","value":"Мастерская, приёмка"}]}},{"title":"Курьер забрал","desc":"Курьер отмечает забор в своём разделе. Заказ переезжает на склад «Логистика».","screen":{"heading":"R-10482 · iPhone 13 Pro","sub":"В пути","pill":"Передан курьеру","tone":"info","fields":[{"label":"Курьер","value":"Игорь"},{"label":"Маршрут","value":"Ленина, полка «На сервис» в Мастерскую"}],"timeline":[{"time":"10:14","text":"Поставлен на полку «На сервис»"},{"time":"11:02","text":"Забран курьером","active":true}]}},{"title":"Доставлен","desc":"На конечной точке цепочка ставит статус назначения, запись о маршруте снимается.","screen":{"heading":"R-10482 · iPhone 13 Pro","sub":"Мастерская, приёмка","pill":"Доставлен на филиал","tone":"success","fields":[{"label":"Принял","value":"Мастерская, приёмка"},{"label":"Время в пути","value":"48 минут"}],"timeline":[{"time":"11:02","text":"Забран курьером"},{"time":"11:50","text":"Доставлен на филиал","active":true}]}}]}

```

Заказы и приёмка

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

В приёмке появился тип устройства, он же подбирает чек-лист осмотра. Цвет устройства выбирается из списка, а не пишется руками. Срок готовности сохраняется по кнопке «Готово», а не по каждой введённой цифре.

Метку можно привязать к статусу: заказ перешёл в него, метка встала, ушёл, снялась. Раньше «Ждёт запчасть» вешали руками и забывали снять, поэтому в списке висели метки от позапрошлого месяца.

Статусы «На согласовании» и «Согласован с клиентом» просят короткое пояснение. Оно попадает в ленту заказа рядом со статусом, поэтому через день понятно, о чём именно договорились. Остальные статусы ставятся как раньше, одним нажатием.

Готовые заказы больше не считаются просроченными: норма на статус «Готов к выдаче» составляет сутки, и раньше в просроченные попадали заказы, по которым мастер всё сделал, а клиент их не забрал.

!Карточка заказа: устройство, этапы, запчасти, документы

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

Склад и логистика

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

Логистические цепочки можно править после создания, раньше цепочку оставалось только удалить и завести заново. У отправной и конечной точки появился свой статус ремонта: задан, заказ при перемещении получает его, пусто, работают прежние «Ожидает курьера» и «Доставлен на филиал».

Каталог получил тип техники, бренд и латинский ключ поиска: кириллический ввод теперь находит латинские названия, а модели раскладываются по правилу «Тип Бренд Модель». Чек-листы приёмки и выдачи стали системными и зависят от типа техники.

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

!Склад: остатки по складам, ячейкам и партиям

Финансы, кассы и зарплата

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

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

У филиала появился свой налоговый режим и форма собственности. Чек уходит с его системой налогообложения и ставкой НДС, оговорка про НДС в документах берётся по его режиму, налог считается по проводкам этого филиала. Юрлицо в шапке акта сверки и в кассовой книге подбирается по филиалу, по которому прошли операции.

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

В зарплатных правилах появились премии за выполнение плана и средний слой «должность»: он перекрывает общее правило и уступает персональному.

!Финансы: кассы, проводки, долги

Бюджеты и планы

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

Рядом появился раздел «Планы по показателям»: задаёте целевое значение, сторож следит за выполнением, а зарплатные правила могут платить премию за результат. Оба раздела закрыты своими правами и открыты руководителю, бухгалтеру и учредителю.

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

Клиенты, заявки и звонки

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

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

Заявка без движения дольше срока уходит в системную стадию «Истекла», поэтому воронка не копит карточки, которые никто не двигает.

Если клиент назвал в разговоре филиал и время, разбор звонка сразу ставит заявке «Подтверждена»: прозванивать её не нужно, остаётся дождаться визита.

Каналы связи и защита переписки

Это самая важная часть обновления для тех, у кого включён бот.

Бот отвечает про заказы только подтверждённой паре «клиент и чат». Своим считается номер, пришедший подписанным уведомлением площадки или кнопкой «Поделиться контактом», либо адрес, подтверждённый входящим письмом. Номер, набранный в переписке текстом, остаётся неподтверждённым: бот про заказы молчит, оператор собеседника в карточке по-прежнему видит.

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

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

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

Связь с каналами проверяется сама, а не только кнопкой «Тест»: упавший канал раньше можно было не замечать неделями, пока сообщения клиентов не доходили. В списке каналов видно, чей это аккаунт: бот, сообщество или ящик.

!Омниканальный инбокс: Telegram, ВКонтакте, Avito, почта

Поддержка внутри кабинета

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

!Поддержка внутри кабинета

Печать и документы

Текст в печати выходил тонким и серым, на дешёвом лазернике накладную было не разобрать. Цвета затемнены в самих шаблонах, рамки стали контрастнее, фон печатается принудительно.

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

!Шаблоны печатных документов

Права доступа

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

Роль «Мастер» приведена к тому, что нужно для работы: в финансах только кассы, на складе только остатки доступных складов. Аналитика открывается по ключам своих модулей, а не по косвенным правам, по которым отчёты видел любой сотрудник.

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

!Роли и матрица прав

Внешний вид

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

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

У пространства появился отдельный фирменный цвет для тёмной темы. Один и тот же цвет, подобранный по светлому фону, в тёмной либо тонул, либо резал глаза.

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

!Дашборд: показатели дня по ролям и филиалам

Подписка и оплата

Место на диске стало месячной подпиской вместо покупки навсегда: у пакета есть оплаченный период, оплата продлевает его, после окончания даётся отсрочка. Пакеты, выданные оператором платформы вручную, не сгорают.

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

Что дальше проверить у себя

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

Все записи блога · Попробовать SVCore


SVCore. CRM для сервисных центров по ремонту техники. Создать сервис-центр · Вход в кабинет