_submitted_by field not showing up in XLS download file

An auto generated field _submitted_by does not show up in the XLS download. I can see the field when I look at the data page in Kobo or at the data from each submitted record but it is not there on the XLS nor is it visible to Power BI. Occasionally I get a submission with ‘username not found’ but that record will always have the correct username in the _submitted_by field. If I could use that field it would bypass the issue of the username not found problem.
Why can’t I see that field except within Kobo?


Welcome back to the community @timcthefilmguy! Yes, the _submitted_by field is not shown while downloading the data in an xls format. There is already a GitHub issue for the same. Maybe you could follow it here:

Will let you know, when we have this in within our system.

@wroos, this should be very effective if you use them with Row-Level Permissions. To get the best out of this, you will then need to check the Require authentication to see forms and submitted data under your ACCOUNTS SETTINGS. Once this is done at the admin user level you should be able to track all the submissions from the enumerator level user accounts.

Hello,
I think we are talking about different variables. As far as I understand

  • username is from metadata (to set on the Collect device)
  • submitted_by is the KoBo account (user).

To use submitted_by and authentication for tracing of row level edits will only work if we create a single KoBo account for each person (plus sharing etc.) which might be heavy load for surveys with many enumerators.

1 Like

Normally when you are collecting metadata using the functionality username, you should know the following:
• When you collect the data using online webform-This data will not be captured and it will be defined as “username not found”
• When you collect the data using the app KoboCollect or ODKCollect- This data will be collected and the username will be documented for the account that is logged into the application

1 Like

None of my users use the app, they are all 100% using the online form. Getting a username not found happens about once in every 50 submissions. I can have a single user make two submissions in a row from the same device and one will have the username and the next won’t.

I have hundreds of enumerators each with their own account. Their username and kobo account name are the same. They all use the web submission form. Sometimes one user will make two submissions from the same device within a few minutes of each other and one will be fine and the other will have username not found. Since username is the field that exports to XLS and that is the field with the occasional mistake I want to use the _submitted_by field as that is 100% accurate every time

@timcthefilmguy, have you tried checking the Require authentication to see forms and submitted data under your ACCOUNTS SETTINGS. Once this is done at the admin user level as well as the enumerators user level you should be able to track all the submissions from the enumerator level user accounts.

Yes that is required at my admin level.

I will check the enumerator’s settings for the ones that have given any ‘username not found’ reports.

Just checked. That was not required at the enumerator level. Hopefully that will take care of it.

Thanks.

1 Like

Hello,
Did we well understood? You have two variables username on the device (metadata) and account name, which should be the equal. But in some devices the username (metadata) has not been set (manually)?

I’m sorry, I’m not sure what you mean.
You are correct that the two should be equal. In some reports the username comes back as no username found while the metadata username is correct

I have found several occurrences where a single user can submit a report with both the metadata and the manual matching followed by another report with it missing.

Right now I need to know why this error occurs so I can prevent it, or I just want to have access to the _submitted_by field which is always correct. At the present time the _submitted_by field is not usable as it is not accessible via the api or by direct downloading the data in xls format.

Hello,
You probably know: It might happen if the same user uses more than one device (one without metadata set). And of course if two users work with the same KoBo account (e.g. caused by config typing error or informally sharing work) on two devices.

I don’t know if a dual sim also might provoke this. Or if they use different browsers?
Do the cases have the same KoBo deviceid?

Based on what Stephane wrote, I am even surprised that you get a username at all when using the web-form with Enketo. Could you send a screenshot how the username is set on the device?

Hello @timcthefilmguy
I found something, probably related
https://forum.getodk.org/t/missing-username-in-enketo-webform-aggregate-even-if-anonymous-access-is-disabled/27668
and a GitHub ticket
https://github.com/enketo/enketo-express/issues/207

1 Like

As far as we can see, in addition to @stephanealoo:

When you collect the data using Webform (Enketo) link

  • If you use “Require authentication to see forms and submitted data”, this authentication will be captured as submitted_by and (normally) as “username” too.

  • Otherwise, this data will not be captured and it will be defined as “username not found” and as empty submitted_by.

  • If deviceid (metadata) is included in your form

    • Normally deviceid will be set as ee. …
    • Rarely, we also got “deviceid not found”

When you collect the data using the APP KoboCollect or ODKCollect,

  • When username (metadata) is included in your form
    • If username is set in metadata (settings) on the device this will be used
    • If not set on the device, the account name will be used instead as “username”
  • In both cases, submitted_by will be the account name
  • “Require authentication …” has no effect on the Collect app.

When you edit submitted data on server level, neither username nor submitted_by will change (even if it was empty).

When you enter/submit new data directly inside an account (owner or shared), the account is set as submitted_by and as username (normally).

2 Likes

Thanks - that describes my issue exactly. I will follow it

1 Like