Forms only for Specific Users (not for all users who connected with same server)


I have a question regarding ODK Aggregate
(ie, is there any
feature or way we could separate/categories forms/surveys based on our
users (ie who will be submitting using ODK Collect)? Let me explain with
an example here we have two surveys "Form 1" and "Form 2" we want to
send "Form 1" for users belongs to Toronto and "Form 2" for users
belongs to Ottawa. Is there any possibility we could handle using
Collect and Aggregate?


Could you clarify your purpose a bit more? Specifically are you 1) Wanting different populations (Toronto and Ottawa) to respond to the form? or 2) are you wanting different users (i.e. analysts) to have unique access to data (i.e. Toronto can only access data for Form 1 and Ottawa can only access data for Form 2?

Assuming it the latter, I'm not an aggregate expert, however I have had to provide our partners direct access to data we host at times, and need to ensure they do not have access to other data which is not theirs. My workaround for this was to deploy a different Aggregate for a specific project, giving persons who need direct access to this data the credentials they require via Aggregate.

Thank you @Lloyd_Banwart for your quick response!

And I am sure your work around will work all okay for the scenario you assume. But let me give you more details that what exactly my case is and below example might help you to understand my requirements:

I have configure one Aggregate server (locally at the moment) for one of our client and in that we have two forms let say Form 1 and Form 2. In the Collect (Android App). Now what exactly we want is as we have same Server URL for Collect users (ie in ODK collect app General Settings) in Toronto and Ottawa, but we want for Toronto users to get only "Form 1" when we click on "Get Blank Form" not "Form 2". And same case for Ottawa Collect users to get only "Form 2" to fill but not "Form 1".

I hope this time it will help you to understand my requirements but if need more details, please let me know.

Note: On the other end we are okay to see the data as the way it currently display in Submissions in the Aggregate interface.

It would be great help if you could provide any solution for this.

Best regards!

I don't have a solution for this which would work clearly, so I'm interested to see if others in the community have a better solution.

One 'hack like' option is to check and uncheck 'downloadable' in your aggregate next to each form -- so that only one of the forms can be downloaded. This would only work if Toronto was accessing form 1 at X time, and Ottawa was accessing form 2 at Y time (Where to two times are not the same). It also requires an active engagement on the aggregate end.

Good luck

1 Like

Thank you once again @Lloyd_Banwart for your precious time, I hope if there is any solution for this other community members will come up and help on this issue.

Best regards,

1 Like

Rizwan, it sounds like you want different users to get access to different forms on the same server.

There is a feature request here that I think describes what you'd like. Can you check that request out and see if it's what you had in mind? If so, add your use-case to that feature and vote it up!