See how easy it is to create a Questionnaire in DataWinners. Use a template from our Template Library. Copy an existing questionnaire. Create Advanced Questionnaires with XLSForms. Collect media files (images, sound, videos, signatures) in your questionnaires.

Guides and Tutorials

Create Questionnaires

With DataWinners, you can create an unlimited number of Questionnaires quickly and easily. Every Questionnaire has a unique code. Data Senders start their SMS message with this code in order for DataWinners to identify which Questionnaire the Data Sender is answering. This code can be a combination of numbers and letters.

Yes. You can build your questionnaire in any language. Questions may be entered in any language or script (for example, Thai or Khmer). It is up to you to determine what language best apply to your Questionnaire and Data Senders.

Questionnaire Builder

Click to enlarge

No. It’s not possible with a simple Questionnaire; all questions are mandatory.

If you want to make a question optional, use XLSForm to create your Questionnaire and do not put “yes” in the required column.

Yes. With Advanced Questionnaires (XLSForm), you can include skip logic and many other advanced features such as repeated set of Questions, required and hints, cascading select, grouping, and more.

Skip Logic

Click to enlarge

Yes, you can use branching logic using XLSForm. To learn more on XLSForm, please read the XLSForms Documentation or watch our video tutorial.

For data validation, you can set constraints in your Questionnaire, based on answers previously provided by your Data Sender, in the same Questionnaire.

Yes. With DataWinners’ advanced Questionnaires, you can collect media files, including photos, videos, audio files and signatures.

Watch our tutorial videos to learn more:

  1. How to Collect Media Files (how to insert the media files questions in the Questionnaire)
  2. How to Collect Media Files (using the DataWinners Smartphone App)

You can create your Questionnaire in any language and even using scripts. You just need to input your questions label in your language or script of your choice.

If you plan to use the SMS channel, you can also use any language for the automatic reply SMS.

Simply select GPS Coordinates as an answer type when creating your Questionnaires.

GPS Location

Click to enlarge

Yes. Questionnaires are editable.

To do so:

  1. Select your Questionnaire on the Dashboard page or on the Questionnaires page
  2. Then click on the “Questionnaire” tab
  3. Make the changes you want and click on “Save”

No. You cannot deactivate a Questionnaire. However, you can unlink all the Data Senders from the Questionnaire so they won’t be able to send in data anymore.

To do so, please follow the steps below:

  1. Click on the Contacts button,
  2. Search for the Questionnaire you want to unlink the Data Senders from,
  3. Select all the Data Senders linked to it,
  4. Select “Remove from Questionnaire” in the Actions dropdown list,
  5. Confirm

Once your Questionnaire is created on DataWinners, you have three options to share it with your Data Senders:

  1. SMS: print the form and share it during the Data Senders training or print as pdf and send via email,
  2. Web: register your Data Senders’ email address in the Data Senders database. They’ll receive an activation email allowing them to access the Questionnaire(s) you granted them access to,
  3. Smartphone/Tablet: register your Data Senders’ email address in the Data Senders database. They’ll receive an activation email allowing them to access the Questionnaire(s) you gave them access to. Then they just need to download the form onto their mobile device.

No. As DataWinners use a flat database, this not yet possible. But below a few workarounds to help you with your data analysis:

  1. You can merge your data in Excel using the unique IDs as an identifier for all your Questionnaires.
  2. If you use Smartphone to collect data, you create one unique Questionnaire combining your different Questionnaires, using XLSform. You can have multiple groups for your different Questionnaires. The Data Senders can skip the sections they do not have to fill out.

Yes. In DataWinners, you can duplicate your existing Questionnaire and edit questions inside according to the new Questionnaire specific needs.


I would like to create a new Questionnaire but when I’m logged in, I can only see the data submission page from which I can either make a submission or import submissions

You are logged in as a Data Sender, not a User. Please contact your account administrator.


You can use “count()” when you want to know and display the number of times a series of questions is repeated.


Click to enlarge

There should be a space before and after the period “.” The syntax should read as follow: if(($(technique) = ‘none’), . >=0,. >0)


When you want to refer to a question or choice name, use brackets { } instead of parenthesis ( ).

The syntax should read as follow: not(${technique} = ‘none’)


This constraint doesn’t allow a certain combination of answers – if one of the answers is “I don’t Know” it can not be combined with “House Tap” or “Bottled Water” or “Other”. Remaining combinations are allowed.

Example: not(selected(., ‘dk’) and (selected(.,’house_tap’) or selected(.,’bottled’) or selected(.,’other’) or selected (.,’private_tap’) or selected (.,’public_tap’) or selected (.,’neighbor_tap’) or selected (.,’rain_collect’)  or selected (.,’river’) or selected (.,’spring’) or selected (.,’ref_station’)))


No. It’s not possible to reference a variable for two different forms. DataWinners uses a flat database, and each Questionnaire is independent.  If you want to use calculation, for example, the variable you reference should be in the same XLSForm file.

You can limit the number of answers which can be selected for a multiple choice question by adding the following syntax in the related constraint column:


In the above example the maximum is 3.


For example: With two variables a1 and a2, where you want a2 to be lesser than a1, you can enter the following syntax in the constraint column of the a2 question:

. < ${a1}.

Note: When you want to refer to a specific question, always put the name between {} and preceded by a $.


In your DataWinners account, click on the Questionnaire, then on the blue tab « My data ».The Questionnaire code will be displayed in the URL.


To link an Identification Number type to an XLSForm, follow these steps:

  1. Create your Identification Number Type,
  2. Enter “dw_idnr” under Type column
  3. Enter the Identification Number type name under the “constraint” column

Screen Shot 2016-01-22 at 2.00.12 PM

XLSForm is still in beta version in DataWinners.

A future release may have ability to retain data after a questionnaire has been updated.

“Autocomplete” is a widget used in XLSforms. It helps you find the Identification Number or the choice you need without a lot of scrolling.

When the Data Sender starts typing the code or the name of a choice represented by an Identification Number or select_one question type, the options that contain those contiguous letters or digits will be predicted and displayed. By using “autocomplete,” your Data Senders won’t be slowed down by long lists anymore. Learn more >>




This widget helps the Data Sender find an Identification Number or choice faster through a long list.
In your Identification Number or select_one row, enter “autocomplete” in the “appearance” column.


If you have a Questionnaire with a cascades list containing hundreds or thousands of choices, it slows down the loading process and has impact on your device’s performance. The External Selects function helps these lists load more quickly. It works the same way as cascades sheet but with an enhanced performance.

To use External Selects:

  1. For the first level, use select_one for the prompt type and list your “States” in the choices sheet as usual (Example: State),
  2. For each lower level:
    • In the survey sheet, use select_one_external for the prompt type (Examples: select_one_external counties, select_one_external cities),
    • Enter the reference to the cascade level in the choice_filter column (Examples: state=${state}, state=${state} and county=${county}),
    • In the external_choices sheet, enter your choices as shown below. A column is required for each level (Examples: state, city)

Download this external select form template for a sample scenario.

You can use the concat (concatenate) function to combine values from previous questions in the Questionnaire.

Example: Combine the interviewer code with the date and time the interview:



Yes. You can do so by using the “constraint” logic in XLS Upload.


Click to enlarge


You can use the following syntax under the constraint column: .>= 18 and .<= 100

Note: The spaces between the periods and the “<” and “>” signs. In this example, the answer must be a number between 18 and 100.


XLSForm: How to constrain a date to be an interval between two dates

To apply a constraint between two dates, enter the following syntax in the column constraint :

int(format-date(.,’%Y%m%d’)) > 20151231 and int(format-date(.,’%Y%m%d’)) < 20160201
Replace the integers by your own dates using the yyyymmdd format.


To calculate the number of months between two dates, enter the following syntax in the calculation column:

int((${today} – ${baby_birthdate}) div 30.44)

The result will be displayed in months. If you want to calculate the result in years, use 365.24 instead of 30.44


To match the year of birth (date) with the age (integer):

  1. Insert a calculate row after the age row, and enter format-date(today(),’%Y’) – ${age} under the “calculation” column
  2. Insert a date row under the calculate row and enter format-date(.,’%Y’)=${name_of_the_calculation_line} under the “constraint” column

You can use “integer” as type and put the following constraint in the “constraint” column:

.>=9100000000 and .<9500000000


To limit the number of digits that can be entered, proceed as follow:

  1. Use “text” as “type”
  2. Enter the syntax regex(.,’^[0-9]{6}$’) in the “constraint” column to limit at 6 digits
  3. Enter “numbers” in the “appearance” column


  1. Put 0 as name value for No and 1 for Yes
  2. Add a calculate row to calculate the total of “yes”
  3. Add another calculate row to generate the scoring
    if (${total_score} = 4, ‘100%’, if (${total_score} = 3, ‘75%’, if (${total_score} = 2, ‘50%’, if (${total_score} = 1, ‘25%’, ‘NA’)))
  4. Display the result in a note.














No. Currently, only one answer is permitted in cascading select.

There is an empty “cascades” sheet in the XLSForm file. Delete the cascades sheet, save the file and upload your file again.

You get this error message in your smartphone because “field-list” appearance cannot be used in subgroups.

Your image attachment is missing.

Please proceed as follows:

  1. Tap on “Edit Saved Questionnaire”
  2. Select the Questionnaire
  3. Identify the image question
  4. Re-attach the image by browsing in your image folder
  5. Submit your Questionnaire
  • A Poll is a one-question survey whereas a Questionnaire can contain one or more questions.
  • A Poll doesn’t require a Questionnaire code and Poll recipients can submit their answer directly. No specific answer format is required.
  • For a Poll, no training for the Data Sender is needed as the instructions are directly in the SMS or broadcasted and any answer is allowed.
  • Poll answers can be submitted using SMS only.

A DataWinners Poll is ideal when you need to collect a little bit of information from a big group of people; when you want their short answers to a straightforward question: “Did you get the textbook shipment?  Please respond YES or NO.” You can also broadcast your open-ended question through other channels (for example: radio) and collect SMS responses: “Please send us information about any illegal poaching in your area.”


Click to enlarge

You have two options:

  1. Send the Poll by SMS to a specific group of recipients. Only the recipients of the SMS can respond.
  2. Broadcast the Poll through other channels outside of DataWinners (Radio, TV shows, Billboards, etc.). Anyone can send an SMS response.
Poll Other Channels

Click to enlarge

When you send the Poll by SMS, you’ll be asked to define your Poll recipients. You can select Groups you’ve created on the Contacts page or Contacts linked to Questionnaires.

Later on, you can choose to send your Poll to more people by managing your Poll Recipients from the My Poll Recipients tab.

Poll Recipients

Click to enlarge

Yes. From the Poll tab, select your language from the dropdown list. If you want to add a new language, you can define it in the Languages page. To learn how, click here.

Reply SMS

Click to enlarge

No. You may only have one active Poll at a time. To create a new Poll you must first deactivate your current Poll.

To extend the duration of your Poll, follow the steps below:

  1. Click on the ‘Poll’ tab
  2. Click on ‘Poll is active from to edit the period
  3. Click on ‘Change’

No. You’ll need to deactivate the active Poll first before creating a new Poll. A Poll is immediately activated when you create it, so you cannot set a future date for your Poll start date.

If you broadcast your Poll through other channels (example: radio), then anyone can submit answers. While this Poll is active, DataWinners will first examine the Questionnaire Code at the beginning of the SMS. If DataWinners does not recognize the code, it will consider the Submission a response to the open-ended Poll. As such, during the active period, if your Data Sender submits an incorrect code in response to another Questionnaire, DataWinners may incorrectly place this submission in the Poll database. To minimize this risk, select the minimum number of active days you require for your Poll.

The person who sends the SMS receives “Error, Questionnaire code is incorrect”. The Submission is logged under the “Failed Submissions” page.