Category Archives: Uncategorized

Version 17.10

Filtering Notifications

When you add a notification, such as an email alert or forwarding of data to another server, you can now specify a filter so that only matching results generate the notification.

In the above example a PDF of the results will be emailed if the name contains the characters “smith” somewhere and the age is greater than 25.  You can get more details on the syntax of these filters by clicking on the (i) icon to the right.

Note that the name and the age has also been included in the body of the email along with the PDF for the results.  You can embed any question answer in either the subject or the content of the email.

Identifying Objects in Images

Artificial Intelligence has now been build into Smap!  In the parameters of an oversight form you can now add “auto=yes” to questions that refer to an image.  That image will then be processed by Amazon Recognition to identify objects automatically.  For an example of how to process an image in an oversight form refer to this article.

Bugs Fixed

  • In the monitor there is a separate column for “Upload Errors”.  This just shows the number of errors that have been seen on phones or webforms when users attempted to upload results probably to a deleted or blocked survey.   Usually the administrator will fix the problem and then the user tries again and this time the data is sent.  You don’t need to worry about this number just make sure that all results end up being sent from all the phones successfully.
  • Previously if you renamed a form part way through data collection you would see two rows of upload counts.  One for surveys uploaded to the old name and one for the new.  Now only the latest form name is shown along with the total of uploads for that form.

version 17.09 – Translating and Transcribing Data

Translating and Transcribing

In this release we have improved support for translating answers to questions from one language to another.  For example from French to English.  You can use the same feature to facilitate transcribing to text from an audio recording or a video.

Specify the source parameter in an Oversight form

For example if you have an audio question called q2 and you want to write the translation into a column called audio_transcription, then you can write your oversight form as shown below.

Oversight Form

The parameter source=q2 has been added to the audio_transcription column.  Clicking on a record in managed forms then shows a page similar to the one below where the user can play the audio and write the translation.

You can also reference:

  •  a text question in order to convert from one language to another.
  • an image question to write commentary on an image
  • and a video question in order to add commentary and a transcription.

Other Parameters

Parameters for oversight forms are new in version 17.09.  Other parameters are:

  • rows=a number.   This sets the number of rows to show when entering data for a text column.   In the above example the number of rows were set to 3.  However you can click on the bottom right-hand corner of the text box to make it smaller or larger at any time.
  • form_data=off  or form_data=on.   This is applied to a new row type called settings.  When set to off the form data for the selected record is not displayed which is useful when you are focussed on referencing specific questions.

Monitoring of Submitted Results

A new result type of “Upload Errors” has been added.  The background to this is that previously a change was made to the monitor to show errors that occur when the results of a survey are submitted and are reported back to the phone or webform.  Commonly these are due to a survey being blocked or deleted. However these errors are generally fixed directly by the users.  For example they will see an error on their phone because the survey is blocked.  The survey will then be unblocked and the user will re-submit.  All is good.  However the monitor page will then show 1 succesfull upload and 1 error.

It is still useful to see if there have been any errors in uploading results.  The new type of “Upload Errors” shows these.  These errors are just informational and should align with errors reported on the phone.   The “Errors” column will continue to show uploads that were accepted by the server but then  for some reason failed to get applied to the database.  These are the sort of errors where you might say “where is my data?” and are more significant.

The second change made to the monitor page is to always show the latest name of a survey.  Previously if you submitted 10 results to a survey then changed its name then submitted 10 more you would see two rows for the two survey names with 10 uploads each.  Now you will see one row and it will be for the latest survey name and have 20 uploads.

Other Changes

  • Add hyper links to video and audio answers when generating PDFs of submitted data.
  • When filtering by data values in field analysis the list of values to select in now sorted alphabetically
  • Added “nochoose” to video and audio questions. Previously this only worked for image questions.  If set then when completing a form with image, audio or video questions the user will not be prompted to add media from the phones sdcard.
  • Added another column called “upload Errors” to the monitor page that shows the status of submitted results.  In a previous change we had started showing

Range Questions

Questions that ask the user to select from a range of values using a slider have been included in odkCollect and are now also available in fieldTask.

Three range questions in a group

Support for these question types has just been added to Smap Server version 17.08.03 which will be deployed onto hosted servers next Saturday or earlier.

Add a range question to your survey using the online editor. You then have to specify 3 parameters in the parameters property.

  1. start
  2. end
  3. step


start=1 end=5 step=1

start=-2.0 end=2.0 step=0.5

If you add a decimal point to any of your parameters then the collected data will also be decimal. Otherwise it will be integer.

The Survey Edit Reference document has been updated to include range.  Range questions are not supported in the xlsForm editor yet.

version 17.08

This release adds support for odk parameters.   Actually currently there is only one parameter supported and that is max-pixels which can be used to reduce the size of photographs taken in a form.


Open the form in the online editor and select “Parameters” as the property you want to change.  Then find an image you want to reduce.  Then set the max-pixels parameter to the size you want.  For example:


The number is the maximum length in pixels of the long edge of the image.


  1. As well as SmapServer 17.08 you will need fieldTask version 5.06
  2. There is no support in xlsForm for parameters yet hence you will need to enter the parameter in the online editor as described above.
  3. You can consider parameters and appearance as doing very similar things .  In the past appearance was used for many of the capabilities that odk will now be adding using parameters.
  4. Help is available in the reference guide.


version 17.07

Automatic Phone Refresh

When there is a change to a survey, or the data that a survey references, then these changes can be pushed automatically down to all the affected phones.

Changes automatically refreshed include:

  • New survey added to a project (See video)
  • Survey Edited (See video)
  • Survey deleted
  • Survey Blocked
  • Update to a dependent survey. For example if a survey gets reference data from the results of another survey then updates to those results will result in the phone being refreshed (See video)
  • Change in phone users settings, ie added to a new project or new security settings
  • Tasks: added, deleted, assigned, unassigned, properties changed
  • Project set up changed. For example setting to “Task only” (In version 17.09 +)

You can specify automatic refresh in the organisation settings or in the phone settings for Wifi, Cellular or both. The organisation settings, if set on, will override the settings on the phone. Note these settings have been used for a while but previously would only automatically submit finished results to the server. Now they also automatically download new versions of the form.

Timing Data

The latest version of odkCollect and FieldTask 5 can collect the time taken to complete each questions.  You can now enable forms for this timing data and then view this data through the API.


Other New Features

  • “Acknowledge” question type added to the online editor.  This creates a question with a single checkbox.
  • Updated the Kobo API to return data from sub forms as well as the main form.  Using this link (user: gplay, password: gplay) returns a list of the available forms.   For the form titled “Sub Forms” you will see there is an extra URL returned that allows you to select the sub form of data.  To support sub forms additional parameters have been added such as “start_parkey”.  For details refer to the documentation.
  • Upgraded FieldTask to include odkCollect 1.8.1.   This is considered a major release so it has been given the version number 5.0.  The reason being that this update no longer supports versions of Android up to 4.04.  Hence FT4 will be kept available for older versions.  FT5 will be in google play shortly and will then be progressively rolled out onto servers.


Version 17.06

The june release is now available.

Repeat in Webforms using repeat count

New Features

  • Webforms has been updated to use the latest version of enketo-core, some new capabilities include:
    • Images are included in the choices that can be filtered using choice filters or cascading selects
    • Using repeat counts on begin repeats is really cool.  Especially if you make the repeat count dependent on another question.  Repeats are shown without buttons to add or remove and the number of repeats will change as you change the repeat count.
    • Plus lots of other styling improvements
  • When you create  PDF from results using a template, if you specify a text field with the name of an image question then a hyper link will be added.  If you are not using a template then you can add the appearance “pdfhyperlink” to show the link instead of the image itself.

version 17.05

Here it is finally. There was no release of the Smap server in March or April.

New Features

  • Integer and decimal results exported to XLSX files are now in number format in the spreadsheet.  Dates are in date format.
  • A “display_name” parameter has been added to questions.  This allows you to override the question name with something more user friendly for exports.
  • The “Unique Key” that you can specify for a form is now included in PDF exports.  You can also set the key value to be a serial number starting from an offset. For example:
    • serial(100)  will create keys of 100, 101…
    • REFserial(10) will create keys of REF10, REF11…
  • The charts on Browse Results and Managed Forms have been substantially modified, (this is still beta code)
    • Maps can now be added
    • Charts are added by the user and then saved with the survey.  This is in contrast to the previous approach where charts were added automatically for all questions causing performance problems on large surveys.
  • When exporting data to PDFs, for location questions you can specify an appearance of pdfzoom_xx, where xx is a number between 1 and 21.  This will show a map of the data at the specified zoom level.  The higher the number the smaller the area covered by the map.
  • Notification emails can now include survey name, instance name, unique key, user and device anywhere in the subject or body of the email, use:
    • ${surveyname}
    • ${instancename}
    • ${hrk}
    • ${username}
    • ${device}
  • Email notifications.  If you set up a notification in managed forms then an email will be sent to the address of the user to be notified

Bug Fixes

  • Updating of user ident is now prevented.  If you tried to change your logon id in the past you would not have been able to logon.  This is because the logon id is combined with the password to create the real encrypted password.  The only way to change your user ident is to create a new user and delete the old one.

Smap at AWS Summit – Berlin 18th May 2017

Yes Berlin which I am very excited about, even more so as I am attending the AWS summit there.   This will be an opportunity to get inspiration for Smap 2.0, the second generation of Smap software. I will be updating this post regularly up until the end of the Summit to record some of my thoughts on where the Smap architecture is headed.

Smap 2.0

  • A new system that will work with the existing Mobile Data Collection Servers and Phones
    • Runs in cloud
    • React.js front ends
    • GraphQL services where possible
    • Serverless back ends
    • Single sign on across mobile devices and servers
  • Will be used to deliver notifications and process management capability to the existing servers
  • Manage notifications to and from mobile phones.  For example notifying a phone that a new version of a survey is available
  • Plus much more

AWS Summit

None of the following comments represent design decisions for Smap 2.0 they just take the concepts from a topic and construct some potential scenarios.

Summit Demo: MXNet on the edge.  How to build a deep learning model that works on edge devices

A Smap server could be considered an edge device.  The data collected could feed a machine learning application to provide real time insight into data and quality assurance.

The data processed by the machine learning could include the time taken to answer each question in order to  identify poorly complete surveys.  The collection of question timing data is currently being added to ODKCollect and fieldTask in a joint Smap / ODK project.

The demo at the AWS summit is going to use a Raspberry Pi as the edge device to recognise art objects.   A mobile phone running fieldTask could also be an edge collection device interacting with Smap 2.0.  This is how the phone will get notifications to refresh forms etc.

MXNet is a neural network application from Apache which can be trained in order to recognise patterns.

Summit Demo: Utilize Powerful Visual Search and Discovery Capabilities with Amazon Rekognition

Rekognition is one of several AI services provided by AWS

  • Rekognition: Image recognition
  • Polly.  Text to speech
    • Lex.  Speech and text recognition and language understanding

It looks like there are quite a few sessions on AI at the summit and adding AI capabilities to Smap is something we are considering so this could be useful.

Version 17.02

New Features

  1. Using the Browse Results and Managed Forms pages, you can now filter between a begin and end date.  Any date in the data set can be used for this filtering.  This allows reports to be created for specific data ranges such as a month.
  2. Export to XLS from Browse Results and Managed Forms now creates a worksheet for each chart.  The data in these worksheets can be selected to recreate the chart in the spreadsheet however you also have all the flexibility of the spreadsheet to style the chart the way that you want it.
  3. The filter setting used in an export to a spreadsheet for Browse Results and Managed Forms are now shown in a “settings” worksheet in the export.  Hence you can see if the data is for a specific date range or only those records that match the specified text etc.
  4. Cascading selects created from an external CSV file now work in web forms.
  5. Pulldata functions to look up values in a CSV file now work in web forms.  Thanks to Martijn van de Rijdt @  (Update this feature has not ended up in 17.02 and will be delayed to 17.03)

Version 17.01

Version 17.01 is now available, it includes two new features:

  1. Editing of cascading selects and choice filters in the online editor
  2. Accessing records from another survey using pulldata

Choice Filters

You can now create and edit choice filters in the online editor.  This should be an important feature as even if you develop your form using the excel editor it is fairly common to want to add a few more choices to a cascading select after you have started collecting data.  The online editor allows you to do that as you can change the form without affecting the data already collected.

Cascading selects are a type of choice filter where the choices in a select_one question are determined by a selection made in a previous select_one question.  Because these are so common the editor provides extra support to simplify their use.

However if you need to do something more complex then you can use the custom filter option which has all the flexibility and power of available when you create choice filters in the excel editor.

The help page has more details.  You can also watch the following video which shows creation of both a cascading select and a custom filter.

Looking up data from another survey

Smap offers two functions that can retrieve data from CSV files:

  • search()  Returns choices for a select
  • pulldata() Looks up individual data items using a key

One of the features in Smap that has been there for a while is that you can get the system to automatically generate and update the CSV file from the data in another survey.  To do this specify the “file name” as “linked_” then the survey identifier that has the data.

However this was limited when it came to pull data:

  • the key could only be a single question in the survey that has the data
  • you couldn’t look up repeating data in the other survey, ie where there was more than one record that matched the key.

Both of these issues have now been addressed.  For example you may have a survey that has collected data on children registered at a school:

School   Class      Student Name

school class student
East A Fiona
West A Karen
West A Harry
West B Tom

If we then specify the key to look up this data as: ${school}_${class} and that it is a repeating key then the CSV file that is generated for lookups will look like this:

_data_key _count student
East_A 1
East_A_1 Fiona
West_A 2
West_A_1 Harry
West_A_2 Karen
West_B 1
West_B_1 Tom

The _data_key and _count columns are automatically created by the server.  The “student” column is there because there is a pulldata() function in the form that gets the answer to the student question.  Because there are many students in each class a row is created with a value for _count for each class.  Underneath that are rows for each student in the class.  The key for these students is the same as the class key with the addition of_1, _2 and so on.

To access this data from a form you can:

  1. Get the school and class from the user.
  2. Use these to look up the count for the number of students.
  3. Then in a repeat group add the value from position() to the school and class to get details for each student.

Details on how to do this are currently being updated in the training material.