Increasing data safety in ODK Collect with delete after send and forced form save

We are excited to announce that ODK Collect v1.4.4 includes delete after send and forced form saves, two great new features that Nafundi added to increase data safety in ODK Collect. If you haven't upgraded already, now is a great time!

Delete after send to remove sensitive data

When a form is sent in old versions of ODK Collect, that form is never automatically deleted. Instead, ODK Collect hides the form from the list shown in Edit Saved Forms. This is the default behavior because sent forms often do not take up a lot of space and can be used as a backup in case of a server failure. Users (usually supervisors in admin mode) can choose to manually delete sent forms in Manage Saved Forms if space becomes an issue.

ODK Collect v1.4.4 adds a new option to automatically delete finalized forms and accompanying multimedia after submission. This feature is useful for campaigns collecting sensitive data (e.g., patient records) or multimedia that uses a lot of space (e.g., high resolution video). Delete after send is disabled by default and can be turned on in General Settings.

Forced form save to prevent accidental data loss

ODK Collect already silently saves the state of the currently open form so that if the device crashes or runs out of power, data for that form is never lost. One limitation of this silent background save is that it does not protect against users who accidentally exit the app without saving. This potential data loss can be disastrous for campaigns with very long forms.

ODK Collect v1.4.4 includes support for a saveIncomplete() form attribute that enables a forced form save on any prompt (e.g., right at the end of a major module). To trigger this save, add the saveIncomplete attribute to a prompt's bind and the form will save when that prompt becomes visible. The form XML looks like this:

<bind nodeset="/data/my_question" type="string" saveIncomplete="true()" />

If you use XLSForm to design your forms, add bind::saveIncomplete as a column with a value of true() and enable forced saves that way.

Recent posts

  • SMS-based reporting of AFP cases for private care providers in Pakistan

    Fayaz Jatoi is the Coordinator of the Emergency Operations Centre (EOC) for Polio Eradication in Sindh, Pakistan. In this guest post, Fayaz describes why AFP surveillance is critical to polio eradication and how an SMS-based reporting system for private care provider helps. Read more.

  • Job opening for Senior Software Engineer on Open Data Kit

    Nafundi is seeking a Senior Software Engineer to play a lead role in the evolution of Open Data Kit, a series of open source tools for social good organizations to collect data quickly, accurately, offline, and at scale. The ideal candidate has experience with high-level software system design, modernizing legacy codebases, and writing maintainable code. Read more.

  • Job opening for Experienced Android Developer on Open Data Kit

    Nafundi is seeking a software developer with Android experience to improve ODK Collect. The ideal candidate is passionate about improving code quality and is interested in designing and building new features across the ODK platform. Read more.