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 (сообщение о двойной роли):
userId≠managerIduserIdне входит вcolleaguesIdsиsubordinatesIdsmanagerIdне входит вcolleaguesIdsиsubordinatesIds- пересечение
colleaguesIds∩subordinatesIdsпустое
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
}
}