ODK Collect v2025.2 Beta: edit finalized/sent forms, MDM configuration, Android 15 support

The most awaited functionality in v2025.2 will be editing finalized or sent submissions that are still on device. We have started this implementation and will share a beta as soon as it's ready to try! For now, read on for a few other nice improvements we'd love your feedback on.

Why we do betas

ODK Collect betas are an opportunity to get community feedback on upcoming releases. If you have an ongoing data collection campaign, we recommend quickly verifying your form on a test device. We will keep sharing new betas as we respond to your feedback and will let you know when the beta is a release candidate.

Joining the beta program

To join the beta program, find ODK Collect in the Play Store on your device (not in the web browser) and scroll all the way down. Please don't join the beta with a device or account actively used for data collection! In particular, note that joining the beta is account-based. If you use the same Google account across multiple devices, do not join the beta with that account.

Leaving the beta program

You can leave the beta program from the bottom of the Play Store listing at any time. Once you leave, you will get the next production update when it is released. If you need to go back to the previous production release, uninstall and reinstall the app. Please make sure to back up or submit any important data.

What to check in this release

  • :pencil: Edit finalized or sent forms. Starting in beta 2, you can try the basic edit functionality using a form like client_editable.xml (846 Bytes). See comments below for more details.

  • :gear: Configuration from MDM. You can now use Mobile Device Management software to configure Collect. When you go to the application configuration section of your software, you should see a "Settings JSON" field. Specify settings JSON as described in the documentation. TinyMDM is shown in the screen capture above and in the last Insiders call.

  • :nail_polish: Android 15 support. We had to make a number of user interface updates to satisfy new Android requirements. Please let us know if anything looks wrong, especially if you use Android 15.

  • :globe_showing_europe_africa: Selected form language remembered after form update. Previously, the form language was reset after each update.

  • :dotted_line_face: hidden-answer appearance for string from external app

  • :litter_in_bin_sign: Entities deleted from server are also deleted in Collect when using Central v2025.1.0 (coming soon). Please let us know if you experience any unexpected behavior with Entities.

Additional testing
You can find a full list of changes in the release notes:

Thanks to all testers for your help!

6 Likes

Oh this is helpful! Tested it out then and saw all the filter timings popup.

1 Like

We’ve released a new beta with functionality that allows edits to finalized or sent submissions on the device :tada: Edits on device are off by default and configurable in form design.

We still have a lot of work to do! Here are some additions we have planned before release:

  • Change the end of form message to indicate that the submission will still be editable
  • Only allow edits to the last edit in a chain
  • Identify related edits in the form listings
  • Show a helpful error message when the submission is edited on the server and an attempt to edit in Collect is made
  • Better handle the case where drafts are disabled in settings

You can now try out the basic functionality by modifying the form XML. You can use client_editable.xml (846 Bytes) or you can edit any existing form and add <submission odk:client-editable="true"/> directly inside the model block. To get form XML for any existing form, you can use the "Form definition" dropdown in Central. Download and open the simple example linked above to see the full structure.

This should now let you edit submissions of that form only and see the edits tracked in Central.

This functionality will soon be available from the XLSForm settings sheet. Read more in the spec design thread.

On the next Insiders call, May 7th, we will demo how it works, discuss how it might fit into different workflows, and answer Insiders' questions.

4 Likes

Good progress there. I am eager to try this new feature. Just a confirmation, at this stage, when a sent or finalized form is edited, does it load with the latest form definition or just the previous one which was used during the data entry? I am eager to know how the saved forms with previous versions also behave when edited.

1 Like

That's a great question and an important thing for us to make explicit! It uses the form definition that was used during data entry. We are planning to eventually add a separate feature which makes it possible to, when a filled form is open for editing, switch to the latest form definition. That would apply to both drafts and finalized/sent form edits.

There's a related question about what happens when a form definition first allowed edits and then is changed to no longer allow them. I believe that currently existing submissions on device could still be edited but new ones could not. I think the likely expected/desired behavior would be that submissions for that form can no longer be edited. We'll make sure to explore that case in detail and bring our conclusions back out for discussion.

1 Like