In this article
31 Oct
Platform | Version |
Windows | 2024.10.13 |
Android | 2024.10.6 |
iOS | 2024.10.6 |
Improvements
When creating/updating/duplicating and then completing a respondent via respondent redirect mechanism, user is taken to the main survey list page instead of the Respondents tab
9 Oct
Platform | Version |
Windows | 2024.10.3 |
Android | 2024.10.3 |
iOS | 2024.10.10 |
Improvements
Prevent Server (CAWI) Respondent from being Overwritten by CAPI (CAPINoOverwrite)
By default, when a respondent assigned to CAPI, any changes made on CAPI will overwrite the respondent stored on server unless the server respondent state is set to Complete.
In certain situations where it is necessary to prevent server respondents from being overwritten by CAPI, it is now possible to bypass this behavior for specific respondents. To prevent a server respondent from being overwritten by CAPI, add the following reserved variable and set the value to “1” (true):
SetRespondentValue("__CAPINoOverwrite", "1");#
During CAPI synchronization, this variable value is received from the server and if enabled (“1”), CAPI will prevent the local respondent from being uploaded to the server.
If the respondent is opened on CAPI, the user will receive a message indicating that the “CAPINoOverwrite is enabled for this respondent and cannot be uploaded”, preventing the CAPI user from continuing to make changes to the respondent.
Merge Respondent Data from CAWI
CAPI App now supports the ability update specific respondent variables even for respondents that have been resumed on CAPI. Normally once a respondent has been started/resumed on CAPI, it will not be overwritten by CAWI during a synchronization.
To indicate respondent variables that should be considered for merging, create a separate “tracking” variable using the naming convention [variable]__changed.
For example:
• Main respondent variable: q1
• Tracking variable: q1__changed
When updating the value stored in q, also change the value for q1__changed to the current datetime in UTC.
SetRespondentValue("q1", "newvalue");
SetRespondentValue("q1__changed", new Date()).toISOString());
During CAPI synchronization, CAPI receives the latest respondent from the server and for each variable with the name “XX__changed”, CAPI compares the datetime between that received from the server and the same respondent stored locally on CAPI. If the server datetime is newer then CAPI assigns the corresponding variable with the same value as received from server. Another way to express this:
If server.q1__changed > capi.q1__changed
• capi.q1 = server.q1
• capi.q1__changed = server.q1__changed