Example: Create and Use a Survey Form

Create a new survey form on the KoBoToolbox site, and then modify the form to provide a starting view for map widgets used to collect locations.  Use the form to collect data in the field, automatically syncing collected data into your KoBo account on the KoBo servers.  See also the companion Example: Connect to Data Collected in the Field topic for a step by step example of connecting to the collected data and using it in Manifold.


See the video version of this topic in the 10 Minute Tutorial - Create and Use a Survey Form video.   See the 10 Minute Tutorial - Connect to Data Collected in the Field video for a video version of connecting to collected data.


Following is typical workflow to create a simple form in KoBoToolbox, to deploy it, and to begin using it to collect data.   This example covers basics that are useful in forms for collecting data for GIS projects.  There are very many resources on the web that teach the creation of KoBo forms, including seemingly endless numbers of YouTube videos and websites.   The KoBoToolbox site has extensive help at https://support.kobotoolbox.org/  


This example assumes we have signed up for a free KoBoToolbox account at kobotoolbox.org.   We begin at the Projects page of our Kobo Toolbox account (click on the green clipboard icon in the illustration below to get to the projects page).




Click on the New button to create a new project.





If we have saved templates or questions in our account from prior projects, we could use those.   We will build a new form from scratch.




We enter a Project Name and a Description.   KoBo invites us to pick a sector and a country, even those are not used if we do not participate in feedback.   Press Create Project.




An empty form opens.   Press the plus + icon to add a question.



Enter the prompt and press Add Question.   We are designing a form to capture information on restaurants in Chartres, so the first question in our form will be the Name of the restaurant.




We next pick the type of question.   We press Text since we will collect the name of the restaurant as text.





A new question appears in the form.   We will not use the question hint, so we leave that unmodified (the Question hint text will not appear in the form when it is used).   We press the + icon to add another question.


The next question we add will also be a text question, captioned Cuisine.   That process is not shown since it is identical to adding the Name question.   After we add the Cuisine question, we press the + icon to add another question.




This next question will be a multiple choice question.   We enter Cost on a scale of 1 to 5 as the question's caption.   Press Add Question.



We click the 1..1 Range option.




That will create a bar with values from beginning to end at a given step.  We enter a start value of 1 and an end value of 5, and a step of 1.   


Press the + icon to add the next question.



We add a Comments text question, and then we press the + icon again.     For the next question we will add a geopoint location.   


We enter Location for the question's caption.   Press Add Question.



Click Point as the question type.



We click on the Question hint and enter Click on the map to mark location.



Next, we will adjust the settings for the Location question by clicking the gear icon.



We want the location of the restaurant to be a required entry, so we check the Yes button in the Mandatory Response section.   We would like to provide flexible use of a map to specify location, so in the Appearance box we enter placement-map.   


 There is nothing in the form builder that tells us to enter placement-map in the Appearance box.   That is simply one of the common appearance options that we have learned through experience and by reading web sites discussing KoBo and ODK is an option we prefer.    For example, this web site for ODK discusses options for the Geopoint widget.   If we did not stumble across that web site we would not have known about the placement-map appearance option.


Press the X box to close the Settings display.



We now have a form that looks like it will be good to use.   In the illustration above we have also clicked on the Question hint text for the Cost on a scale of 1 to 5 question and have entered the hint 1 is very inexpensive, 5 is very expensive as a hint to help users know how to answer that question.


We press Save to save the form.



Back in the Projects page, we press Deploy to deploy the new form we have created.  



Deploying the form makes it available to any use of KoBo Collect on an Android device that works with our account, or with any web browser based form on any device.   We can get the link to the web browser form by clicking  COPY to copy the URL to this form on KoBo in our account to the Windows clipboard.  We can then send that URL to anybody who we want to be able to use the form.


If we like, we can launch the form immediately in a web browser on our computer by pressing OPEN.    That launches the form as processed by the Enketo form engine in our browser, allowing us to immediately enter data using the form.




The entire form will not fit into the screenshots used in this topic, so we will scroll through the form.   The name of the project is at the top, with the first four questions visible in the illustration above.




Scrolling further down, we can see the geopoint widget has opened with a map to allow us to pick a location.   The geopoint widget provides several means to enter a location.



  A simple way is to press the current location button.   That will read current location information from our device and enter it as latitude and longitude values.     


Another way to enter a location is to pan and zoom the map to pick a location by clicking it in the map.    We can also enter decimal latitude and longitude values, as well as altitude and accuracy values.  


If we change our minds and would like to delete a location entered, we can press the trash can icon.




When we have entered all values into the form, we press the Submit button.


The form is a good start, but we do not like the way the location widget starts off by showing the entire world.  It would be really inconvenient to enter the locations of restaurants in Chartres while walking about with our smartphone or tablet and having to pan and zoom all the way from a whole Earth view down into Chartres, every time we want to mark a restaurant.


We can do better, so we will edit the form.   We close the new tab that was opened, to go back to our projects page in KoBo.




We press the edit icon to edit our project.   





That opens the form for editing.   We click on the Settings gear icon for the Location question.



That opens the settings as we last left them.    We will enter a value into the Default Response box.





In the Default Response box, we enter the latitude and longitude in decimal degrees of the center of the default view we would like, followed by the altitude in meters and zero for the accuracy.   The text we enter is


48.447 1.488 10000 0


which picks a location near the great cathedral in Chartres, as seen from an altitude of ten thousand meters, using default accuracy.   


 There is nothing in the KoBo form builder help that discusses how to use the Default Response box to force an initial view for the geopoint widget.  We discovered how to do that after a web hunt, which revealed commentary on how to enter a default value for the geopoint location.  In effect, use of the Default Response box is a hack that forces an initial view by specifying the default location to be used for the restaurant.   This also works as a first point / default view hack when using the geotrace widget to enter lines, or the geoshape widget to enter areas.  


We press Save to save the changed form.




Back in the projects page, we press Redeploy.




To launch a live web form, we press OPEN to see how the form looks, and to experiment with entering data.




Scrolling down to the Location question in the form, we see that the map widget now shows a default view of Chartres, with a default location marked.   We can adjust that to an actual restaurant by zooming in a bit and clicking where we want the restaurant.



We zoom in to our favorite restaurant in Chartres, Le Serpente, and we click on the restaurant.  That immediately moves the default point that our hack marked directly onto Le Serpente.  





We scroll up in the form and enter the Name, the Cuisine (French, of course...), and we click the middle of the Cost bar to assign a value of 3.   That is a fair assessment of Le Serpente if you do not get carried away by their really super wine list.     We also enter some Comments.



Having filled in the form, we press Submit.




Within moments, the form reports a successful submission.   We can now move on to the next restaurant, enter text, cost, and location for that restaurant, and then press Submit again.


When using the Android application for KoBo on an Android smartphone, the form will look slightly different from the above.   However, we can always use the web browser form from any smart phone, such as Apple phones that do not have Android, and it will look and function exactly like the form seen above.


Continue on with the Example: Connect to Data Collected in the Field topic, which uses the data collected in this topic to create a map in Manifold.



How did we know the latitude and longitude of a good starting point for the geopoint widget view?  We opened Manifold with a map using a web server background and zoomed in to Chartres, noting the latitude and longitude in the status bar as we moved the mouse over likely locations.   We also could have used the Path tool to click a location and then chosen Copy Location from the context menu to copy the longitude and latitude to the clipboard.  Note that Manifold uses typical GIS practise of copying longitude and latitude, while ODK / Enketo / KoBo forms uses locations in latitude and longitude order.   When we paste a longitude and latitude location copied from Manifold or some other GIS into the Default Response box, we must remember to swap the order of the numbers pasted, so that latitude comes first and longitude second.


How did we know the altitude to use for the geopoint widget view?   Trial and error.  We first used 20000 meters and opened the form, but that was too high up.  We next tried 10000 meters and that seemed right.


What does KoBo mean and how is it pronounced?  Kobo means transfer in the Acholi language, which is a Southern Luo dialect spoken by the Acholi people in northern Uganda.   The "o" is pronounced the same as the "o" in hello.   The KoBoToolbox organization capitalizes the "b" in kobo, so Manifold does that as well when referring to the organization or brand, with lower case "b" used otherwise.


What is Enketo?  ODK technology uses the Xform standard, which has been part of the W3C web specification for a long time.   However, none of the popular browsers include built-in support for Xform.  They rely instead on form engines, like Enketo, to process Xforms that define survey forms.  Enketo is hugely popular in both commercial and non-profit apps.  


Enketo Core is a library that contains Enketo's form engine. It is not an app by itself but a minimal building block that can be used to create Enketo-powered apps.   Enketo Express is one of the apps that is powered by Enketo Core.


Esri uses Enketo Core as the form engine that powers Esri's Survey123 for ArcGIS web application. Esri was a sponsor of Enketo's libraries and paid for some features and improvements in the past.   Enketo Express is an integral part of KoBoToolbox and KoBo has historically sponsored a large chunk of Enketo Express' development. It still provides code, feedback, emotional support, and funding for features and bug fixes.


What does Enketo mean and how is it pronounced? According to enketo.org: "Enketo means survey in Esperanto.  We are not sure how to properly pronounce it in Esperanto but you could say [\in-ˈke-tō]. The first "e" and second "e" should be pronounced the same because each letter has only one pronounciation in Esperanto."  Roger that.  Enketo is a cool thing however you pronounce it.



10 Minute Tutorial - Create and Use a Survey Form - The first of two videos showing how to collect data in the field with Manifold Release 9.  We create a new survey form using the KoBoToolbox ecosystem, the same ODK/Enketo based technology used by Esri's Survey123.  We create a form to collect information and locations for restaurants in Chartres, France.  We use the form to capture data for a restaurant, automatically syncing collected data into our Kobo server.  The next video shows how to connect Manifold and automatically harvest collected data.  


10 Minute Tutorial - Connect to Data Collected in the Field - The second of two videos showing how to collect data in the field with Manifold Release 9. The first video showed how to create a survey form and to use that to acquire data for restaurant locations. This video shows how easy it is to form a live connection to the KoBo server storing our survey data, automatically linking tables and drawings into our Manifold project.  We create a map of restaurants surveyd in Chartres, France, using a satellite layer for background.  We add labels and see how when we add more data using mobile or other devices, we can refresh to automatically capture those new locations in the Manifold map.   Works in the free Manifold Viewer, too!


See Also

File - Create - New Data Source


Collecting Data in the Field


KoBo Servers


Example: Connect to Data Collected in the Field - Use the Web Server: kobo dataport to connect to KoBo servers, using your KoBo account's API key to automatically authenticate your connection to your KoBo projects on the server, with automatic linking of data from those servers as tables and drawings in the Manifold project.  Use KoBo data to create a map of restaurants surveyed in Chartres, France.   Add new data and refresh to see new locations appear in the Manifold map.