Guide to CATI sample workflows

This article supports the computer-assisted telephone interviewing (CATI) starter kit guide.

This article provides a foundational understanding of the features and form design strategies that our computer-assisted telephone interviewing (CATI) sample workflows depend on. Please keep in mind that our sample workflows are just starting points and generic suggestions. SurveyCTO is customizable by nature, so we encourage you to design alternative workflows that meet your project's specific needs.

This article is structured as follows:

  1. Overview
  2. CATI sample workflows components
  3. Deploying CATI sample workflows
  4. Using CATI sample workflows
  5. Choosing the case management or non-case management option
  6. CATI sample workflows catalog

Click on any of the above if you would like to jump into a specific section.

1. Overview

Whether you use the basic or advanced case management sample workflows, you'll be using the most automated, scalable approach to CATI on the SurveyCTO platform, which can be deployed using mobile devices or web forms. For each workflow, the dynamics of searching, viewing and selecting a respondent to call can be done in two different ways:

  1. Using the case management functionality.
  2. Using the table-list field plug-in, without case management. In this guide, we will call this solution “non-case management”.


For a deeper discussion on which option to choose, see section 5. Choosing the case management or non-case management option.

Regardless of whether you use case management or not, it is combined 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).

CATI running on SurveyCTO Collect for Android is made possible through the phone-call field plug-in (read more about field plug-ins), which allows the user to call the respondent directly via SurveyCTO Collect.

For more information on initiating phone calls using SurveyCTO, or if you plan on using iOS devices or web forms instead, see the article on initiating calls.

2. CATI sample workflows components

All CATI sample workflows include the same components. Some might include more than one of each component type (e.g. field plug-ins, server datasets), but their role in the workflow is the same. Below, we illustrate the components you will find in SurveyCTO workflows, as well as their role and description:




  Component Description
 form_definition.png Form definition The form definition contains the actual questions that you want to ask each respondent and enumerator. It also contains references to the server dataset in order to pull information about each respondent.
 plugin.png Field plug-ins Field plug-ins that expand form functionality. These are the ones used in CATI sample workflows:
  • phone-call: gives your form the ability to call the respondent directly via SurveyCTO Collect.
  • launch-sms: ability to launch the SMS app.
  • table-list: creates a table with content of your choice. It is used to display the respondents in the non-case management workflow.
 dataset_definition.png Server dataset definition The server dataset definition specifies how the server dataset should be set up. It defines which fields (columns) should be in the dataset. It also contains references to the form so that it can correctly receive data from form submissions. For case management, it specifies that the server dataset is for cases, i.e., a cases dataset.
 dataset_records.png Server dataset records These are CSV files that contain sample records to populate the server dataset. Each record (row) is a respondent, and has a unique identifier. In case management, each record (row) is a case.

3. Deploying CATI sample workflows

For any CATI workflow you want to test, download a copy of each resource included in the resources folder specified in the relevant sample workflow support article. Then, follow the instructions to deploy form definitions and server datasets.

If you are using a case management sample workflow, and you already have a "cases" dataset, you can create another with a different ID, other than "cases". This is possible even on a server with one team. However, before a user will be able to interact with a cases dataset with an ID other than "cases" (the default), it will need to be assigned a custom user role that specifies the new, non-default "cases" dataset ID. To create a user role, visit the User roles and permissions section of the Configure tab of the server console. Be sure to specify your custom cases dataset ID under the Please provide the dataset ID for case management (optional) option during role creation. From there, under Your users, create data collection-only user accounts with the custom user role you've just created.

The sample cases dataset we're providing in our sample workflows have the ID "cases", but you can modify it to deploy it with a different ID. Open the "cases.xml” file 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 in your custom user role (e.g. "cases_project_name"), save the file and deploy the dataset definition. Make sure all mentions to the “cases” dataset ID in the form definition are replaced by the new ID, particularly inside pulldata() expressions (e.g. "pulldata('cases_project_name', 'data', 'id_key', ${caseid})")..

Lastly, note that as part of the team creation process, a custom cases dataset can be specified for all user roles created for that team.

4. Using CATI sample workflows

4.1 Viewing, searching and selecting a case/respondent

In the front-end dynamics, this is where the case management and non-case management differ when using the CATI workflow. In the guide below, we illustrate the difference across approaches:

4.2. Filling out the form and submitting data

Fill out the form as you normally would, noting which label parts are instructions, and which parts are the script to read out during the call. Whether an interview is successfully conducted or not, in this workflow, the idea is that you finalize and send a form submission to the server for each contact attempt. Every time you submit a filled form to the server, some of your form data gets published to the server dataset, including:

  1. The time and status of attempts
  2. How many calls have been made so far
  3. If you made an appointment to call back, the appointment details are also captured

You will be able to access this latest data using the latest version of the server dataset.

4.3 Keep the server dataset up-to-date

4.3.1. On the server

When you are able to submit data, the server dataset on the server 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. 

You might see a button under the server dataset on the Design tab to force an update. Use this during testing.

4.3.2 On SurveyCTO Collect

With SurveyCTO Collect 2.70.6+ installed, tap on the 3 dot icon in the top right, enter General Settings, and enable the following options:

  • Auto download with network and Wi-Fi
  • Auto download on demand (new)
  • Auto install downloaded update (new)

Consult the best practices for configuring and securing enumerator devices for more details.

Once enabled and connected to the internet, you'll benefit from these improvements:

  1. The cases list will be updated as soon as it is opened (without needing to be refreshed), and will display a "last updated" date and time.
  2. When you open a form, SurveyCTO Collect will check for a new version of the form, and for updates to attached datasets, which it will then download and install. When the form opens, if anything was updated, the user will be informed, displaying a time stamp.

With these new advantages, your enumeration team won't need to manage the process of updating the case list, the form, or attached pre-load data.

What if your team won't be working on a reliable internet connection?

Advanced offline feature
This workflow can work 100% offline using offline dataset publishing. Advanced offline features are not part of a standard subscription. Get in touch to activate advanced offline functionality.

If advanced offline features are not part of your subscription, while the cases dataset won't update without an internet connection, the workflow will still work well. The only consequence is that enumerators will miss the information that is published to the server dataset, most importantly:

  • Any respondents’ availability or consent recorded
  • Any new phone numbers recorded
  • Any information recorded related to phone numbers (e.g. owners)

Most of the time, you will just need to update this information at the end of the day or less frequently. Otherwise, there is a workaround to record and remind enumerators of important information. If your team might be working offline at times, train them on the use of Finalized Forms, and be sure to design useful dynamic instance_name values for your forms, reminding the user of what happened in each prior call attempt for that respondent.:

  1. With case management, below the Fill Blank Form section, you'll see a Finalized Forms section as you start finalizing forms, whether you have been able to send them to the server or not (i.e. this works without an internet connection).
  2. Without case management, you will be able to see all finalized forms from all respondents under the Send Finalized Form menu. This is where completed submissions are saved until you are able to send them. If they were already sent, click on the three-dot menu in the upper-right, tap on Change view and select Show Sent and Unsent Forms.


The Send Finalized Forms section does not appear when using web forms, but web forms require that you work online, so it always uses the latest form version and latest server dataset.

5. Choosing the case management or non-case management option

We have been mentioning that it’s possible to use the same sample workflow with and without case management, but how to choose between them? Importantly, case management functionality offers direct features that might be beneficial for your data collection, so you should choose this approach if:

  • Your data collection can be made simpler and more intuitive spread across more than one form. Divide your questions logically across more than one form for simpler, thematic data collection. Each case can have multiple forms assigned and displayed in any order of your choice.
  • Data collection across several forms should be done in a particular order. Forms in a case management workflow can be designed to disassociate themselves from a case, assigning the next form in a sequence.
  • You want to take advantage of direct features that support case assignment, via usernames and user roles. While the non-case management workflow can assign cases to users, it involves a few tricks in the form design.

If the above statements are not true, in most cases, using the table-list field plug-in inside a form design can be a good option. Especially if your form design is short, there's no strict need to use case management.

6. CATI sample workflows catalog

Basic CATI workflow

(click above)

Advanced CATI workflow

(click above)

The simplest possible CATI system. It doesn't take many situations into account:

  • Nº of phone numbers per Respondent: 1
  • Nº of attempts: up to 3

Deals with more complex and realistic scenarios:

  • Nº of phone numbers per Respondent: up to 5, including ability to register the “best contact number”.
  • Nº of attempts: up to 5. In each attempt, ability to call to more than one phone number in case of no response.


Complementary workflows
  1. Replace a case respondent: allows you to replace one respondent to another automatically whenever they are not available or don’t consent to the phone survey.
  2. Language matching: helps your phone survey to handle multilingual contexts. Besides registering the preferred language of the respondents, pulls data concerning enumerators’ spoken languages and reassign cases when necessary.


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


Article is closed for comments.