Custom metadata fields in KoBo Collect


Is there a way to add a custom metadata field to KoBo Collect and retrieve it’s value in the form (the same way we can provide username in settings and retrieve in the form using ${username})?

Let’s say I have a form for collecting data in different predefined places (e.g. monitoring points). On one day the surveyor goes to point A and collects 100’s surveys, on the next day he is collecting surveys on point B. I want to associate each response with the point.

Obviously, in the form I can add a select_one question with a list of points. Each time the surveyor collects data, he needs to select the point, but this is time consuming.

It would be much better to have a custom (user-defined) metadata field stored in KoBoCollect app, e.g. point_name. Each time user adds a new form (submission), the point number would be pulled from this metadata field, so no need to even show it on the form. When a surveyor changes the point where he is collecting data, he would need to change the field value once only, and all further surveys will store a new/updated point number in the background.

Can this be achieved in KoBo Collect?


As workaround you may use pulldata.
Or last-saved function if you use ODK Collect, (what is generally preferable).
Pull in last saved record?.

You might also (mis)use one the metadata field user. Maybe someone can say how you can ${refence} it in the form? ( @Kal_Lam @stephanealoo )

Thanks! pulldata will not work in this case, as it has to be editable on the mobile device. last-saved option is promising, but will require switching from KoBo Collect to ODK Collect. Also, ideally I would like to hide all the questions that can be pulled from the metadata field. So probably (mis)using username might be the best option.

Some tools have implemented a similar approach. E.g. QField (one of the best open source mobile GIS data collection tools) is using user-defined or global variables:

Would be great to have the same in KoBo!


Hello @janekb ,
Maybe put a request for global variable feature in KoBo/ODK here:

Concerning switch to ODK, this might be interesting

For the work-around, you might also use pulldata based on a form (or device) variable, like a UserId or area code. (I would not trust too much that the enumerator will do always do the right adaption for her/his configuration.)

1 Like

Hello @janekb ,

Can you compare it to Survey123?

Survey123 is much closer to KoBo/ODK Collect, e.g. it is for collecting surveys which can be defined using XLSForms. QField is the mobile GIS data collection app: it is map-centric, allows for multiple map layers (points, lines, polygons, raster layers), works directly with geopackages or shapefiles and can be nicely integrated with QGIS (opens source desktop GIS app).

1 Like

Hi @janekb,

Maybe you could also use the audit metadata. It should also help solve your issue. For more, please have a look at our support article Audit Logging Meta Question Type. And, this source should also be helpful to understand more on audit.