Взаимодействие с онлайн панелью

Для организации опроса в интернете иногда используются различные онлайн панели, из которых респонденты переходят в анкету. Обычно после завершения опроса необходимо вернуть респондента в панель, указав статус завершения интервью: успешное или респондент не прошёл по скринеру или квоте. Как же это реализовать в SURVEYSTUDIO?

У представителя онлайн панели необходимо получить ссылки, по которым требуется осуществлять переход при завершении интервью. Допустим, они такие:

  • http://example.com/?rid={ID респондента}&status=1 - успешное интервью,
  • http://example.com/?rid={ID респондента}&status=2 - не прошёл по скринеру,
  • http://example.com/?rid={ID респондента}&status=3 - не прошёл по квоте.
Поскольку в эти ссылки нужно подставлять идентификатор респондента, его необходимо сначала получить из панели. Для этого нужно добавить в рабочую ссылку на опрос параметр, к которому панель должна добавлять свои идентификаторы: https://do.survey-studio.com/survey?pkey=ef87c2da&rid={ID респондента}.

Если эти идентификаторы нужны в массиве, добавьте в начало анкеты текстовый вопрос со скриптом перед показом:

if (parameters.rid === undefined) return exit('Отсутствует идентификатор в ссылке');
Q.openValueTxt = parameters.rid;
return answered;

Далее в последний вопрос анкеты нужно добавить скрипт после ответа, который будет осуществлять переход по ссылке успешного интервью:

var link = 'http://example.com/?status=1&rid=' + parameters.rid;
return exitAndRedirect(link);
Порядок параметров в ссылке не имеет значения, поэтому для удобства написания скрипта их можно поменять местами.

После последнего вопроса необходимо добавить ещё один, можно информационный, с любым текстом (он не будет отображаться на экране) и с номером, например, 998. В его скрипт перед показом нужно добавить аналочичный скрипт, но со ссылкой для непрошедших скринер:

var link = 'http://example.com/?status=2&rid=' + parameters.rid;
return exitAndRedirect(link);
Теперь во всех вопросах скринера, завершающих интервью если респондент не подходит, нужно сделать переход к Q998, вместо завершения.

Если в проекте квот нет, на этом можно остановиться. Но если они есть, и панели требуется сообщать, что респондент не прошёл по квоте, то необходимо в глобальный скрипт «Обработка» добавить такой скрипт с соответствующей ссылкой:

if (isQuotaReached()) {
    var link = 'http://example.com/?status=3&rid=' + parameters.rid;
    return exitAndRedirect(link);
}
Так как по умолчанию интервью, превысившее квоту, не сохраняется в базу данных, скрипт «Обработка» выполняться не будет - переход по ссылке не сработает. Поэтому нужно включить сохранение таких интервью, добавив в глобальный скрипт «Подготовка» строку:
enableSaveWhenQuotaReached();

Теперь при любом исходе интервью респондент будет возвращён в панель с определённым статусом, если только во время опроса он не закроет браузер.