При проведении онлайн-опросов бывает нужно идентифицировать респондентов или подставлять в анкету какие-то данные из базы. Давайте посмотрим, как это сделать в проекте Веб-опрос.
Если требуется только сохранять в массиве ID респондента, добавьте к рабочей ссылке на опрос параметр extid, создайте для каждого ID свою ссылку и отправьте полученные ссылки респондентам, например:
- https://do
.survey-studio.com/s/ef87c2da?extid=794035 - https://do
.survey-studio.com/s/ef87c2da?extid=884751 - https://do
.survey-studio.com/s/ef87c2da?extid=416592 - и так далее.
В результате анкету с одним и тем же ID можно будет прерывать и продолжать в другое время, а после завершения интервью система не даст заполнить новую с этим же ID.
В качестве идентификатора можно использовать как число, так и текст. Длина не должна превышать 64 символа. Помните, что чем проще ID, тем легче будет его подобрать или ошибиться и заполнить чужую анкету.
Чтобы не дать заполнить анкету по ссылке, в которой нет ID, в проекте нужно поставить флаг Запрещать запуск анкеты, если отсутствует уникальный идентификатор контакта.
Вместо флага в проекте можно добавить скрипт перед показом в первый вопрос анкеты.
if (isTesting() || isValidation()) return ok;
if (respondent.extId === undefined) {
return exit('Отсутствует идентификатор в параметре extid');
}
Если в массиве, кроме ID, нужна дополнительная информация о респонденте или в анкету нужно подставлять какие-то данные, то файл с этой информацией необходимо загрузить в базу контактов. Как минимум, файл должен содержать столбцы с ID респондента и номером телефона. В качестве телефона можно использовать как реальный номер респондента (если требуется), так и любые числа, не короче 5-ти цифр. При загрузке полю с ID нужно будет поставить тип значения Внешний ключ.
Чтобы добавить в массив информацию из базы контактов, при его выгрузке нужно поставить флаг Выгружать дополнительные поля с данными из базы контактов. Если требуется подставлять данные в анкету, это можно делать, как обычно, через объект contact.
Чтобы запретить заполнение анкеты для ID, которых нет в базе контактов, нужно поставить флаг Запрещать запуск анкеты, если в базе не найден контакт по extId/extPhone в свойствах проекта (вкладка Главная, блок Флаги).