Collect manual instance naming will be removed in v2023.2

:warning: If you already specify an instance name in your forms or your workflow does not include editing filled forms from ODK Collect, no action is needed.

Note: The last saved time will only show up if the form was previously saved either because this is an edit or because the user used the :floppy_disk: icon to save during form entry and saved as draft.

When a form definition does NOT specify an expression to name filled forms, Collect users filling out that form see an open text field on the last screen of the form (see v2023.1 above). They can use that field to specify a name that will be displayed in “Edit Saved Form”. The value entered there is NOT submitted to a server.

In our research around form finalization, we heard that this is a confusing experience. Analytics show us that it is used by about 6% of users.

The plan is for manual instance naming to be removed early summer 2023. We recognize that change is hard and may require training and updating your workflow. Our goal is to improve the user experience for everyone and minimize impact by making decisions based on analytics and user needs.

We’ve outlined below a few ways to prepare for the change:

  • How to update your form - We recommend updating your forms to use an expression to name filled forms.

  • If you use the instance name for notes - If you use the field to keep notes about actions to take on a filled form, we encourage you to move this to a form field. For example, the instance_name expression could be: concat(${lname}, " household: ", ${draft_notes}). You can find an example here.

  • If you do not add an instance name - All filled forms will use the form title as the name. The only way to differentiate the filled forms in filled form lists will be by the last saved date. We plan to introduce feedback in 2023.1 to let the users know that manually setting the name will be removed in the next release.

4 Likes

This is great feet. Could you consider changing the action button name to 'Send as finalized form' instead of 'Send form'. Either way is not bad at all.

1 Like

Thanks so much for your feedback! We are working towards simplifying the language because we've heard from our research that people are confused about the call to action button and understanding what state the form is in. We will continue to share our design iterations as we go :slight_smile:

2 Likes

We use XML forms directly (with a custom implementation on the server side), not XLSForm. It is not clear to me where the equivalent of the "instance_name" column must be defined in XML. (I searched into https://getodk.github.io/xforms-spec/) Could you please explain how to proceed for the plain XML use case? Thanks in advance!

You will need to add a main instance node named instanceName in the meta block. You can bind that to any expression you want:

...
<instance>
  <data id="add_place" version="6">
    ...
    <meta>
      <instanceID/>
      <instanceName/>
    </meta>
  </data>
</instance>
...
<bind nodeset="/data/meta/entity/label" calculate="/data/place_name" readonly="true()" type="string"/>

It would be helpful if you could add this to the spec!

Some more at:

Many thanks for your quick answer! I will try this, and it could even improve the workflow of the data collectors in the field.

Looking at your example (esp. the bind statement), does it mean that the instanceName will evolve to the 'entity' label in the new 'entity' specs? (https://getodk.github.io/xforms-spec/entities)

I'm asking because our use case is very much an 'entity' use case (follow up of agroforestry / natural carbon capture locations over the years), and we are currently dealing with the updates in a rather convoluted way. I am therefore already looking at the new 'entity' specs with interest.

Not clear to me whether you are asking me or someone else to update the ODK XForms specs? I would be happy to do it, but I don't know how to edit this page...

Good question! They're defined independently but it's true that in many cases it makes sense to make them the same. Sometimes a form submission that creates an entity really only exists to create the entity in which case they're likely to be identical. Sometimes a forum submission that creates an entity also does other things or contains other metadata in which case they may be different.

That's great! It sounds like exactly what we are targeting. If you haven't already, I encourage you to connect with @mathieubossaert who maintains https://biodiversityforms.org/ and has shared many of his processes on this forum. His focus isn't specifically on agroforestry but he has colleagues working in that space.

If you're up for making the addition at https://github.com/getodk/xforms-spec and creating a pull request, that would be greatly appreciated. If you haven't used github before or the structure of the docs don't look familiar, someone else can do it, we don't currently have a lot of guidance!

1 Like

I have tested customising instanceName in plain XML, and I can confirm that it works as expected.

I have just sent this pull request:

Hope this helps!

3 Likes