Import Data From SurveyCTO

DevResults integrates fully with SurveyCTO, a mobile data collection tool. Surveys in SurveyCTO can be imported to DevResults as a data table. In this article:

Note: To enable the SurveyCTO integration, a site owner must go to Administration > Settings and enable SurveyCTO integration from the list of available features.

Create data table

From any page on DevResults, go to Data > In Data Tables. (You can also find the same page under Program Info > Data Tables.)

Click (+) New Data Table, name the table, and select Import from SurveyCTO. Then click Next

You will now be prompted to enter information on the SurveyCTO form you would like to connect to.

You will need to enter the server name (this is the prefix to your SurveyCTO URL as shown in the example below), the Form ID (the name of the SurveyCTO form you want to link to), as well as your SurveyCTO email and password. If you're unsure about any of these fields, please refer to SurveyCTO's documentation and then reach out to us at help@devresults.com.

Once you've entered this information, click Next.

You can now configure the titles and types of columns you want to import, de-select fields you don't want to import, and choose to either create the table and import data or create the table without importing data.

Click (+) Create Data Table to complete the import process.

Refresh existing table

When new information has been collected on SurveyCTO, you can refresh the data table by clicking on the right-hand gear icon and clicking "Import from SurveyCTO."

DevResults does not store external passwords, so you will be prompted to enter your SurveyCTO password once again. 

You will then be asked to review the new and updated rows of information before you can complete the import. Click Import data once you've reviewed the new information.

Set up automatic import of data from SurveyCTO to DevResults

1. In DevResults, create an API key that will be used by SurveyCTO to log into DevResults. The key should belong to a permission group that has View & Edit permissions for the Data Table Manager role; sometimes it makes sense to create a group just for the new API Key. Take note of the "API Key" field (you do not need the "API Secret" field).

2. In SurveyCTO, create webhooks for each table that you'd like to automatically update. 

  • Point the webhook at the relevant API endpoint for each table. You can find the API endpoint at the bottom of the Design tab for each SurveyCTO-linked data table. The format for the API endpoint is: 
https://{site}.devresults.com/api/dynamictables/{dynamicTableID}/webhook
  • For each table, select the fields/columns that should be published to DevResults (some or all of the table).
  • For each webhook, add authorization. Use a JSON text summary and call it DevResultsApiToken. The value that you send is the API Key value from the first step.

Currently, SurveyCTO is not able to send any error messages if something is incorrect, so if the data does not import as expected, please reach out to us at help@devresults.com and we will investigate.

Edit information in a SurveyCTO-linked DevResults data table

You may add/import, edit, or delete data in a SurveyCTO-linked data table just as you would any other data table. You may also add, edit, delete, or reorder columns, though any changes you make will not automatically synchronize with SurveyCTO. 

Note: Changes made to the data as well as the structure of a SurveyCTO-linked data table will not be replicated or automatically synchronized with the survey or data in SurveyCTO. Instead, you should only make changes in DevResults to reflect changes that you have already enacted in your SurveyCTO server. When adding a new column to a SurveyCTO-linked data table, be sure to list the name of the SurveyCTO field in the External Field column on the DevResults data table design tab. 

Each row of SurveyCTO data in DevResults is associated with both a DevResults KeyValue and a SurveyCTO ExternalKeyValue. This ExternalKeyValue will let you identify the same row of data in DevResults and SurveyCTO. 

You can look up specific rows in SurveyCTO by clicking on the Monitor tab, and selecting "Look up by key" for your form.


Didn't answer your question? Please email us at help@devresults.com.