Для синхронизации пользователей Sherlock Platform и внешней системы можно использовать API управления пользователями.
Для добавления, изменения или удаления пользователей через API Sherlock Platform сначала надо авторизоваться.
Для создания пользователя используется метод POST контроллера Users https://<sherlock_url>/API/V2/Users. Для изменения пользователя используется метод PUT контроллера Users https://<sherlock_url>/API/V2/Users/{UserId}. Полученный ранее токен надо передать в заголовке как Bearer Token.
Для удаления пользователя используется метод DELETE контроллера Users https://<sherlock_url>/API/V2/Users/{UserId}. Полученный ранее токен надо передать в заголовке как Bearer Token.
Пример минимального json для создания пользователя (при наличии email и автоматической генерации пароля):
{ "user": { "email": "[email protected]", "accessRoleId": "00000000-0000-0000-0000-000000000000", "queueUsers": [ { "queueId": "00000000-0000-0000-0000-000000000000", "isActive": true }] }, "password": "" }
В json выше:
email - email пользователя. На данный email уйдет письмо с приглашением и параметрами доступа, включая пароль
accessRoleId - идентификатор роли. Например, роли Оператор
queueId - идентификатор очереди. Например, очереди Чат центр. Если в очереди включать не надо, то следует удалить целиком блок queueUsers
Пример json для создания пользователя по логину (с явной передачей пароля):
{ "user": { "userName": "Operator123", "accessRoleId": "00000000-0000-0000-0000-000000000000", "queueUsers": [ { "queueId": "00000000-0000-0000-0000-000000000000", "isActive": true }] }, "password": "12345678" }
Если необходимо создать пользователя с возможностью входа по внешнему коду в json надо добавить реквизиты:
externalObjectId - id пользователя во внешней системе
externalSystemCode - зарегистрированный в Sherlock код вашей CRM системы
allowAccessByExternalSystemCode - если true, то возможная автоматическая регистрация по внешнему коду
{
"user": {
"userName": "Operator123",
"accessRoleId": "00000000-0000-0000-0000-000000000000", "externalObjectId": "123", "externalSystemCode": "Bitrix", "allowAccessByExternalSystemCode": true,
"queueUsers": [
{
"queueId": "00000000-0000-0000-0000-000000000000",
"isActive": true
}]
}, "password": "12345678"
}
В ответ приходят данные созданного пользователя, включая id в Sherlock. Приведем описание всех параметров структуры пользователя (эта же структура данных приходит в ответ после обновления):
user.id - id пользователя. Не используется для входных данных
user.userName - логин пользователя
user.email - email пользователя
user.isActive - признак активности. Если true, то пользователь может подключаться к платформе
user.fullName - имя пользователя
user.userAlias - псевдоним для чата на сайте
user.cellPhone - сотовый телефон
user.officePhone - офисный телефон
user.photoUrl - ссылка на фото пользователя
user.operatorStatusId - текущий статус пользователя. Можно не передавать
user.isBot - всегда false для пользователя
user.description - произвольное описание
user.isSendFileAfterAttach - настройка предпочтений, определяющая отправлять ли файлы сразу после загрузки
user.ipAddress - текущий ip адрес. Только для чтения
user.allowedIpAddresses - маска для допустимых ip адресов с которых пользователь может подключаться
user.lastActivityDate - дата последней активности
user.position - должность
user.isSystemUser - если true, то открывается доступ к ряду функций расширенного администрирования
user.accessRoleId - роль пользователя
user.projectId - филиал пользователя
user.userCategoryId - всегда 0 для пользователя
user.backgroundColor - цвет иконки
user.isTabActive - системное поле
user.notificationUserProfileId - канал для отправки уведомлений
user.notificationClientProfileId - профиль в канале для отправки уведомлений
user.isNotificationAboutNewDialog - отправлять ли уведомления о новом диалоге
user.externalObjectId - id во внешней системе
user.externalSystemCode - код внешней системы
user.allowAccessByExternalSystemCode - true, если возможен автоматический вход по externalSystemCode
user.languageCode - код языка пользователя
user.userSettings - настройки пользователя
user.queueUsers - очереди пользователя. Для добавления достаточно передавать queueId - идентификатор очереди
password - пароль. Указывается только при создании. Если не передан при создании, то формируется автоматически и направляется на email. Создание пользователя отклоняется, если пароль не соответствует правилам.