Filters in AppSheet applications - in Preview Program

The following feature has been added to the Preview Program. Feel free to test the feature and report issues or possible improvements in this thread.

App users can now filter items from a collection of records based on column values.
The feature is available both on mobile devices and desktop computers.

Here is a very simple example. Your application has pastries that have a โ€˜priceโ€™ and a โ€˜typeโ€™ (Sweet vs Savory). In a view that shows all pastries, app users can now filter to see only the ones that are Savory and that cost less than $3.99.

How do app creators enable this?

  • Go to your Data Schema and make sure the โ€˜Searchโ€™ toggle is turned on for each column that app users should be able to consider
  • Save your application

App users will see the feature after their next sync.

How do app users work with it?

  • After itโ€™s been enabled by the app creator and after app users have synced their app, app users can click on the Search icon
  • In the search bar, app users click on the filter icon (icon screenshot here)
  • This opens the filtering widget
  • App users can then specify filtering values for each column
  • App users click โ€˜Doneโ€™ to get back to the view with the results

See screenshots below for visual details.

What are the supported views?
Only collection views are supported, namely:

  • Card, Deck, Gallery, Table, Map*, Calendar, Chart

The filtering mechanism currently does not support multiple tables at the same time. As a result, filtering on the Dashboard View is currently not available. Similarly, in the Map View it is only possible to filter records of the primary table, but not of the secondary table.

What are the supported data types?

  • Text
  • Enum
  • REF
  • LongText
  • Name
  • ScanText
  • ChangeCounter
  • Number
  • PostalCode
  • Address
  • LatLong
  • ChangeLocation
  • DateTime
  • ChangeTimestamp
  • Percent
  • Decimal
  • Price
  • Url
  • File
  • Image
  • Drawing
  • Signature
  • Thumbnail
  • Video
  • Date
  • Time
  • Email
  • Phone
  • Color
  • Progress
  • Yes/No

Is the filter persistent?
If an app user sets up a filter on a view,

  • After looking at individual records of that filtered list, going back shows the filtered list
  • When the app user goes to another view of the same data set, the filter persists

Does it work offline?
Filtering works offline as it applies to the data that was downloaded to the device.

How does that relate to Security filters?
This is independent of security filters. Security filters allow only certain data to be downloaded to the device. This new feature filters data thatโ€™s already been downloaded to the device.




54 131 16.4K
  • UX
131 REPLIES 131

This will save SOOOOOO many hours of building functionality into an app; a huge thank you to everyone on the team for this.

2X_3_31e8f2194566ef4a39c084448ee5eadf003ebc2c.gif

FIRST, AMAZINGโ€ฆ

We will be doing rapid exhaustive testing on this feature and providing feedback. I hope this is the forum for this level of engagement.

Issue:
Itโ€™s showing column names, not the display name for the columns.

Issue:

  • (IMO) - Hitting enter/return should be like hitting โ€œdoneโ€
  • Interactive dashboard, maybe regular dashboards as well, allow me to go to search/filter items, and hitting done doesnโ€™t create a filtered item. (To be more clear, I know itโ€™s not available, so can we hide it?)

  • REF fields arenโ€™t filterable?
  • What about enum base type ref, Iโ€™m seeing โ€œNot Setโ€?
  • Further, โ€œNot Setโ€ seems strange to me, iโ€™m thinking if itโ€™s null/blank it should follow GSheets nomenclature of (Blanks)
  • When โ€œsearchโ€ is there, it would be neat if we could have the same searching that happens when weโ€™re picking from a long ref/enum, it starts auto populatingโ€ฆ

Can you explain more? I did not get that, @Grant_Stead
Thank you

I was talking about auto complete. When you are using a standard Ref field in a form for example, you can โ€œsearchโ€ but when you start typing the results start narrowingโ€ฆ

Will we be able to have control over the filter like a view? How can we effect the order of the filtering options?

Hi @Arthur_Rallu
Thank you for new feature. I quickly tested. Applied filter and it indeed does the job. Move to another view and returned back to the view where we previously applied the filter, but the filter setting is gone. Seems this is not expected behavior, so worth reporting to you.

Following my opinions.
When we apply filter on table settings, it means the settings should be applied globally for all the views which is created out of the same table. This may cause a disruption. The most convenient setting could be either

  1. App creator turn on/off the filter per view. So setting should adhere to part of view settings instead of table s global setting.

  2. If there is no way, but we need to apply setting as a part of table config, then we wish to have option to turn off that setting when we create SLICE from that table. In that way, we are able to control the settings on/off toggle even we made the views out of same data source (table)

On the practical use cases, there would be different cases, that the global setting against table is appreciated and appropriate, while we just want to apply the filter to a particular view only.

@Takuya_Miyai

I understand the comment and request.
Today, the filters only persist if you donโ€™t change the underlying table/slice when you navigate between the views. For instance, when you are on a table view of Table A, drill down to individual records of Table A, and come back to the table view of Table A, the filter is still applied. Another example is if you navigate between a table view of Table A and a deck view of Table A, the filter is still applied.

If we set up options for app creators to specify how filters apply from one view to the next, then weโ€™d need to make the Search behave the same way or separate them to indicate that they behave differently. Today the Search only applies to the current view.

Our plan is to have Saved Filters in a second version so that app users can quickly reapply a filter. What are your thoughts on this, @tsuji_koichi ?

This sounds fun!

My overall comment to this new upcomning feature. Fristly, I will call this function aa โ€œAdvanced Searchโ€ rather than filter or advanced filters. It would expend the capability for seach (which is curently availble) to apply โ€œsearchโ€ per column.

The filter and its conditions are pretty much more complicated. As I stated in previous post, we should get the options generated from the value in existing rows and present options to user either button or dropdown to let them select to apply for. Even for the selection, it could be controlled by app creators, if we present filter option as ENUM (single value only) or Enumlist.
For the numeric type field, including date and datetime, we should be aple to set the min/max range.

Also we should have option to push the initial value for those filters conditions as welโ€ฆ For instance, the default date value is last 6 months counted from today, then we are able to present the data to user dynamically , but cocnditionally.

All in all, there should be bunch of the things ands jobs so that this new features satify the real-world business requirement.

Currently, we are pushing our own trick to give user to apply filters per user / per view basis, which is working great. This tricks are satisfying all our business requirement as well.

To be honest, we would not able to use this native filter feature (I call as advanced search feature though) unless it would give us the same levels of capabilities which we currently do with our own tricks.

Just a honest and humble opinion as usual.

Adding @Summer to the thread

I could not locate this setting on my apps, even after turn on preview features.

Also noticed Enumlist type field is not supported to apply filter, which may cause problem obviously. Just because of preview release, would be able to apply when the feature is formally released?

@tsuji_koichi The โ€˜Searchโ€™ toggle is not new and was already there. Previously it allowed to enable โ€˜Searchโ€™. Now, it enables โ€˜Searchโ€™ and Filters.

Option to apply filter or not should stands as independent option , rather than mixing up with serarchโ€ฆ
In light of app performance, turning on Search option is slowiing down the app, so the best practise would be we should keep the number as minimum as possible to apply searchable. It does not accomodate the cases where we wish to apply filterable, but not searchable kinda of the case.

When we apply filter for the fileds for textual values, it could be more useful that the filter would present the list of items out of the exisiting value for that particular fields, then user can tick the box to apply to filter. Then we could still hold the opotin to change this behavior over to the simple free key words search like the current new feature does.

For the moment, it looks like the each filter is not capable to apply filters sort of OR conditions.

In terms of the numeric type fields, presenting mini max value for โ€œfromโ€ / โ€œtoโ€ filter based on the existing values on the target table, rather than we ask app users freely enter the value. Similarly, the min/max range UI could be more user-friendly to set the range of the values.

Awesome ideas @tsuji_koichi

Is this already Christmas ?

Thank you @Arthur_Rallu , this is brilliant news.

One quick feedback here: the column name in the filter is showing the column name rather than the โ€œDisplay Nameโ€ field

Amazing ! This is really great

These are all really good comments. Let us know if you see other improvements or issues.
Thanks

@Arthur_Rallu So, after playing with it a little, Iโ€™m having trouble folding this filtering feature into pretty much ANY appโ€ฆ

First, REF fields are going to be of major importance for filtering. If itโ€™s important enough to structure the data in a way that needs a REF, then itโ€™s probably categorically important for filteringโ€ฆ Without being able to filter on REF, I pretty much canโ€™t roll this into production on much, if anything, of importance.

Second, currently the only built in way to handle on-demand filtering is with interactive dashboards. (Yes, I know thereโ€™s crazy hacky workarounds, weโ€™ve got a few of those stood up.) So, to make interactive dashboards work you need REF and ENUM basetype REF. So, here I am with all of these applications with sophisticated data schemas to leverage interactive dashboardsโ€ฆ Yet, the filtering wonโ€™t work in dashboards, or with either of those data typesโ€ฆ

Whatโ€™s a boy to do?

Is the plan to fold these data types in, what about dashboards?
Search works on dashboardsโ€ฆ

I have built my entire app around the dashboard filtering view with loads of REF and Enum Ref types in the core structure of my data as well. So if this new filter feature is able to support Ref and Enum Ref types then this will improve my app so much instantly.

In a related way, if these filtered views in the new feature are able to be exported as a CSV then that will also solve a lot of my current problems trying to use the dashboard view to filter my data then export it for further processing.

+1 great idea! That the filter applies to csv exportโ€ฆ Love it!

Thats a great idea, exporting to csv just the filtered view.

Would be awesome

I was going to ask for this, so yes, i vote for using the filter when exporting to CSV!

Totally agree on this.

Hi @Grant_Stead
We do plan on supporting all data types, most importantly REF data types.
Your feedback about dashboard is very valid. We decided not to take it on right away because we wanted feedback on simpler stuffโ€ฆ and even on the simpler stuff weโ€™re getting valide and useful feedback. Dashboard is more complicated, because the dashboard could have 3-4 tables and because it can be interactive.

Weโ€™ll be first working on the missing data types and other aspects before we can tackle dashboards.
Actually, if you could send me a screenshots of some representative dashboards of yours (with the relations between the tables and what you expect filters to do there), thatโ€™d be useful input.

Thanks Grant

Hi @Arthur_Rallu we too need Filtering in Dashboard Views. Filtering the first view would be enough.

Wonderfulโ€ฆ This was what I was waiting for all thisโ€ฆ Just one more.thing if you can add โ€ฆ If you can add a feature to add โ€œFilter Viewsโ€ just like the Google sheet has. So the users can save the Filtered Views they frequently use. They would be able to filter the data with just one click . For Eg. Orders of cookies from Soso city ( filter columns - city , item category ). This would be really helpful when there are a lot of columns that the user wants to filter.

Oh sorryโ€ฆdint realise itโ€™s already been addressed.

Enum and Enumlist types all showing Not setโ€ฆ This needs to be worked on. It should list the enum values and have the ability to multiselect

You should have the ability to multi-select.
I think the issue is that your Enum data does not have the different values in the app definition. We need to take into account all values that are present in the dataset, not just the ones that were defined in the app definition.

  1. I know Iโ€™m just reading this months after the post, but when filtering on an ENUM field, it showed me ALL the enum values, even when NONE exist in the data set.
    Shouldnโ€™t it only show the values existing in the data set?

  2. Also, when filtering on a field that is a ref based on a slice, it shows me ALL the values, not just those available to the USER. I donโ€™t want users to see values that they are not allowed to enter. If they select one they arenโ€™t allowed to see, no data shows but they shouldnโ€™t see the choice if they arenโ€™t allowed to.

  3. I agree that search and filter should be two different settings.

  4. Anyway we can control the order of the fields that appear in the filter selection pane?

Otherwise, this is a fantastic feature.

this is amazing

Holy grail! This is amazing!

This so awesome!!!
Is it possible to filter more than now value from a single column?