assessment360.assessment.start

Scope: assessment360

Кто может вызывать: Группы «могут запускать процесс оценки» / админ / HR (canUseStartActions). См. Права доступа

Запускает новую процедуру оценки 360 и формирует набор респондентов.

HTTP: POST

Побочные эффекты: Изменяет состояние данных модуля assessment360.

Параметры метода

Параметр Тип Обяз. Описание
userId int да ID оцениваемого сотрудника
managerId int да ID руководителя (не должен совпадать с userId)
competentionsIds int[] да Список ID компетенций карточки
competentionAssessmentTypeList object да Карта «кто оценивает какие компетенции» (см. ниже)
isNeedManagerApproval bool нет true → статус on_approval, респонденты создаются после approve
isUserCanSelectColleagues bool нет Разрешить сотруднику выбрать коллег
colleaguesIds int[] нет ID коллег-респондентов (роль collega)
subordinatesIds int[] нет ID подчинённых (роль subordinate)
crmContacts object нет Внешние респонденты CRM (см. ниже)
activeTo string нет Дедлайн оценки (алиас: deadlineDate)
emailMessageTemplate string нет Шаблон email
smsMessageTemplate string нет Шаблон SMS
questionsData object[] нет Дополнительные вопросы на карточке (см. ниже)
tags string[] нет Имена тегов (алиас: tagIds)
newTag string нет Один новый тег (добавляется к списку)

Булевы значения принимаются как true / 1 / "Y" / "true".

Структура competentionAssessmentTypeList

Объект: ключ — тип охвата компетенций (не xmlId роли респондента), значение — массив ID компетенций.
Допустимы только эти четыре ключа. Нужен хотя бы один ключ с непустым массивом.

Ключ Тип Смысл (как в UI)
all int[] Оценивают все роли (С + Р + К + П + CRM)
employee_and_head int[] Оценивают сотрудник + руководитель (С + Р)
employee_and_head_and_subordinates int[] С + Р + подчинённые
employee_and_head_and_colleagues int[] С + Р + коллеги

Матрица: какой ключ попадает в карточку респондента по role

При создании респондентов компетенции берутся так (filterCompetenciesByRole):

Роль респондента Берётся из ключей
employee, manager, crm Все непустые ключи карты (объединение массивов)
collega только all и employee_and_head_and_colleagues
subordinate только all и employee_and_head_and_subordinates

Правила взаимоисключения

1. Один ID компетенции — один ключ (как в UI).
Каждый ID из competentionsIds должен попасть не более чем в один ключ карты. В интерфейсе у компетенции выбирается один режим охвата; дубли одного ID в нескольких ключах API не режет, но поведение становится неоднозначным — так делать не нужно.

2. Участники оценки не могут иметь две роли одновременно.
Иначе VALIDATION_ERROR (сообщение о двойной роли):

  • userIdmanagerId
  • userId не входит в colleaguesIds и subordinatesIds
  • managerId не входит в colleaguesIds и subordinatesIds
  • пересечение colleaguesIdssubordinatesIds пустое

3. Согласованность охвата с составом респондентов (рекомендуется, как в UI).

Если переданы… В карте должен быть непустой…
subordinatesIds all или employee_and_head_and_subordinates
colleaguesIds и/или isUserCanSelectColleagues: true all или employee_and_head_and_colleagues

Иначе у коллег/подчинённых после фильтра по роли не останется компетенций.

"competentionAssessmentTypeList": {
          "all": [1049],
          "employee_and_head": [1051],
          "employee_and_head_and_subordinates": [1052],
          "employee_and_head_and_colleagues": [1053]
        }
        

Структура crmContacts

Объект: ключ — ID контакта CRM (строка или число), значение — каналы связи. Контакт попадает в оценку, если указан хотя бы один phone или email.

Поле Тип Обяз. Описание
phone string[] нет Телефоны для SMS
email string[] нет Email-адреса
"crmContacts": {
          "42": { "phone": ["+79001234567"], "email": ["client@example.com"] },
          "57": { "email": ["partner@example.com"] }
        }
        

Структура questionsData[]

Массив объектов вопроса:

Поле Тип Обяз. Описание
id int да ID вопроса из справочника
name string да Заголовок
descr string да Описание
questionWho int да ID enum «кто отвечает» (UF_WHO_RESPONSIBLE)
questionReq int да ID enum «обязательность» (UF_REQUIRED_QUESTION)

XML_ID enum «кто отвечает»: all, head, head_employee, head_employee_subordinates, head_employee_colleagues.
XML_ID enum «обязательность»: not, head, head_employee, all.

"questionsData": [
          {
            "id": 15,
            "name": "Сильные стороны",
            "descr": "Опишите сильные стороны",
            "questionWho": 3,
            "questionReq": 2
          }
        ]
        

Возвращаемые данные

Объект { id, status } — ID созданной карточки и код статуса (on_approval или assessment_collection).
Допустимые xmlId статусов оценки — см. assessment360.assessment.status.list.

Обработка ошибок

Справочник кодов: error-codes.md.

Код Описание
UNAUTHORIZED Пользователь не авторизован
INTERNAL_ERROR Внутренняя ошибка сервера
VALIDATION_ERROR Ошибка валидации входных параметров
PERMISSION_DENIED Недостаточно прав для запуска оценки

Пример запроса (POST)

curl -X POST "https://{портал}/rest/{user_id}/{webhook_code}/assessment360.assessment.start.json"
          -H "Content-Type: application/json"
          -H "Accept: application/json"
          --data '{
          "userId": 15,
          "managerId": 1,
          "competentionsIds": [1049, 1051],
          "competentionAssessmentTypeList": {
            "all": [1049],
            "employee_and_head_and_colleagues": [1051]
          },
          "isNeedManagerApproval": false,
          "isUserCanSelectColleagues": true,
          "colleaguesIds": [8, 14],
          "subordinatesIds": [22],
          "crmContacts": {
            "42": { "email": ["client@example.com"] }
          },
          "activeTo": "30.06.2026 23:59:59",
          "questionsData": [
            {
              "id": 15,
              "name": "Сильные стороны",
              "descr": "Опишите сильные стороны",
              "questionWho": 3,
              "questionReq": 2
            }
          ],
          "tags": ["Q3-2026", "rest-test"]
        }'
        

Пример ответа

{
          "result": {
            "result": {
              "id": 1301,
              "status": "assessment_collection"
            },
            "error": null
          }
        }
        

См. также