How to Bulk Approve/Disapprove Submission Data in ODK?

Hello ODK Community,

I’m working on a project where we collect a large volume of data submissions through ODK in South Asia. Currently, we are manually approving or disapproving each submission one at a time, which is quite time-consuming.

I was wondering if there is a way to bulk approve or disapprove submissions in ODK Central Specifically, I'm looking for a method or workflow that allows us to:

Select multiple submissions at once for approval or disapproval.
Automate or streamline the process, possibly through a script or tool.
Ensure that the bulk approval/disapproval is accurately logged for auditing purposes.
Has anyone come across a similar situation or implemented any solutions for bulk processing submissions in ODK? Any insights, scripts, or tools that could help with this would be greatly appreciated.

Thank you in advance!

Best regards,

1 Like

I tried to work with ODK Central, but I needed more functionality, specifically multi-tiered permission/approval. So I used external dashboard to code this feature (meaning pulled data to external dashboard and put access limits and approval limits there).

2 Likes

Thanks for following up from the Insiders call today, it was great to see you there.

How do you currently determine whether a submission needs to be approved or rejected? Do you open each submission and look at specific fields? Is there a set algorithm that can be followed (e.g. value1 is only greater than 10 if value2 is xyz) or does it require manual inspection (e.g. to react to names that likely have typos)?

Would a Python/pyodk script be useful to you?

@Saad -- sounds like you've been able to satisfy some complex requirements with a dedicated layer. Very cool!

1 Like

Same here. For us, approving each submission individually is too much work as we may receive hundreds of submissions per day. So a option for bulk approval of submissions or -better- an option to automatically approve all incoming submissions would help us a lot.

@Edmonds How do you currently determine whether a submission needs to be approved or rejected?

If you are going to automatically approve all submissions, you can instead assume that a received submission is "approved" unless it's rejected (manually or with a script).

If it isn't actually automatic approval of all submissions you want, then the most scalable option is to write a pyODK script that applies whatever approval/rejection algorithm you'd like. I'm glad to share a sample script if you can share your rough algorithm.

1 Like

Hi Yaw, yes, for our case I would say that as a default, we would like to approve all incoming submissions automatically. Then have the option to manually reject them in case they are not correct. This would safe us daily checking and manual approving of all the submissions. Good to receive that pyODK script: I can see if it is part of our solution. Thanks in advance for sharing!