Category Archives: Uncategorized

Version 20.09

September’s release is now out with a big focus on Webforms and in particular making sure it has the same capabilities as fieldTask.

New Features

lookup and lookup_choices are now supported in webforms

These functions are equivalent to search and pulldata however they only work online as they will make a network request to the server to get data when they need it. “What is this” I hear you say, why would I use them when I can use pulldata() and search() both online and offline. Well if you are going to be using fieldTask in remote areas then you would not use them however if:

  • You expect to always have a network connection and
  • the data you are looking up is very large 100,000 or a million rows or the data is changing very frequently and you want always to be up to date

then the online versions will be much faster.


lookup supports multiple values

As per the “pulldata” function you can now use the “lookup” function to get multiple values from the server while online. This means you can use it to get data that will populate “repeats”.

The following video shows how this can be used to create an educational assessment system.

Video showing use of lookup to retrieve multiple data values

Expressions can be used to filter choices in lookup_choices

Lookup_choices performs an online lookup to get choices from another form or a CSV file. If you are familiar with using the “search” function to get choices from a csv file then you know that there are some pre-defined criteria for filtering the choices. For example ‘matches’, ‘contains’, ‘in’, etc.

Expressions allow you to be much more flexible in how you select choices. For example in the following video the filter is:

#{votes} > ${min_votes}

So the above filter means that only personnel who have more votes than the minimum are returned. ${} means to use the answer to the question in the form that is being filled in. #{} means to use the answer to the question in the form, or csv file, that is being looked up.

Here is another expression taken from the “Book” example survey in the documentation.

'${time_wanted} > #{from} and ${time_wanted} < #{to} and #{available} = 'OK''

More details on how to define filters can be found here:


  • Improvements to performance of dashboard
  • Automatic refresh of panels in the dashboard is now limited to maps and charts. If you have a table view you will need to manually press refresh in order to update it.
  • Improved tabbing between questions in the online editor. When you tab into a question label it the text will be selected by default so you can just start typing to overwrite it.
  • Add an online tool to look up a surveys identifier so it can be used in lookup_choices, pulldata or other functions that refer to other surveys
  • Support for Ubuntu 20.04 LTS
  • Addition of option to include read only question data in exports. This is now required as people are setting the value of read only questions using calculations. Hence they can contain useful data.
  • Added bulk changes to console. You can now select multiple records and then update all of them to the same values.
  • Improvements to uploading of media from webforms so that more media files can now be uploaded. 100MB+
  • The lookup_labels function also now works in Webforms.

Version 20.08

The last release of the winter of 2020.

New Features

  1. Support for Matrices in WebForms. These can contain mixtures of question types.
  2. The labels of groups are now included in PDF exports
  3. Added a Webform view button on the form management so you no longer need to open the editor in order to try out a new survey in webforms
  4. When selecting columns to show in the console all columns can be selected or deselected using one click
  5. Export of console data in word documents. Data can be formatted as QR codes.
  6. PDF titles are now muli line


A new question type of “begin matrix” is available in order to create matrix structures like that shown below. Further details are in the documentation.

Version 20.05

It looks like we have just got the May release out in time! Enjoy while I get straight into the June release.

New Features

Transcription of Medical Notes

Transcribe Medical can now be used to convert audio into text with special consideration given to medical terms. To use this you will need to add the following parameters to a text question:

  • auto_annotate=yes. This makes the system automatically convert the audio to text otherwise you can use the console to manually do the transcription. You can also use the console to modify an automatic transcription.
  • source=question_name. The source identifies the name of the question that has the audio recording
  • medical=yes. If not set the standard transcription will be used and probably will make a mess of the medical terms.
  • from_lang=en-US. US english is the only language currently supported. Because there is only one valid choice you can omit it.
  • med_type=conversation, or med_type=dictation. If you specify conversation then the transcription will expect more than one voice.

After you submit your survey it can take a few minutes for the transcription to happen. Just keep pressing refresh in the console until you see the results.

Online Editor Support

The online editor now supports the setting of translate and transcribe parameters.

In the online editor select “parameters” as the attribute that you want to edit. Then click on the “edit” button of the text question that is going to hold the transcript. The annotation parameters can be set on the “Annotate” tab of the dialog.


As with the standard transcribe there are fees levied by AWS on the use of transcribe medical. Currently we allow 800 seconds per month free usage. However this free usage has to be enabled for an organisation. Get in touch if you want to try it out or need more than 800 seconds per month.

“In” and “not in” Supported as search functions in WebForms

In the previous release support was added for cascading selects using CSV files in WebForms. These used the ‘matches’ function. For example:

type        name    label     appearance
select_one  country  Country  search(locations)
select_one  city     City     search(locations, 'matches', 'country', ${country})

Now you can also use the ‘in’ function. The list of values is space separated. So the same format as select multiple question. This allows you to do the following:

type            name     label     appearance
select_multiple category  Category  search('list')
select_one      product   Product  search('list', 'in', 'category', ${category})

The products that are in the selected categories will be available for selection in the second question.

“not in” works in a similar way but will only show choices that do not have a match in the list. The other 3 search formats supported by fieldTask are not currently supported in webforms:

  1. contains
  2. startswith
  3. endswith
  4. matches (webforms)
  5. in (webforms)
  6. not in (webforms)

Support for Static Default Images

You can specify the name of an image, from shared resource, as the default value of an image question. For example this could be a diagram on which the user is expected to mark their response.

Other Changes

  • The server is now completely translated into Portuguese
  • You can now set the background colour of buttons and the colour of button text from the web form settings tab on the users page.
  • The server and identity menu options in fieldTask can be disabled on the server
  • When conducting an email mailout you can generate the links and export them to an excel file. This allows you to send the links using other channels to the user. For example from your own email server in a fully customised email message.
  • The guidance hint in surveys can now be enabled or disabled on fieldTask using a server setting.
  • High resolution video capture in fieldTask can now be disabled/enabled from the server
  • Links to embedded files are shown in PDFs
  • The latest mapbox styles are now supported for custom maps
  • Limits have been added to export of survey data for importing into another survey. This overcomes a problem where exporting surveys with tens of thousands of images could cause the server to crash.

Bug Fixes

  • Errors in the task creation rule for a single task group should not now cause the application of rules for other task groups in the same project to also fail.
  • Leading zeros in task durations that previously caused task group rules to fail are now automatically removed.
  • Other miscellaneous crashes reported over the last month

Accountability and Feedback Application Updated

The example application was out of date and did not work. This is because it used the old approach to “oversight” forms. The new approach is that any form can be an oversight form and used to annotate submitted data. My apologies if anyone tried the obsolete example app.

It now works again and I have taken the opportunity to add some artificial intelligence services:

  • Automatic identification of objects in photographs
  • Automatic conversion of an audio recording into text

Another change is that the documentation on example applications has been moved to from its previous location in the “Products” menu.

Version 20.03

This release adds greatly improved support for conducting email surveys. Previously you could conduct mailouts of surveys using the task interface. Now there is a dedicated “Campaign” module. It can be accessed by selecting “Modules” then “Campaign”. Documentation.

Creating a Campaign

A campaign is associated with a survey. You can specify

  • A name for the campaign
  • The subject to be used in sent emails
  • The content of the email
  • A list of email addresses and names

Pre-populate Survey Forms with Data customised for each Recipient

You can include customised data specific to each recipient for any question in the survey.

Manage Contacts

Contacts can be added and edited on a new contacts page. However most commonly a contact will be added indirectly when they are included in a mailout. The contacts page is useful for changing the name of the a contact and also seeing quickly if an email address has unsubscribed.

Campaign API

The API allows you to:

  • Get a list of campaigns
  • Create campaigns
  • Add an email to a campaign

When adding an email you can specify that the URL with the survey should not be sent to the recipient via Smap. The API call will then return the URL to the calling program. This allows you to manage the distribution of survey links in your own application.

Version 20.02

New Features

Opt in for emails

There was existing functionality to include an unsubscribe link with every email sent. If the recipient selects that link and then unsubscribes they will no longer receive any emails. However previously, if they just ignored the email then they would keep getting more.

The opt in applies to emails sent by a notification, a task reminder or an email task. If it is the first time an email has been sent to that email address then an opt in email message asking if the person wants to opt in is sent instead and the email that triggered this is placed in a pending bucket. If the user opts in then the pending email and future emails are sent to them. Otherwise they will not receive any more emails from the above sources. They will still receive emails that allow them to set their password unless they unsubscribe.

You can review pending emails from the “Monitor” page. You can also resend an opt in message from their if the user has neither unsubscribed nor opted in.

Other Features

  • Changed the label for the button that creates an importable version of the data from “export” to “backup”. This differentiates it from the export menu which exports data for analysis.
  • Added support for the lookup_choices() survey functions in the online editor. This function is a replacement for search() that does an online search to get choices instead of downloading them in a CSV file.
  • Added support for default values in a survey that are calculated when the survey is opened.
  • Added a logs api.

Bug Fixes

  • Issue where fieldTask used by recent users was not automatically synchronised with the server
  • Exports of CSV files using the api (/api/v1/data.csv) were not in unicode
  • Fix an error when changing a question from text type to note type in the online editor
  • Validate that names do not clash between surveys when surveys are uploaded into a group.

Version 20.01

New Features

The previous release was back in August 2019. (Version 19.08) so the new features listed below have been added since then.

  • Selection of sub forms (begin repeat) in the console
  • Drill down from parent form to child form in the console. For example If you have selected a parent record such as household #10, you can then select drill down to see the plots of land associated with that household.
  • Drill down from a form to the data that was collected in a form launched from the current form.
  • Online documentation. This has mostly replaced all the content in the old powerpoint files and added a lot more besides.
  • Ability for users to self assign tasks. Once a user has assigned themselves other users will be blocked from the task.
  • Late tasks are now shown in red on the console and in fieldTask. Cancelled tasks which were shown in red are now shown in brown.
  • Server calculations. These can be used to generate data on the server that is shown in the console.
  • Added a start-geopoint preload. This will automatically record a location for the survey when the enumerator answers their first question. A message will be shown that the location is being tracked but the enumerator will not need to do anything to record this location.
  • Simplified the XLSForm survey template
  • The projects, roles and organisation sections of the dialog that edits user settings have been made expandable. This caters for situations where there are very large numbers of projects that you are not interested in looking at.
  • Allow a users to be assigned to a project from the project editing dialog
  • Added support for Ubuntu 1804 in downloadable versions of the server
  • Show a warning to a fieldTask user if the time on their phone is more than 60 seconds different than the time on the server
  • Provide an API call to retrieve the times that fieldTask users have refreshed the forms on the their phones

The No-Code Digital Transformation

No-Code and Citizen Developers

The concept of no-code systems is that non-developers, sometimes referred to as Citizen Developers can create sophisticated IT systems without having to write any application code. This can result in IT systems being deployed faster at much, much lower cost.

This means that no-code has the potential to be hugely transformational to the IT industry. However according to this article in Forbes the no-code movement is being held up because it is “too disruptive”. The article goes on to say that “A traditional enterprise application that might require $2 million dollars to develop and deploy could be reduced to a cost of $50 thousand”, and that this impacts on traditional software development organisations and IT departments who are pushing back against the technology, limiting its adoption in established enterprises.

The opportunity in International Development

And herein is the opportunity for the use of no-code in international development where cost is critical and there is a dearth of existing IT systems. Also in international development there is already widespread usage of Mobile Data Collection (MDC) technology for M&E. This technology can be readily repurposed as a no-code implementation tool.

An Example – Developing an Approval System

The following video demonstrates building an approval system in a few minutes using Smap which is an MDC tool that also has strong capabilities in delivering Mobile Workforce Assistants and Case Management applications.

Implementing an approval system in a few minutes using MDC technology


We have the opportunity to change the way we use IT in development. It no longer needs to be seen as a major cost item developed by large teams working with head office. IT systems can be developed by citizen developers quickly and at low cost to make an immediate impact.

Of course this does not remove the need for traditional IT system development and of course IT governance. It would be a shame for example to create dozens of totally different approval systems. Also some core IT systems are likely to be more efficient if developed the traditional way however even in these cases a “no-code” pilot should be considered.