Августовский релиз ELMA365
Графики контроля операторов поддержки, согласование документов через email и настройка прав доступа в приложениях. Подробнее об этих и других обновлениях, пришедших с августовским релизом ELMA365, ниже
ELMA365 CRM
Почта
Настройка своего почтового сервиса
Добавлена возможность сохранить настройки корпоративного почтового сервиса для простого подключения персонального почтового ящика. Порты подключения задаются администратором системы один раз. А пользователи могут подключить свой почтовый ящик, не задумываясь о параметрах подключения сервиса, просто выбрав из выпадающего списка доступных почтовых сервисов, наряду с @google.com, @outlook.com, @yandex.ru и прочими.
Удаление писем, которые не связаны с объектами
Установлен лимит на хранение писем, не связанных с объектами, для высвобождения дискового пространства. Для On-premise есть возможность отключить механизм удаления при достижении лимита не связанных с объектами писем.
Кнопка «Очистить корзину» для папки «Корзина» в почте
В папке «Корзина» добавлена кнопка «Очистить корзину» для массового удаления всех ненужных писем. При этом система проконтролирует, чтобы письма, имеющие связи с приложениями, не были удалены. Таким образом история переписки сохраняется целостной. Если все же письмо должно быть удалено, то необходимо сначала убрать связи между письмом и записью приложения, а затем безвозвратно удалить письмо.
Кнопка «Ответить всем» в почте
На форме просмотра письма добавлена кнопка «Ответить всем» для того, чтобы в ответном письме были по умолчанию проставлены все получатели, упомянутые ранее в почтовой переписке. Кнопка отображается при условии, если в поле «Кому» два и более получателей, или же помимо основного получателя письма есть адресаты, указанные в «Копии».
Счетчик непрочитанных писем и общее количество писем в папках: учитывать количество непрочитанных по папкам
Добавлена функция, которая рассчитывает количество писем, отмеченных непрочитанными не только в папке «Входящие», но и в «Моих папках».
Общий счетчик, отображаемый у иконки раздела Почта показывает суммарное количество всех непрочитанных входящих писем. Также для папки «Входящие» каждой созданной папки в «Моих папках» система покажет как количество непрочитанных писем, так и общее количество писем в этой папке.
Действие «Переместить» для писем
Добавлена возможность перемещать письма между папками. Так, например, из Входящих вы можете переместить одно или несколько писем в Корзину или в одну из настроенных «Моих папок».
Мои папки — развернутый список папок-фильтров по умолчанию
Изменено визуальное представление: список «Моих папок» отображается по умолчанию раскрытым списком.
Финансы
Настройка основания расходов
Аналогично настройке приложений, которые являются возможными основаниями для поступлений, добавлена функция выбора приложений-оснований, к которым могут быть привязаны расходы. Настройка основания для расходных платежей осуществляется на странице «Настройка оснований», которую вы можете открыть, нажав на шестеренку у раздела «Финансы».
В настройках виджета «Поступления» добавить возможность выбрать дополнительное приложение-основание
Для кейсов, когда в организации несколько приложений могут являться основаниями платежей, мы доработали виджет «Поступления», чтобы на одной странице видеть поступления, привязанные к разным основаниям.
Например, основанием поступлений могут являться в одном случае «Договоры», в другом — «Сделки», в третьем — «Проекты». Но все поступления, привязанные каждый к своему основанию, хотелось бы видеть, например, на карточке элемента «Контрагент». Для реализации такого поведения укажите в настройках виджета «Поступления» дополнительные основания, выбрав из контекста текущего приложения. Все поступления по текущему и дополнительным основаниям будут отображены в виджете и сгруппированы по приложению-основанию. Здесь же для большей читабельности, вы можете чекбоксами включить или выключить отображение поступлений по дополнительным основаниям.
Важно! Обращаем внимание, что дополнительные основания также должны быть включены в «Настройке оснований» в разделе «Финансы».
В настройки виджета «Поступления» добавить поля «Заголовок» и «Показывать кнопку добавления поступлений»
В настройке виджета «Поступления» добавлена возможность кастомизировать заголовок или убрать его вовсе, а также возможность скрыть кнопку «+Плановое поступление», если это необходимо.
CRM
При перемещении задач CRM на канбане добавить поле для ввода комментария
Планируйте время выполнения задач CRM, перенося их на канбане на нужный день и время в «Задачи — Задачи CRM». Также, как и при переносе задачи CRM на карточке элемента, при перемещении задачи на канбане в разделе «Задачи — Задачи CRM», появилась возможность оставить комментарий при переносе, который отобразится в ленте объекта, по которому поставлена задача.
ELMA ChatDesk
Отчеты ChatDesk
В этом релизе мы добавили новые инструменты гибкости и контроля для Линий. На замену преднастроенным отчетам мы создали гибкую систему виджетов, в которых можно выбрать необходимые метрики и вывести их в интерфейсе так, как удобно вашим операторам и супервизорам.
Контролируйте:
- своевременность ответа;
- максимальное время ожидания;
- среднюю скорость первого ответа;
- производительность;
- среднюю длительность сессии;
- количество обработанных обращений за период;
- долю ответов бота.
Также можно выбрать в каком разрезе необходимо показывать отчет и в каком графическом представлении.
Messenger API
Начиная с этого релиза появилась возможность подключать любые самописные мессенджеры/мобильные приложения/внешние чаты в ChatDesk в качестве одного из каналов коммуникации.
Для этого мы реализовали интерфейс для настройки и разработали описание методов, которые система поддерживает. Вам достаточно встроить необходимые запросы во внешний мессенджер, произвести настройку силами администратора, и сообщения из вашего приложения начнут поступать в интерфейс оператора наряду со стандартными интеграциями.
ELMA Bot
В августовском релизе мы добавили новые возможности для интеграций и совместной работы на проектах внедрения.
История изменений и версии ботов
Совместная работа над настройками бота стала удобнее, благодаря тому, что все изменения записываются в историю версий. В истории можно видеть время и автора изменений, можно скачать либо восстановить выбранную версию в черновик.
Тюнинг системных интентов
В конструкторе можно было настраивать понимание намерений, создавая и настраивая собственные или подключая готовые системные интенты. Системные интенты предоставлялись без возможности их изменения. Теперь, если распознавание системного нуждается в корректировке, то можно скопировать фразы системного интента в раздел пользовательских интентов и отредактировать набор обучающих фраз.
Кэширование данных в скриптах
В случае, когда бот обменивается данными со сторонними системами, выполняет вычисления, объем данных может быть велик, и вычисления продолжительны настолько, что скорость реакции бота может уменьшиться. Для таких случаев мы добавили возможность кэширования в скрипты ELMA Bot. Теперь объемные данные и результаты вычисления можно помещать в специальное хранилище, которое поддерживает доступ по ключу и время жизни объектов.
var store = context.utils.cache.getStore('redis');
var bucket = store.getBucket('data');
let value = await bucket.getValue('key');
if (value == null)
{
value = 'value'; // Получить из сервиса.
await bucket.setValue('key', value, { ttl: 3600 } ); // ttl: 3600 секунд (1 час)
}
Low-code отправка email
В сценариях бота появился элемент для отправки email. Теперь отправлять почту можно без написания скриптов. В элементе email можно использовать переменные для указания адресатов, формирования текстов письма и прикрепления вложений.
Документооборот
Продолжаем активное развитие блока Документооборота в системе.
Согласование документов через email
Реализована возможность быстро согласовать документ на основе входящего письма-уведомления о новой задаче. При отправке на согласование через почту приложения типа «Документ», файл версии приложения прикрепляется к письму.
Настройка осуществляется в профиле пользователя. При включении отправки оповещений о новых задачах на email появляется возможность «Включить согласование через email».
Такие задачи поступают на email пользователя. Решение по ним можно вынести через кнопки «Согласовать», «Отказать».
Метод в TSSDK для получения нумератора по пространству имён
Метод [[serials.getByNamespace]]
позволяет получить нумератор по namespace
Пример получения списка нумераторов для номенклатуры:
const serials = await System.serials.getByNamespace(“nomenclature”)
for (const serial of serials)
{
// Некоторая логика
}
Пример получения нумератора для приложения: const namespace = Context.data.tssdk_test?.namespace
const code = Context.data.tssdk_test?.code
const serials = await System.serials.getByNamespace(namespace+“.”+code)
for (const serial of serials)
{
// Некоторая логика
}
Настройка периодичности сброса нумерации
Добавлена возможность периодического сброса нумерации для места регистрации.
В настройках периода сброса можно указать частоту и период сброса нумерации. Например, для ежемесячного сброса требуется указать в периоде «Месяц», а в частоте – 1. Для сброса один раз в квартал можно указать в периоде «Месяц», а в частоте – 3.
Метод в TSSDK для получения списка полей, исключенных из согласования, через настройки приложения
Добавлена возможность получения настроек через TS SDK:
- signature.excludeFields — массив строк с кодами исключенных из подписания полей;
- signature.excludeSystemFields — признак (да/нет) исключения из подписания системных полей;
- docflow.excludeFields — массив строк с кодами исключенных из согласования полей;
- docflow.excludeSystemFields — признак (да/нет) исключения из согласования системных полей;
- docflow.excludeAllFields — признак (да/нет) исключения из согласования всех полей.
Настройки согласования влияют на отправку в архив листа согласования при изменении полей приложения.
Опция «Исключить все» в настройках согласования
Добавлена возможность в настройках согласования исключить все поля приложения из хэша листа согласования. При добавлении новых полей или удалении старых листы согласования не уходят в архив при включении данной настройки.
Если настройка не установлена, то требуется вручную исключать поля из согласования при добавлении их в приложение. Если этого не сделать, то текущие листы согласования будут отправлены в архив.
Интеграция с Диадок
Юридически значимый документооборот с контрагентами становится всё более востребованным среди наших пользователей. В этом релизе мы добавили важную для автоматизации работы с Диадок возможность получения дополнительных данных из Диадок.
Запись данных контрагента из Диадока в приложение при получении входящего документа
В настройках сопоставления атрибутов добавлено 8 новых необязательных атрибутов: ИНН, КПП, Наименование и ИД участника ЭДО для контрагента и поставщика
ЭЦП
Работа с электронной подписью требует множества проверок для обеспечения безопасности документооборота. Не все из них можно реализовать на уровне платформы, но мы можем упростить для вас доступ к данным подписи, чтобы вы могли реализовать любые проверки в рамках ваших сценариев использования системы.
Предоставление данных регистрационного свидетельства, использованного при подписании, в TSSDK
Метод getDetails() возвращает детальную информацию о подписи
В системе возможно получить детальные данные о подписи, включающие в себя:
- информацию о самой подписи;
- содержимое подписи;
- информацию о публичном ключе с помощью, которого выполнена подпись данных;
- подписанные данные.
Для получения данных необходимо вызвать метод [[EntitySign.getDetails]]. Этот метод позволяет получить детальные данные о подписи. Рассмотрим ситуацию, когда в пользовательском сценарии необходимо определить юридическим или физическим лицом выполнена подпись. Для этого необходимо получить подпись из истории, вызвать метод, указанный выше. После получения данных необходимо проанализировать содержимое сертификата:
async function whoMadeSign(): Promise
// получение приложения типа "документ" из контекста пользовательского сценария
const app = Context.data.document!;
// получение данных приложения
const appData = await app.fetch();
// получение истории подписей приложения
const signsHistory = await appData.getSignHistory();
// получение последней подписи
const sign = signsHistory[0].signs[0];
// получение информации о подписи
const signDetails = await sign.getDetails();
// если указано одно из этих полей - то подпись выполнена юридическим лицом
// также для таких проверок возможно использовать и другие поля сертификата в зависимости
// от провайдера выдавшего цифровую подпись
const orgField = signDetails.subject['O'] || signDetails.subject['OU'];
if (orgField !== '') {
// подпись для юридического лица
} else {
// подпись для физического лица
}
}
Полный перечень возвращаемых полей:
- type — тип подписи;
- status — статус подписи;
- createdBy — создатель подписи;
- signDate — дата подписания;
- signValidUntilAt — дата окончания действия подписи;
- certValidUntilAt — дата окончания действия сертификата;
- certSerialNumber — номер сертификата;
- commonName — имя сертификата;
- subject — информация о получившем сертификат. В поле хранится объект, содержащий информацию, извлеченную из сертификата. Извлекаются базовые и дополнительные поля. Распознаются базовые поля сертификата: C, O, OU, CN, SERIALNUMBER, L, ST, STREET, POSTALCODE и дополнительные поля, хранимые в сертификате по RFC 2253. Атрибуты, не попадающие в список базовых полей, не кодируются в формат hex.
- issuer — информация о выдавшем сертификат. В поле хранится объект, содержащий информацию, извлеченную из сертификата. Извлекаются базовые и дополнительные поля. Структура аналогична полю subject.
Контракты
Возможность удалять приложение из контракта и приложение по умолчанию из настроек контракта
Мы продолжаем развивать приложение типа «Контракт» в системе ELMA365. Понимая, что иногда требуется не только добавить новое приложение в контракт, но и удалить существующее, мы добавили эти возможности. Теперь настраивать контракты стало ещё проще, а перенос между различными средами безопаснее.
Пользовательский опыт
Календарь
В релизе августа мы сделали календарь удобнее — теперь пользователи могут создавать периодические события. Для этого любое событие в календаре можно отметить флагом «Периодическое» и выбрать, в какие дни событие будет повторяться.
Периодические события можно ограничить датой, после которой они больше не будут повторяться.
Права доступа в приложениях
Настройки прав доступа стали более гибкими. Права теперь можно назначать свойствам приложения типа «Роль».
Эта возможность доступна при настройках прав «На уровне элементов приложения».
Например, в поле приложения «Договор», в свойство типа «Роль» можно записать список согласующих, но не только конкретных пользователей, но и группы, роли и должности из организационной структуры. Права на просмотр элементов этого приложения можно назначить простой настройкой:
Прочие улучшения
- Двухфакторная аутентификация теперь поддерживается для пользователей, импортированных из AD/LDAP
- Оптимизировано быстродействие форм приложений с большим количеством переменных
Low-code
Добавить возможность изменения favicon
По просьбам заказчиков в настройки темы оформления добавлен «Логотип во вкладке браузера» — favicon. Если логотип задан, то он будет отображаться в заголовке вкладки браузера вместо стандартной иконки.
Тип данных дата/время — выбор месяца и года списком
В выпадающем календаре при нажатии на месяц-год появился список для выбора года и месяца. Это сделано для удобства ввода произвольной даты без использования клавиатуры.
ELMA365 Portal
Импорт портальных пользователей из AD / LDAP
Одним из важных сценариев использования внешнего портала мы видим работу со своими же сотрудниками «в полях». В этом случае внутри системы остается бэк-офис (кадры, бухгалтерия). При этом возможно, что у компании уже есть существующий сервер авторизации и домен, в который добавлены все сотрудники.
Внутренних пользователей можно было всегда синхронизировать с сервером домена. Также можно было организовать вход пользователей с учетными данными домена.
В этой версии мы добавили такую возможность и для внешних пользователей портала. Теперь в настройке авторизации в портале можно указать какой настроенный сервер AD или LDAP использовать для входа пользователей. Также мы добавили отдельный блок настроек в интеграции AD и LDAP, в котором можно указать отдельные фильтры поиска для внешних пользователей.
По аналогии с внутренними пользователями теперь можно импортировать и синхронизировать профили внешних пользователей из сервера домена. И точно также можно настроить несколько серверов для интеграции и импортировать пользователей с них разом. В этом случае вам уже не потребуется приглашать пользователей на портал, а им не нужно будет проходить процедуру принятия приглашения.
Авторизация на внешнем портале через SAML
Мы доработали настройки модуля интеграции, и теперь внешние пользователи могут использовать сквозной вход в систему при помощи протокола SAML. И точно так же, как для внутренних пользователей, мы можем сразу создать профиль внешнего пользователя при первом входе через SAML.
Двухфакторная аутентификация в портале
В этом релизе мы уже очень много внимания уделили внешним пользователям. И хотим ещё немного их порадовать (а также порадовать отдел безопасности). Теперь можно использовать дополнительный фактор аутентификации (2FA) для входа внешних пользователей на портал. Как и для внутренних пользователей, для них доступны варианты второго фактора через СМС или через почту.
ELMA365 On-Premises
Процедура установки
Разработана процедура установки ELMA365 On Premises в сеть без доступа в интернет. Для установки в Kubernetes кластер необходимо загрузить образы микросервисов ELMA365 в локальный реестр, прилагаемой утилитой. В случае если локального реестра нет, то утилита позволит его установить.
Оптимизация скрипта оффлайн установки для Ubuntu/Astra — добавлено использование локального реестра образов микросервисов вместо кэша, что позволяет избежать ожидания запуска ELMA365 при нехватке оперативной памяти.