The type column in your survey sheet is the most important column you will fill in. It tells the form engine what kind of input widget to display and what kind of data to store. Mastering the core types covers the vast majority of real-world data collection needs.
Text and numbers
text displays a free-text input field and stores the response as a string. Use it for names, addresses, open-ended comments, or any response you cannot predict in advance.
integer accepts whole numbers only and will reject decimal input, making it appropriate for counts like household size or number of livestock.
decimal allows fractional values and is suited for measurements such as weight, height, or rainfall totals.
Select questions
select_one [list_name] presents a single-answer multiple-choice question — the respondent picks exactly one option from your choices sheet.
select_multiple [list_name] allows any number of answers to be selected simultaneously, storing the result as a space-separated string of choice names. In both cases, [list_name] is replaced with the name of the list you defined in your choices sheet.
On mobile, these render as radio buttons or checkboxes; on paper-style layouts, they can be displayed as dropdown menus.
GPS and location
geopoint captures a single latitude/longitude coordinate along with altitude and accuracy readings. The device’s GPS receiver does the work; the data collector simply taps a button and waits for a fix.
For areas or paths, geotrace records a line of GPS points and geoshape captures a closed polygon — useful for mapping field boundaries or community areas.
Media
image opens the device camera or photo library.
audio records sound directly from the device microphone.
video captures video.
All three store the captured file and attach it to the submission, allowing you to collect photographs of damaged infrastructure, voice recordings of oral consent, or short video documentation alongside structured form responses.
Repeat groups
begin_repeat and end_repeat wrap a block of questions that should be asked multiple times, for eg: once per household member or once per scheme type.
The data collector is prompted to add another iteration after each pass. The repeat can be fixed in count (using the repeat_count column) or open-ended, stopping when the collector indicates there are no more items. Repeat data is stored as nested records linked to the parent submission.
