Updating an existing form
Even after your form has been deployed and users have started collecting data, you can safely make and deploy many changes. You just want to be careful to understand the limitations and implications discussed below.
In the form designer, you can update an existing form by simply making changes and then clicking on Save (to save as a draft) or Save and deploy (to save and deploy for actual data-collection). Whenever you edit a form that has already been deployed, you should consider the implications discussed below. In particular, you should be careful about removing fields, renaming fields, or changing groups.
To update an existing form by editing the spreadsheet form definition directly:
Update the form definition's survey and choices worksheets as desired.
Increase the version number on the settings worksheet. If you started with a SurveyCTO form template or with one of the sample forms, then this is automatic: the version is set to a formula that automatically increments every minute. (Otherwise, you need to increment the version number yourself, taking care to keep the number of digits fixed: the version has to be a single whole number, and its number of digits has to stay the same from one version to the next. The convention is to use a ten-digit number that represents the current date and time, as in 1401130917 for 9:17AM on January 13, 2014. Alternatively, you can use 10-digit numbers like 0000000001 and 0000000024 or 3-digit numbers like 001 and 024.)
Upload the new version of the form definition to your SurveyCTO server. To do this, navigate to the Design tab, scroll down to the appropriate form in the Your forms and datasets list, and click the Upload button. (As part of your upload, be sure to include any necessary media files referenced by your form, and/or check the box to Keep old attachments.)
However you update your form, your next step will be to deploy the updated form to your users. If you're collecting data via the web, this will happen automatically: whenever a web user begins a new submission, they will always use the latest version of your form. Your mobile users who use SurveyCTO Collect, on the other hand, can click Get Blank Form to manually download the new version from your server. They can also configure Collect to auto-download new form versions whenever they are available, by going into Collect's General settings and checking Auto download with WiFi and/or Auto download with network ("network" here refers to "cellular network"). When either of these options is enabled and the appropriate connection type is available, Collect will check hourly for form updates; available updates will then be downloaded automatically, but they won't be installed until the user confirms the installation by clicking on the Install Form Updates button that appears, or by confirming the update when about to fill out an older version of the form.
SurveyCTO Collect – on mobile or on the web – will always present the latest installed version of your form when a user selects Fill Blank Form, but older versions of your form are kept to support users who had already begun submissions with those earlier versions. Whether a user was in the middle of editing an old version of the form when you updated it, or they came back much later to Edit Saved Form a form begun with an old version, existing submissions will not be affected by any of your changes. Only new submissions, begun after you updated your form, will benefit from the changes you made.
We strongly encourage you to maintain back-ups of all deployed versions of your forms, and to keep detailed notes on the changes you make. You can download the spreadsheet form definition for any form by clicking Save... Download form definition in the designer or Download... Form files in the Your forms and datasets section of the Design tab. If you're editing spreadsheet form definitions directly, one easy strategy is to add a "notes" worksheet to each of your survey forms, and to add detailed notes there as you make changes; SurveyCTO will simply ignore the extra worksheet, but it can be incredibly valuable to your team – particularly as they work to interpret collected data.
Implications for your data
SurveyCTO keeps track of each form based on its unique form ID (on the settings worksheet), so two forms uploaded with the same form ID but different version numbers are, by definition, two versions of the same form, and two forms uploaded with different form IDs are, on the other hand, treated as two different forms. Ultimately, all data is stored, aggregated, viewed, and exported based on the form ID, so the data for different form versions that share a single form ID will mix together.
When viewing or exporting your data, the view or export will be based on the current (latest) deployed version of the form available on your server. That version of the form is what will govern which fields and which groups of fields get displayed or exported. Data collected with earlier versions of the form may be missing some data (in the case of fields or groups that were added later) and may have some data for fields or groups that have since been deleted. In the former case, where fields are missing for a submission, those fields will be exported as blank or empty – unless you set the option in SurveyCTO Desktop to specify some other character or string to use for missing values. In the latter case, where data exists for fields or groups that no longer exist in the latest version of the form, that data will simply not be exported at all.
If you need to remove fields or groups from your form, but still want to access the responses they received while they were in the form, you have two options:
- SurveyCTO Desktop has a feature to export missing data that will allow you to export every single response that was ever collected for a form, regardless of if the field was renamed, deleted, or moved to a different group.
- Another option is to simply not delete any fields or groups: instead, put the number 0 in their relevance column. This will ensure that the field/group will never show up for a user filling out the latest version of your form, but the responses from prior form versions will remain available to you in all exports and in the Data Explorer.
To help you in interpreting your data, every export will automatically include a formdef_version column. For each row (i.e., for each submission), that column will contain the version number of the form definition used to fill out the form.
Every SurveyCTO export will also include a "data export report" that will help you to understand the exported data, including a summary of which form versions were used to collect that data. See Data export reports to learn more.
Finally, you will want to take some care in how you alter the groups within which your form fields reside, because SurveyCTO internally tracks each field by a full name that includes all enclosing groups. For example, a field named "age" within a group named "demographics" that is itself within a group named "module1" will be tracked as "/module1/demographics/age". If we were to collect some data for that field and then decide to shorten the name of the "demographics" group to just "demo", then we would subtly alter our form with respect to the "age" field: old form submissions would have a field named "/module1/demographics/age" and new submissions would start having a field named "/module1/demo/age" instead. SurveyCTO exports attempt to automatically merge data for same-named fields, ignoring such group-name differences, but this slows down the export process and SurveyCTO Desktop allows you to change export settings to no longer ignore groups (to speed things up). Also, this automatic merging process can't work when you change anything about the repeat groups that enclose a field – so your best bet is to avoid adding or removing groups, renaming groups, or moving fields across groups.
Changes to encryption settings
While you can change most things about an existing form, you cannot change the encryption settings. In other words, you can't change a form from unencrypted to encrypted, you can't change a form from encrypted to unencrypted, and you can't change the encryption key used to encrypt the form. To make any changes to a form's encryption settings, you will need to change the form's unique form ID on the settings worksheet so that the updated form will essentially be treated as a new form altogether. (This is because you simply cannot mix data for two form versions if those versions have different encryption settings. It would just never work.)