Monthly Archives: February 2021

Version 21.02

New Features

Making Web Forms a Web App

You can now install Web Forms as an application on to your iPhone, iPad, Android device or laptop as an application. This allows you to easily use all of the surveys that you have access to whether your are online or offline. If you have an internet connection opening a webform will get the survey from the network. (Although it may still be cached by your browser so its worth pressing the browser refresh button). Else, if you are offline, the last downloaded version of the survey will be downloaded.


If you are using a laptop then this should work well with Chrome. Use Chrome to logon to your server and select Web Forms. An option to install the web app should appear in the browser bar as shown below.

Installing the Web Form app using chrome on a laptop


  • We are still working on automatically downloading surveys that are present on the webforms page. For the moment you should make sure that you open the survey in the webforms web app or in your browser before going offline.
  • Even when auto pre-downloading of surveys is available, this downloading will not include images. Hence if you use these in your survey you definitely have to open the survey itself before going offline.
  • Apple devices have to have iOS 13+ and you need to use Safari as your browser.

Personal Organisations

Organisations are one of the tools you can use to structure your surveys. Surveys are collected into projects and then projects are collected into organisations. Administrators can determine the enumerators or analysts that are given access to a project and the surveys it contains. But what if you want to have separate work areas where the administrators in one area cannot access and manage the second area? This is where organisations come in. A user with the “organisational administration” privilege can create organisations and give people access to them. Documentation on this existing feature is available here.

“Personal Organisations” now allow this feature to be used by administrators (that is an administrator who does not also have organisational administration privilege). An administrator who creates an organisation can control who has access to it. No other user can take it upon themselves to give themselves access with the exception of users who have the “organisational administration” privilege.

Creating a personal Organisations

As an administrator select the users menu in the admin module. Then click on the organisations tab. Click the “Add Organisation” button.

Adding a personal organisation

You need to give the organisation a name and if you like you can set some options for it. Normally though the default options are fine.

Note as an administrator you will only see your personal organisations on this tab. Someone with org admin privileges will see all organisations.

Giving other users access to your organisation

Click on the users tab and then edit the users you won’t to allow access to your organisation.

Adding sally to the organisation that I just created

You will see a section labelled organisations. This will have a list of your organisations and you can add and remove access for other users as you wish.

Switching to another organisation

Users can change organisations by selecting their profile. (The icon at the top right of every page that looks like a person’s head and shoulders).

Click on the organisation drop down and select the one you want to be. Then press save. The page will refresh and you will find yourself in the new organisation.

Bulk import and Export of users

User roles are now included in an export of users to a spreadsheet. They are also included when importing users from a spreadsheet.

Bug Fixes

  • Fixed issue with duplicate surveys being created when uploading a survey in XLSX format. This was caused by clicking multiple times on the upload button.
  • Fix colour of menu button in webforms when run on a mobile phone. Previously, if the background colour of the header bar had been changed then the menu button might not be visible.
  • Automatically return to the page you were trying to access after performing a logon
  • Problem with display of “Rank” widget in web forms when the appearance “minimal” was included
  • Add logging of changes to role settings to the application log

Performance Issues when looking up reference data

Yesterday I encountered a really good example of how using an online lookup of reference data from a survey can dramatically improve performance. The follow image shows the CPU usage on an 8 processor data collection server at the point when a single survey was modified to use online lookups instead of downloading all the reference data to the phones.

The heavy load prior to the switch was negatively impacting all users.

The cause of the problem

A large number of field workers were updating a survey with a hundred thousand records that was the source of reference data for other surveys. These people were working online with data sims in their phones. So as soon as a field worker completed a survey the results were sent to the server updating the reference data. That automatically triggered the downloading of the 100 thousand records, now including updated reference data, to all the other field workers. Each field worker would have the latest reference data each time they completed a survey but the load was high and response times were getting slow.

Choosing a solution for using reference data

The decision about how to access reference data depends on the type of work your field workers are doing and whether or not they have a network connection while they are doing it. Here are three scenarios to help you choose:

Scenario 1 – Working offline without a network connection

In this scenario your workforce might return to a central location that has wi-fi every evening where they will refresh their phones, uploading any data they have collected and downloading changes to surveys and reference data. The next day they head back out into the field and work offline.

The surveys can use the following functions to get reference data from other surveys and from csv files:

  • search. To get choices for a select question.
  • pulldata. To lookup reference values.

So what happens if the reference data gets really large and is updated continuously by the field worker. Well this is not actually a problem. The server will not be overwhelmed since the workers are only synchronizing their phones once per day. They should actually press the refresh button twice, maybe once in the evening and once in the morning. The first time it will upload all the new data and the second time they will download the updated reference information that includes all of the previous days work from all of the field workers.

Scenario 2 – working online with a permanent network connection

Now the field workers are submitting data as they complete surveys and getting updates to reference data whenever that changes. Because they are online you can use the following functions to get reference data:

  • lookup_choices. To get choice for a select question
  • lookup. To lookup reference data.

Now when completing a survey, if reference data is required, there will be a small delay while the network call is made and then the required reference data will be made available. It is no longer necessary to download large amounts of reference data, most of which will never be used, and store it on the phone. If the reference data is large you should find this a faster approach on the phone as you no longer need to wait for the reference data to be loaded into the survey when you open it.

If your reference data files are small, only a few thousand records, or they are not updated often then you can use either the online or the offline functions in this scenario.

Scenario 3 – A hybrid approach

In this scenario perhaps the workers are online most of the time and want immediate updates to reference data but occasionally they wander outside of the network and still need to lookup those references.

At the moment you would need to use the offline approach and look out for potential performance problems from large frequently updated sets of reference data. However we do have a change request pending to only synchronise the updates to the reference data and not to download all the data each time a single record changes. This change request will allow the hybrid scenario to scale without causing performance problems. Let us know if you need it and I will increase its priority.