Hi everyone,
I’m working on a Survey123 workflow where users need to open the Inbox to review and update existing records.
Currently we have a single survey, but the Inbox shows all records. We would like to filter the Inbox based on a “work front” (a category that users belong to or select).
Before the user opens the Inbox, we want the survey to load only the records associated with a specific work front.
We would like to know if it is possible to:
Dynamically filter the Inbox, based on a value the user selects inside the survey (e.g., a select_one front question).
Filter the Inbox using a URL parameter, such as ?front=XYZ.
Make this work in offline mode (Survey123 mobile app or desktop app).
You can create different FeatureServices/Views at first and use those for different Surveys and link your selection survey with the filtered surveys and inboxes with the applinking schema.
In S123 Connect (desktop) you can add a query to the Inbox to specify which records show up.
If I am understanding correctly, Another option could be just make several copies of the survey form, all submitting to the same feature layer. Configure the inbox of each to your specific filter. Then configure your url to the different surveys.
Where are users opening the url from? Instead of configuring the url with the front parameter, just configure which survey opens based on the front selection. Assuming the platform would support that?
Thanks for the suggestions, everyone. Let me clarify our use case, because some important constraints may change the recommended approach.
Our users are opening the form from the Survey123 field app and Survey123 desktop, often in offline mode.
Because of offline usage, we cannot rely on URL parameters, web links, thank-you screens, or app linking between surveys.
Creating and maintaining several copies of the same XLSForm would be difficult in our environment.
We have 26 different work fronts, and each front may have multiple associated records.
Maintaining 26 versions of the survey (or even several grouped versions) would create a high maintenance burden whenever the form needs updates.
We want to filter the Inbox so that users only see the records associated with their selected front.
Ideally:
The user selects the work front
The Inbox displays only the records for that front
This should work offline in the Survey123 app/desktop
@FlaynerRessoni The first item is your problem there is no way to select the front as you describe before accessing the inbox.
In this case your bet might be to configure the instance name to include the "front" selection. And then have users search that "front" once accessing the inbox to get a list in that category.
https://doc.arcgis.com/en/survey123/desktop/create-surveys/xlsforminstancename.htm
Thanks for the suggestions, but unfortunately the proposed approach does not solve our main issue.
The problem is not only about filtering the Inbox — it is also about performance.
In our environment, users frequently work offline in the Survey123 field app or desktop app, and the Inbox becomes extremely heavy and slow when it loads records from all work fronts.
Because the Inbox always downloads all records that match the fixed inbox_query before the user can filter or search, using the search bar or instance name does not help with performance. The dataset is already too large by the time the Inbox loads.
@FlaynerRessoni You mentioned in your first post that the certain users "belong" to a front. Can you add a field in your form that assigns a username list when a front is selected. If so, you use the inbox query to only return surveys assigned to that user.
https://doc.arcgis.com/en/survey123/desktop/create-surveys/prepareforediting.htm
Thanks for the suggestion. Unfortunately this approach won’t work for our scenario.
The same user may need access to all fronts, depending on the activity, so we cannot filter the Inbox based on username.
How bout the same approach but limiting the surveys returned by some sort of region or group and then have all the "fronts" in that group available to that user group?
You have lots of conflicting constraints here:
Hopefully someone else has some ideas, they only thing I am coming up with is to somehow assign the username to some sort of grouping to limit the inbox and then use the search inbox to filter the "fronts"