Previous Next

It is best to always route data through your SurveyCTO server because it will safely aggregate data from multiple devices; the server will eliminate duplicate submissions, back up the data, ensure that changes in form versions are safe, and provide a consistent body of data to those who download and export it. In short, routing data through your SurveyCTO server is the safest, least-complicated way to collect data.

Other data flows are possible, however, which partially or fully bypass the need for a server.

Instead of pushing data from devices to the server (i.e., into the cloud), you can instead push data from devices directly onto laptops or desktop computers. Once on a computer, that data can be exported – and it can also be pushed to the server, or even to other computers that are aggregating the data in lieu of the server. Because data can pass from devices to computers and then from computers to other computers and/or the server, many workflows are possible.

Platform limitations
Only SurveyCTO Collect on Android supports the local WiFi sync option discussed here. It's not supported on iOS or the web. More about platform limitations...

Using local WiFi networks for offline data transfers

To share data while offline (i.e., without an Internet connection), there is one key requirement: devices and computers must be connected to the same WiFi network. This means that there must be a WiFi router that acts as a connection between the relevant devices and computers.

Most Android devices and many computers can act as a "WiFi hotspot," which means that they can act as a WiFi router for other computers and devices. Thus, rather than having a separate WiFi router to which your devices and computers connect, you might be able to use an existing device. However, please note two caveats:

  1. Some devices and computers will not act as WiFi hotspots unless they have an active Internet connection that they can share. Macs running newer versions of OSX have this property, for example: they will not act as a hotspot unless there is a working Internet connection. Computers running Windows 7 and later, however, can use Microsoft Wireless Hosted Network to create a hotspot even when offline, and many Android devices do not require an Internet connection. Key takeaway: if you are planning to use a computer or mobile device as a hotspot, be sure to first test its capacity to work without an Internet connection.
  2. A device acting as a WiFi router will not itself be able to send or receive data; if you use a mobile device as a hotspot, you will not be able to transfer data from the SurveyCTO Collect app on that particular device. In other words, if a device is acting as the router, it can't also participate in the WiFi network it creates.

Ultimately, your best and easiest option may be to buy one or more little "travel routers" that can act as local hotspots. For example, the HooToo Wireless TripMate Nano Travel Router costs $20 (at the time of writing) and provides an easy-to-use USB hotspot; the computer hosting the hotspot and any nearby devices can share the same WiFi network and thus transmit forms and data to each other. And innumerable other WiFi router options exist, of course.

Using SurveyCTO Desktop as a local server

When you are operating offline, the software that receives, aggregates, and stores your data is SurveyCTO Desktop, the same software you usually use to download and export data. In advanced offline uses, Desktop receives data directly from devices, aggregates it, and stores it – then exports it and/or forwards it along.

To act as a local server:

  1. Connect your computer to a local WiFi network.
  2. Run SurveyCTO Desktop.
  3. From the Offline form tools menu, select Local WiFi sync and click Start WiFi.
  4. If your OS or firewall software issues a pop-up warning, be sure to authorize (or "whitelist") Desktop so that it can receive HTTP connections. If you do not authorize it, your OS firewall may prevent any incoming connections from reaching Desktop. (In your firewall configuration, you will need to add an inbound rule to allow the SurveyCTO Desktop application to accept incoming connections on port 7968, and you will need to delete any rules explicitly blocking it from accepting incoming connections.)

Devices and other computers can then exchange forms and data with your computer – as long as the local WiFi sync remains running in Desktop (i.e., do not close Desktop or stop the WiFi sync until you are done transferring data).

When Desktop is acting as a local server, it can provide any form definition available in its local storage for form updates or Get Blank Form requests. These form definitions become available in local storage in one of three ways:

  1. Anytime Desktop is used to download data from the SurveyCTO server, the latest form definition is also downloaded and installed in local storage.
  2. Anytime a device or computer sends submissions directly to Desktop over a local WiFi network, it also sends its version of the form definition. If there isn't already a copy in Desktop's local storage – or if the local copy is older – then the version from the device is automatically saved.
  3. Anytime you validate a form definition using Desktop's offline-validation support and then click the button to save the form in local storage, the newly-validated form is installed locally.

The last of these options, offline installation of a new form definition, allows for easy revision of survey forms even when you're in the field.

Connecting devices to the local server

Platform limitations
Only SurveyCTO Collect on Android supports the local WiFi sync option discussed here. It's not supported on iOS or the web. More about platform limitations...

To get forms and/or send data to a local server:

  1. Connect your device to the same local WiFi network as the computer acting as your local server.
  2. Run the SurveyCTO Collect app.
  3. From the main menu, press your device's option button and choose Local WiFi. Collect will automatically find the local server and connect to it (see the sub-section above for how to start a local server).
  4. Once connected, click Get Blank Form and/or Send Finalized Form.
  5. When finished, click the option at the top of the main menu to disconnect from the local server.

Please note that if you have the Collect settings enabled to automatically download form updates and/or automatically send finalized forms, Collect will auto-download and auto-send as soon as you connect to the local server.

Please also note that submissions successfully sent to the local server will disappear from the Send Finalized Form list. To see your completed forms listed again – and to have the option to re-send them to a different server – press Send Finalized Form, click your device's option button, choose Change View, and then select Show Sent and Unsent Forms; all previously-sent submissions will then re-appear in your list of finalized forms.

Exporting data

Once you have received data in Desktop's local storage, you can export that data to review it. Just run Desktop, choose Sync, then select Local storage as the data source and Export as the data destination. You will be able to export data as usual – with the full range of export options supported by Desktop – only your data will be exported directly from local storage without first retrieving new data from the server.

Connecting other computers to the local server

You can also push data from one computer running Desktop to another computer running Desktop:

  1. Connect your other computer to the same local WiFi network as the computer acting as your local server.
  2. Run SurveyCTO Desktop and choose Sync.
  3. Select Local storage as the data source to transfer data from local storage.
  4. Select WiFi as the data destination.
  5. Continue to select the forms for which you would like to send data, and click to run the sync. Desktop will automatically find the local server and connect to it (see the sub-section further above for how to start a local server).

All selected form data that is in local storage will be sent to Desktop, which will automatically add the incoming submissions to those it already has in its local storage (automatically eliminating duplicates).

Sending aggregated data to the SurveyCTO server

If you wish, you can also push data from a computer's local Desktop storage up to the SurveyCTO server. This is the opposite of the regular data flow, but you might be using the server to aggregate data collected by one or more laptops, to implement a review and correction workflow, or to publish data to an outside system, for example. To push data from local Desktop storage up to the server:

Your SurveyCTO server name
Your server name is the x in the x.surveycto.com you see in the browser address bar after you log in to your server console.

  1. Connect your computer to the Internet.
  2. Run SurveyCTO Desktop and choose Sync.
  3. Select Local storage as the data source to transfer data from local storage.
  4. Select Server as the data destination and choose and/or log in to the server in order to continue.
  5. Select the forms for which you would like to send data, and click to run the sync.

A word of caution

Many complex workflows are possible involving many moving parts. Once you begin using advanced offline support, there become more opportunities for people to become confused and for data to become misplaced. You should think carefully about how to track your data so that nothing gets lost or misplaced.

There are redundancies built into the system (e.g., after being sent, copies of sent submissions remain on devices), but you can also add redundancies of your own. For example, if you have two laptops in the field, you might aggregate data from your devices onto one laptop, then also send that data to the second laptop – just in case. Both Desktop and the server will automatically avoid duplicating data, so you don't have to worry that pushing overlapping data will ever cause any kind of problem.

Finally, be sure to always make back-ups of any data that you download and/or export.

Previous Next