Over the course of March and April, we released a host of improvements to our form design capabilities, team communication features and API. Here's a summary of what's new:

Please also note that we have officially phased out our "legacy" tools - as communicated in October 2020.

Form version history (all paid plans)

Every time a change is made to a form's design (e.g. a field is added or modified), the change is saved as an "unpublished change". This allows you to work on a form without impacting live fieldwork that may be taking place. Each time you publish the form, a new version is created that includes all the changes made since the last published version. This ensures data integrity is maintained by linking each submission to the specific version of the form that was used. 

In this release, we've provided a way for you to see exactly what changes have been made to the form since it was last published ("unpublished changes") and a way to see a history of previously published versions. This allows you to track who has been making changes to a form, when they were made and what they were - ensuring you have full visibility over the process. If you need to you can also revert unpublished changes.

Enhanced communication with field teams (Standard plan+)

You can now attach project resources to the messages you send to your field team. This allows you to include reference documents, images, animations, videos and other kinds of material.

Dynamically filtering option lists and accessing context-specific information during data collection (all paid plans)

In this release, we've added two new features that work well in combination - the ability to dynamically filter option lists and access to context-specific information during the data collection process.

An existing feature allows option lists for select fields to be populated dynamically from a CSV file instead of manually adding each option. With this latest enhancement, you can now filter the displayed options dynamically based on criteria you specify. For instance, your CSV file might contain hundreds or thousands of options - only some of which are applicable in a given situation. Using this feature, you can display the specific set of options that are relevant based on information captured within the form - or using a new set of built-in variables that provide contextual information such as the name of the fieldworker who is capturing the form. 

In the CSV example below, there are a total of 5 households - of which 3 should be listed when the form is being completed by fieldworker "John Smith" and 2 which should be displayed when the form is completed by the fieldworker named "Tammy Smith".

1John Smith12 Highlands Crescent
2John Smith30 Rhodes Ave
3Tammy West20 Forrest Rd
4John Smith18 Angel Drive
5Tammy West99 Paradise Road

The name of the fieldworker capturing the form can be accessed via $context.fieldworkerName and this can be used as the option list filter as shown below:

Locking fields in a form

By default, all fields in a form can be edited by other users in your account with form design permissions for the project. In some cases however you may want to lock a field to prevent other users form editing or deleting it. This may be useful to ensure that important fields are not removed or modified - whilst allowing other fields in the form to remain editable.

Introducing the "Document" field type (all paid plans)

We've added a new field type to the "Media" category that now allows you to upload many common document formats including PDF, MS Word and Excel. This new field type can be particularly valuable when your data collection includes gathering supporting documentation and material from a respondent via web collection.

Validation improvements

You can now customise the validation message that is displayed if the captured input is invalid (according to the validation rules you specify). If your form is available in multiple languages, this message can be translated for each language variation.

Another validation improvement is that a "Select many" field can now be validated to ensure that a certain number (or range) of options have been selected. For example, ensuring that at least 3 but no more than 5 options have been selected.

Programmatically manage project resources (all paid plans)

We've improved our API to now allow you to programmatically add, delete and update project resources - most notably CSV files that you can use to populate option lists or pull pre-existing or external data into the form. 

This feature is incredibly powerful as it allows you to link your forms to "live" datasets that can be updated from an external source such as a third-party database (e.g. when a new record is added to the database, the linked CSV resource can be updated to include it). When you update the resource via the API, it is automatically synced to all fieldworkers via the Mobenzi mobile app - meaning that they can work offline with the latest dataset that will update automatically as soon as they have connectivity.

Disable manual selection of location

By default, when you add a Location field to a form, it allows the fieldworker/respondent to manually pick their location on a map. This can now be disabled if you want to force them to use the location reported by their device (e.g. using GPS).