Survey Solutions has several components that communicate with each other at different stages of the survey lifecycle.
See glossary for interpretation of some of the terms, which may have different meaning in other systems.
Survey Solutions Components:
- Interviewer (Android application)
- Supervisor (Android application)
- Tester (Android application)
- Headquarters (HQ) (Web application)
- WebTester (Web application)
- Designer (Web application)
These components may communicate with other components of the system.

In the regular data collection flow these are common steps:
- A new
Questionnaireis created onDesigner. - The
questionnaireis tested using AndroidTesterandWeb-Tester. Both apps communicate with theDesigner. 3.TheHeadquartersapplication connects toDesignerand downloads a questionnaire. - New assignments are created at
Headquarters. - The
InterviewerandSupervisorapps synchronize withHeadquarters, send and receive data (multiple occurrences). - The
InterviewerApp synchronizes with theSupervisorApp.
Note that not all surveys rely on supervisors using Supervisor App on a mobile
device, correspondingly it is common for the interviewers to synchronize directly
with the server.
Synchronization
I. Interviewer and Headquarters (HQ)
A. Initial step after clean installation
After installation user inputs synchronization endpoint (server URL), login name and password.
- The
Interviewer Appsends request toHeadquarterswith login and password provided by user.- In case if user was not found in the system, password didn’t match the user, or the user was locked the
HeadquartersreturnsUnauthorizedresponse. - If user’s credentials were successfully validated the server generates a new
Tokenand returns it to theInterviewer App. - This
Tokenis used for further authorization withHeadquarters.
- In case if user was not found in the system, password didn’t match the user, or the user was locked the
- The
Interviewer Apprequests the list ofWorkspacesfrom HQ and selects the first one in the received list. - The
Interviewer ApprequestsHeadquartersto check if current user has a registered device.- If device is not linked (registered) to user the
Interviewer Appregisters the current one.
- If device is not linked (registered) to user the
- The
Interviewer Appchecks compatibility withHeadquarters, providing device ID and communication protocol version of the application.- The
Interviewer Appalso supplies application version in header as agent identifier. - The
Headquartersvalidates all parameters and replies to theInterviewerwhether synchronization is permitted. - Reasons that don’t allow to continue include:
- user has a different device, linked to profile;
- application should be updated to the latest version;
- the Interviewer application has a later version than the server and cannot be synchronized.
- If compatibility check is successful the
Interviewer Appsaves the list of workspaces. - The
Interviewer Apprequests details about the interviewer andHeadquarterstenant Idand saves details.
- The
B. Routine synchronization
After login to the Interviewer App, the dashboard is displayed for the selected workspace. On pressing the Sync button the synchronization starts, which includes the following steps:
- The
Interviewer Appchecks the login information sending request to the server- User details are requested and updated;
- Application sends request to the server to verify that sync is permitted;
- Current supervisor is requested from server and updated;
- Application sends statistics to
Headquarters.
- The
Interviewer Apprequests public encryption key if doesn’t not exist in the storage - The
Interviewer Apprequests mobile device settings from the server and updates values for:- partial synchronization,
- web interview URL template,
- parameters for automatic location capture (period and accuracy).
- If partial synchronization is enabled, the
Interviewer Appupdates interviews with changes fromHeadquarters. - The
Interviewer Appuploads calendar events created or updated locally (on this mobile device). - The
Interviewer Appstarts to uploads interviews to theHeadquarters: those that are in the statusCompleted, those switched by the interviewer to CAWI mode, those unsynced yet if partial synchronization is enabled. For each interview the following items are sent in this order:- image files;
- audio files;
- audio audit files;
- interview data.
- The
Interviewer Appsynchronizes assignments:- The list of assignments is requested from the
Headquarters. For each of the assignments to be downloaded the application checks if a local copy of the questionnaire is present and downloads it if necessary. - The
Interviewer Appdownloads assignments, updates and created new assignments if needed.
- The list of assignments is requested from the
- Downloading Interviews:
- The
Interviewer Appgets the list of interviews from the HQ. Then checks the local list of interviews, removes and creates interviews one by one as necessary. - For every interview the questionnaire is downloaded if it doesn’t exist and then the interview data.
- The
- Questionnaires synchronization. The list of questionnaires is retrieved from the server. Local questionnaires (stored on the mobile device) are updated according to the list received from the
Headquarters. This may involve local data deletion and updates as required. - The
Interviewer Appdownloads calendar events. - The company logo is updated (if it was changed).
- The
audit logis sent to theHeadquarters. - Application sends statistics to
Headquarters.
II. Interviewer and Supervisor
Routine synchronization
III. Interviewer and Supervisor
IV. Headquarters and Designer
The Headquarters provides UI to enter login and password to connect to Designer and validates them by calling the Designer API. If validation succeeded, it then calls the Designer API to get the list of the questionnaires that this user has access to. Once a particular questionnaire is selected to be imported and import is requested, the following actions are performed:
- The user’s credentials to access the Designer are validated.
- The Headquarters prepares to import questionnaire in exclusive mode (note that the same questionnaire cannot be imported simultaneously).
- The Headquarters requests the Designer API to get questionnaire providing information about what version of the questionnaire it supports. If the questionnaire in the Designer is erroneous (has errors) or the version of questionnaire on Designer is higher that Hadquarters supports error will be returned. The following results could be returned:
Unauthorized (401)- User is not authorized to perform this action any more. Might be locked by admin during the import.Forbidden (403)- User has no access rights to this questionnaire. Shared status was revoked by owner.Upgrade required (426)- The Designer doesn’t support old version of Headquarters.ExpectationFailed (417)- Questionnaire contains new features not supported by the Headquarters.PreconditionFailed (412)- Questionnaire contains errors.NotFound (404)- Questionnaire not found. Might be deleted from the server.ServiceUnavailable (503)- Server error occurred.RequestTimeout (408)- Response was not received within defined timeframe.
- If the previous step succeeded Headquarters requests backup archive and questionnaire preview files for the questionnaire (in every translation).
- Headquarters starts assignments migration if the corresponding option for assignments migration was requested during the questionnaire import.