With SurveyCTO, much of the "workflow" of filling out survey forms depends on the design of your forms: users move through the various form fields that you have defined, filling them out, being subjected to constraints that you have configured, etc. But when you're deploying your forms on mobile devices, key elements of the workflow are controlled not by individual survey forms but instead by how the SurveyCTO Collect mobile app is configured. This help topic discusses that configuration.
You can find SurveyCTO Collect's settings in two places: from the main Collect menu, open the three-dot menu in the upper-right and choose either Admin Settings or General Settings. These settings control aspects of the user experience before, during, and after the actual filling out of survey forms.
You can control the options a user sees in the SurveyCTO Collect main menu, as well as the settings that they can edit. Once you have configured devices with the desired survey forms, for example, you might limit the main menu choices to only Fill Blank Form, Edit Saved Form, and Send Finalized Form; you might also prevent users from changing any of the settings (without a special password). See Managing device settings for details.
In the standard workflow, users run the SurveyCTO Collect app and choose Fill Blank Form to start filling out a form. However, on Android devices you can also place a shortcut to that form directly on the device's home screen, so that users can boot up their devices and start filling out a new form with just one click. The process differs a bit by device: on some devices, you hold your finger down on an empty part of the home screen, then choose "Add Shortcut", "SurveyCTO Form", and the form you'd like the shortcut to launch; on others, you click into the Apps view, then choose "Widgets", "SurveyCTO Form", and, after dropping the widget onto an empty location, select the form to launch.
You can also organize the filling out and editing of forms around specific "cases," where cases might be households, health centers, schools, etc. See the help topic on Case management for details.
While the user is filling out a form, most of the experience is controlled by the design of the form itself. This primarily involves a sequential process by which the user fills out form fields, one by one. However, Designing for easy navigation discusses more advanced navigation options open to the form designer.
Typically, the user navigates forward and backward by "swiping" with his or her finger. However, there is a Navigation setting in General Settings that allows you to enable on-screen forward and back buttons; these buttons can be used in addition to or instead of swiping.
It is also typical to enforce field constraints field-by-field, as the user progresses through each survey form: if a user enters an invalid value (e.g., an implausible age, such as 122), he or she is not allowed to continue until the entry is corrected. The Constraint processing behavior setting in General Settings allows you to override this behavior and instead defer all field validation to the point at which the survey is finalized (at the very end). For the vast majority of cases, the default – validating field-by-field – is the way to go, but it depends on your preferences.
While within-form navigation is mostly controlled by the form designer, there is an option for the user to jump from one place to another, outside the standard sequence. This option is typically used, for example, when the user realizes that an earlier response was mistaken and wishes to correct it. He or she can do so by opening the three-dot menu, choosing Go To Prompt (or clicking the button with the arrow pointing to the dot), scrolling to the desired question, and clicking on it to jump there. If you want to prevent users from being able to jump around in this way, open Admin Settings, scroll down to the User can access form entry items section, and un-check Go To Prompt.
In the standard, field-by-field sequence, the user cannot skip fields that are marked as required or proceed if an entry violates a constraint. There may be circumstances where the user cannot yet fill out a particular response and wants to move on and circle back to fix it later (e.g., the response concerns entering a child's weight but the user is awaiting the necessary scale, or the particular respondent necessary for a question is currently busy). In such a circumstance, the user can open the three-dot menu and select Skip to Next; this is effectively a shortcut for choosing Go To Prompt, scrolling down to the next question, and clicking on it to jump there. If you want to prevent users from being able to jump in this way, open Admin Settings, scroll down to the User can access form entry items section, and un-check Skip to Next.
If an interview is interrupted for some reason, the user needs to be able to save, exit, and resume later. He or she does this by clicking the back button to exit the form. A pop-up menu will ask whether to Save Changes or Ignore Changes. The latter option will delete any data entered since the form was last saved, so Collect will ask the user to confirm that they wish to exit without saving their changes. If the user instead chooses to Save Changes, he or she can resume later by selecting Edit Saved Form from the main Collect menu and choosing which form to edit. If going back to edit forms later is common in your workflow, see Dynamically naming filled-in forms for information on how to name forms in a way that makes them easier to identify and edit.
Validating, saving, and finalizing
Before a form can be submitted to the server, it must be "finalized", and before a form can be finalized, it must be free of any errors – in other words, all required responses must be entered, and all entries must satisfy their respective field constraints. This is because the survey designer's specifications for which fields are required and what constraints should be enforced is what produces "clean" data (i.e., data that is ready for review and analysis). Finalized forms cannot generally be edited, so finalization is the last (in-the-field) step of the data-collection process.
In some projects, individual enumerators finalize their respective forms upon concluding a field survey. Other projects require enumerators to save their forms and review them later, before finalizing. And some projects may require that a supervisor review the form for mistakes (using Edit Saved Form) before it can be finalized.
When the user reaches the end of a survey form, he or she is presented with a final screen that displays a Save and Exit button. That screen also has a checkbox for whether or not to finalize the form. By default, that checkbox is checked – but you can change this default by un-checking the Default to finalized option in General Settings. You can also hide the checkbox altogether by unchecking the Mark form as finalized option in Admin Settings.
When a user marks a form as finalized, SurveyCTO will validate the entire form to confirm that all required fields are complete and that all constraints have been met. If there are any problems, the user will be forced to correct them.
SurveyCTO does not validate a form or force the user to make corrections when the user saves without finalizing. You can override this default with the End-of-form save logic option in the Advanced Settings section of Admin Settings: if you choose Force corrections on Save and Exit, the form will be validated and the user will be forced to make corrections before being allowed to Save and Exit – even when he or she is not yet finalizing. Note, however, that the user will still have the option to exit the form if an interview cannot be completed by using the back button to exit and save changes. If you do not want to force corrections on Save and Exit, there are two options in the End-of-form save logic setting: (1) Don't check answers (quick save) and (2) Check answers on Save and Exit. Of the two, the "check answers" option is generally preferred, as it will record the submission's validation status for the Edit Saved Form screen.
Finally, if users jump around within a survey – and/or if you have set validation to happen at the very end rather than field-by-field – they can easily lose track of what has already been completed and what remains incomplete. While any constraint violations or missing required responses will be flagged at the very end, users may want to jump back and start cleaning up required or invalid responses earlier in the interview process. To prompt SurveyCTO to validate every field from beginning to end, users can choose Validate Form in the the device's option menu. If Collect identifies any problems, the user will be sent back to correct them. This feature allows the user to jump around the form without missing required responses. Similar to other user options, you can disable this feature if you wish: simply un-check Validate Form in Admin Settings.
Presuming that you are not pulling data directly off your devices via local WiFi sync, collected data has to be sent to your server, where it will be aggregated, de-duplicated, and made available for download, export, and/or publishing. This might be immediate (e.g., if all of your devices have sim cards and data connections), it might be nightly (e.g., if all of your devices can reach a WiFi hotspot, such as a data connection shared as a hotspot by a supervisor's device), or it might be less often. There are a few basic workflows through which forms can be submitted:
- The most standard workflow is manual: once an Internet connection is available, the user selects Send Finalized Form from the main Collect menu, checks any or all listed forms, and clicks Send Selected. By default, Collect will only list forms that have been finalized but not yet sent to the server, so the user's task is to check all, send, and await confirmation.
- There are also two options to automatically send finalized forms: in Collect's General Settings you can choose Auto send with WiFi and/or Auto send with network ("network," in this case, meaning a cellular data network). If you check one or both of these options, Collect will automatically attempt to send all finalized forms to the server whenever the allowed connection type is available. (There are also two "auto update" settings that can be used to automatically check for and download form updates – which are particularly useful when forms include pre-loaded data that changes from time to time.)