Computer-assisted telephone interviewing (CATI) starter kit

This guide is an evolving work-in-progress. View this article as a logged in user (if you're not a user now, start an account for free) and click on the "Follow" button in the top right to get updates on changes to this starter kit.

This article is accompanied by the sample form and dataset definition and data in this folder. Instructions on how to use them are in this article.

Phone interviews have some advantages over face-to-face interviews, including cost-effectiveness, amongst others. Importantly, you might be considering computer-assisted telephone interviewing (CATI) as an alternative to computer-assisted personal interviewing (CAPI). With the COVID-19 health crisis, CATI is becoming increasingly important. In this guide, you will learn how SurveyCTO can also be used as a CATI solution through a full, working sample CATI system that you can try now.

1. Overview

This starter kit will focus on the most automated, scalable approach to CATI on the SurveyCTO platform, which can be deployed using mobile devices or web forms. This solution uses case management in combination with publishing form data into server datasets, and pre-loading to organize the process of attempting to contact respondents and interview them, automatically discontinuing contact attempts when appropriate (e.g. after X number of failed call attempts, after a wrong number, etc). 

While we feel this starter kit is an ideal approach to CATI on SurveyCTO, it is not the only approach. Existing projects that are pivoting to CATI might have enumerators working on paper printouts of respondent phone numbers, making manual records of call attempts. Such approaches likely not to scale well, but are an option, depending on your resources.

2. Future improvements

As stated above, this starter kit is an evolving work-in-progress, which will be greatly improved by soon-to-be released field plug-in support, scheduled for part of the imminent release of SurveyCTO version 2.70. The SurveyCTO team is developing a number of useful field plug-ins. A highlight will be a phone dialer field plug-in which can automatically populate an Android device's phone dialer application with a phone number stored in a form.

Once available, you'll be able to upgrade your SurveyCTO server to 2.70 on the manage subscription page. Follow this article as noted above to get notified about improvements to this resource.

Not only that, but we'd like to collaborate with interested SurveyCTO users who want to deploy CATI. If you are deploying CATI using SurveyCTO, and have feedback on how this resource can be improved, please write to

3. Deploying this starter kit on your server

Download a copy of each of the resources for this starter kit from this Google Drive folder. Download copies to your local computer. In the case of the Google Sheet form definition, either save a copy to your Google Drive or download a copy (File > Download as > Microsoft Excel). 


3.1 Form design

Deploy the form design first. Click on a "+" button on the left of the Design tab, then Upload form definition, and pick the form design from either your computer or Google Drive.

Pick the right sample form version:

V1: The most basic sample form, with instructions to manually dial each pre-loaded phone number.

V2: Adds the call-phone-number field plug-in for launching the Android dialer app (learn more about field plug-ins). Field plug-ins work only with SurveyCTO Collect 2.70 for Android (learn about upgrading). You must attach the field plug-in to the V2 form in order to be able to launch the dialer from Android.

3.2 Cases definition

Deploy the cases dataset definition second. Click on a "+" button on the left, then Add server dataset, and choose the New dataset from the definition option. Pick and upload the "cases.xml" file.

Note that server datasets must have unique IDs and by default, a single-team server only has one cases dataset with the ID, "cases". 

If you already have a "cases" dataset that you can't delete to free up the "cases" ID, you won't be able to use case management unless you create a new team on your server. When you create a new team, the setup process will lead you to create a new, unique cases dataset ID. The "cases.xml" file can be edited in a text editor, changing the ID of the dataset, which can be found between the <id> tags: <id>cases</id>. Change "cases" to the new unique cases dataset ID configured for the new team, save, and try to deploy the dataset definition in the new team's group.

3.3 Seed your cases dataset (optional)

To deploy this starter kit for quick testing, upload the "cases.csv" file into the cases dataset. Click on Upload under the Cases dataset's title, and pick and upload the "cases.csv" file. This will get you started with 5 example cases.

However, you can also create your own test cases, or correctly format your own real-life case data. Use the example cases data CSV file as a template. Remember that when the users column is blank, all SurveyCTO Collect users share that case (read about case management for more details).

4. Test away!

Start using the case management system! In the SurveyCTO Collect app, enable Manage Cases from Admin Settings. In web forms, login at this address:

First open the Manage Cases menu, pick a case, then open the "CATI Starter Kit" form. From there, fill the form as you see fit. However be mindful of the following:

4.1 Keep the cases dataset up-to-date on the server

The cases dataset will update automatically, but not necessarily instantly. It can be close to instantaneous, but it can take up to 5 minutes, depending on how busy form publishing is. 

However, you might see a hyperlink on the server dataset on the Design tab to force an update. Use this during testing.

4.2 Keep the cases dataset up-to-date on SurveyCTO Collect

Very importantly, users must install form updates between form submissions with the same case. Various pieces of data that make the CATI system work depend on the form "seeing" what happened in the previous form submission with that case.


To install form updates, you can do either of the following:

  1. Download the form again from the Get Blank Form menu.
  2. Install automatically downloaded form updates. To enable, turn on the Auto download... options in General Settings, and open the Install Form Updates menu when it appears, and install the updates that appear.
  3. In addition to point 2, while you're in General Settings, enable Display send/receive status. This option adds a synchronization button on the main menu that you can tap to download form updates which can then be installed. It will also submit finalized forms.
Note: Refreshing the case list is not the same thing as installing a form update. Only an installed form update will contain new data that can be pre-loaded into the form.

5. Some notes on understanding the solution

Between the form design and cases dataset, there are a lot of moving pieces. A write up comprehensive enough to discuss each part that is important would be very long, so instead of a detailed write-up, we're providing some notes to help you understand both. To help you understand how to implement CATI even better, we'll be improving it over time, so do click on the Follow button in the top right corner.

To understand the form and cases dataset publishing workflow, we suggest you pay attention to the following:

  • In the form design, each of the calculate fields is annotated in the label property. These annotations are intended to provide you with descriptions of what’s happening behind the scenes, since the label will not show up in the actual form for a calculate field. Read through these descriptions to understand what each does.
  • The form data (which you can view in exports) will help you understand the final result of each of the calculations in the form.
  • To understand the relationship between the form and the cases dataset, click on the hyperlinked form name following Published from: under the cases dataset's title on the Design tab. This reveals the field mapping, which is a list of published form fields (on the left) linked to server dataset columns (on the right). With a sense of what is stored in the cases dataset, you'll start to get a sense of what will be passed into new blank forms in this starter kit.
  • The cases dataset's contents can also be viewed between form submissions to see what changed. On the Design tab, click on the Edit button for the cases dataset, and you'll see a table of values. These can be edited right here. Alternatively, you can also click on Download, Download data to export cases dataset for outside viewing in CSV format. 


To reiterate, when you submit data using the form, that data updates a row in the cases dataset. That's how, for example, the "num_calls" (the number of calls made) increases by 1 with each form submission. For a SurveyCTO Collect app user to see such changes in the cases dataset in the form, and for a case to progress according to specification, the user must update their local copy of the cases dataset so those changes are reflected when the form is opened again.

6. Things you may want to customize

CATI systems can be complex, and everything in this starter kit is customizable. However, here is a short, non-exhaustive list of things you might consider changing in the existing form design: 

  • You'll probably want your cases to be uniquely assigned to different enumerators. Give enumerators unique user IDs on your server, and place those in the users column of the cases dataset to create a unique assignment.
  • The value in the "stop_at" field is the maximum number of calls to be made, before declaring a respondent unreachable. It is set at 3 now, but you can revise it upward.
  • The "reschedule_no_ans" field sets the default call back time, if no appointment to call back was made. Right now that date and time is "tomorrow at 9am".

Note: 9am is stylized as 09-00 instead of 09:00 so that when editing the CSV in Excel, it is not auto-formatted by accident.

7. Monitoring your project's progress

To help get you started, we developed an example Google Sheets CATI dashboard for you, to illustrate one approach to maintaining oversight of survey progress and adherence to protocol. Google Sheets is one of many tools you can use to make a dashboard, and is a good choice, given SurveyCTO's support for publishing to Google Sheets

For more resources on dashboards, check out our blog posts on Google Sheet dashboards here and here, also our guide to integration with Microsoft Power BI.

8. Continuing your work

You might consider some other augmentations to your CATI system. For example, Zapier can be used to generate calendar events to help organize work, similar to what is discussed in this blog post 

If you have further questions specifically about this resource, paid users can submit a support ticket for fast, professional support on customizing this starter kit.

Do you have thoughts on this support article? We'd love to hear them! Feel free to fill out this feedback form.


  • 0
    Amrik Cooper

    This guide has been improved since it's launch! See the new heading 7 for an example Google Sheet dashboard for tracking CATI.

    Do you have feedback on this guide? Write to


  • 0
    Amrik Cooper

    This guide has new improvements! We've added version 2 of the accompanying sample form that uses a field plug-in for launching the phone dialer on Android devices.

    Field plug-ins are a feature of SurveyCTO 2.70, which is now available! Learn more in our latest blog post.

    Do you have feedback on this guide? Write to

Please sign in to leave a comment.