# Опросник
IDnGO позволяет создать шаг верификации — опросник (QUESTIONNAIRE
), чтобы ваши пользователи могли отвечать на вопросы или заполнять поля данных, которые вас интересуют.
# Настройка
Опросы настраиваются с помощью конструктора опросов в разделе «Опросники» Дешборда.
Внимание:
id
каждого элемента в опросе должен быть уникальным. Если вы планируете изменять структуру опроса, нельзя повторно использовать существующие id
.
Поля элемента questionnaireDef
Название | Тип | Обязательно | Описание |
---|---|---|---|
id | String | Да | Идентификатор опросника. |
title | String | Нет | Название опросника. |
desc | String | Нет | Описание опросника. |
sections | Array | Да | Разделы опросника. |
Поля элемента sections
Название | Тип | Обязательно | Описание |
---|---|---|---|
id | String | Да | Идентификатор раздела. |
title | String | Нет | Название раздела. |
desc | String | Нет | Описание раздела. |
condition | String | Нет | Условие, которое заставляет раздел отображаться в зависимости от value указанного sectionId.itemId={options.value} (см. пример). |
items | Array | Да | Элементы опросника (поля данных). |
Поля элемента items
Название | Тип | Обязательно | Описание | Значение |
---|---|---|---|---|
id | String | Да | Идентификатор элемента. | Любой уникальный идентификатор элемента. |
title | String | Нет | Название поля данных. | Любое значение строки. |
desc | String | Нет | Описание поля данных. | Любое значение строки. |
type | String | Да | Тип поля данных. | См. ниже. |
required | Boolean | Нет | Обязательность поля данных для заполнения. | true или false |
format | String | Нет | Формат поля данных с проверкой. | min:3 , max:9 (задает минимальное/максимальное количество символов), email и т.д. |
placeholder | String | Нет | Заполнитель для текстового поля данных. | Любое значение строки. |
options | Array | Нет | Массив значений для выбора. | [{"value": "someValue", "title": "Да", "score": 0}] |
condition | String | Нет | Условие, которое заставляет элемент отображаться. | sectionId.itemId={options.value} (Пример: 1-Section.1-2=someValue ) |
Доступные типы элемента type
параметра items
Значение | Описание |
---|---|
text | Текстовое поле. |
textArea | Расширяемая текстовая область. |
date | Поле даты (в формате mm/dd/yyy ). |
dateTime | Показывает календарь для выбора даты и времени. |
bool | Одиночный чекбокс. |
select | Использование массива options позволяет создать радиокнопки. |
selectDropdown | Использование массива options позволяет создать выпадающий список значений, которые можно выбрать. |
multiSelect | Использование массива options позволяет создать множественный выбор чекбоксов. |
countrySelect | Выпадающий список доступных стран. |
fileAttachment | Позволяет загрузить файл пользователя в качестве вложения. |
Поля массива options
Название | Тип | Обязательно | Описание | Значение |
---|---|---|---|---|
value | String | Да | Значение, которое вы получите через API, как выбранную пользователем опцию. | Любой уникальный идентификатор элемента. |
title | String | Да | Название опции, которое будет показано пользователю. | Любое значение строки. |
score | Double | Нет | Добавляет значение к общему баллу опросника (score ). | Двойное значение. |
# Получение результатов
Чтобы получить результаты прохождения опросника, воспользуйтесь эндпоинтом получения данных пользователя.
Элементы с типом fileAttachment
содержат значение imageId
, которое вы можете использовать для получения загруженного файла при помощи этого запроса.
Пример
{
"id": "5e9a35d30a975a656d67d473",
"createdAt": "2020-04-17 23:03:47",
"clientId": "yourClientId",
"inspectionId": "5e9a35d30a975a656d67d474",
"externalUserId": "random-userId",
"requiredIdDocs": {
"docSets": [
{
"idDocSetType": "QUESTIONNAIRE",
"questionnaireDefId" : "ExampleQuestionnaire"
}
]
},
"review": {
"elapsedSincePendingMs": 302957,
"elapsedSinceQueuedMs": 25213,
"createDate": "2020-04-17 23:05:46+0000",
"reviewDate": "2020-04-17 23:10:49+0000",
"startDate": "2020-04-17 23:10:24+0000",
"reviewResult": {
"reviewAnswer": "GREEN"
},
"reviewStatus": "completed"
},
"lang": "en",
"type": "individual",
"questionnaires": [
{
"id": "ExampleQuestionnaire",
"sections": {
"bankDetails": {
"score" : 0.0,
"items": {
"2-1": {
"value": null,
"values": null
},
"2-2": {
"value": null,
"values": null
},
"2-3": {
"value": null,
"values": null
},
"2-4": {
"value": null,
"values": null
},
"2-5": {
"value": null,
"values": null
},
"2-6": {
"value": null,
"values": null
},
"2-7": {
"value": null,
"values": null
},
"2-8": {
"value": null,
"values": null
}
}
},
"withInstitution": {
"score" : 0.2,
"items": {
"3-1": {
"value": "e-wallet",
"score" : 0.2
}
}
},
"fileAttachments": {
"score" : 0.0,
"items": {
"firstFile": {
"value": "2046918100", //imageId
"values": null
},
"anotherFile": {
"value": "2046918189", //imageId
"values": null
}
}
},
"accountDetails": {
"score" : 1.4,
"items": {
"1-2one": {
"value": null,
"values": null
},
"1-1": {
"value": "Legal Name LTD"
},
"1-2": {
"value": "two"
},
"1-2two": {
"value": "cyberity.ru"
},
"1-4": {
"value": "no",
"score" : 0.4
},
"1-5": {
"value": "no",
"score" : 1.0
},
"1-email": {
"value": "api@cyberity.ru"
},
"1-country": {
"value": "GBR"
}
}
}
},
"score" : 1.6
}
]
}
# Изменение языка опросника
Вы можете изменить тексты опроса для разных языков (параметр lang
при инициализации SDK). Для этого необходимо предоставить JSON-структуру опроса с переводами в объекте questionnaires
. Каждый объект внутри .questionnaires
соответствует опроснику по его id
.
Пример
"questionnaires": {
"questionnaireTranslate": { //id of a questionnaire to change texts
"title": "I18n questionnaire title",
"desc": "I18n questionnaire description",
"sections": {
"section1": { //id of a section to change texts
"title": "I18n section title",
"desc": "I18n section description",
"items": {
"item1": {
"title": "I18n item title",
"desc": "I18n item description",
"options":{ //In case of multiselect options
"value1": "I18n option title 1",
"value2": "I18n option title 2"
}
}
}
}
}
}
}
# Сброс опросника
Для удаления всех активных данных опросника у конкретного пользователя используйте параметр QUESTIONNAIRE
в соответствующем запросе.