Adalo Resources
Sign Up for Adalo
Adalo Resources
Adalo Resources
  • 🚀Getting Started
  • 🎨Design
    • Designing Your App
      • Definitions and Terms
      • Creating an App
      • Using the Screen Size Switcher
      • Building with Sections
      • Alignment Tools
      • Using the Layout Tab
        • Screen Size Visibility
        • Sticky While Scrolling
        • Shared Layout Settings
        • Custom Layout Settings
      • Grouping Components
      • Responsive Navigation
        • Responsive Side Navigation
          • Side Navigation
          • Title
          • Menu Style
          • Menu Items
          • Bottom Button
          • Profile Section
        • Responsive Top Navigation
          • Navigation Bar
          • Title
          • Menu Items
          • Additional Navigation
          • Profile Image
      • Responsive Design Best Practices
    • Branding
      • Colors
      • Fonts
    • Create Component States
    • Preview Your App
    • Design Versions
    • Additional Design Resources
    • Migrating Legacy Apps
    • Legacy Builder
      • Create Component Containers
      • Positioning Components
      • Arranging and Grouping Components
      • Preview your App (Legacy Builder)
  • 🎬Actions
    • Action Basics
    • Links
    • Change Data
    • Notifications
      • Request Notification Permission in Your App
      • Trigger Push Notifications
      • Testing Notifications
      • Troubleshooting Notifications
        • Notifications Not Working on Android
        • Notifications Not Working on iOS
        • Notifications Not Working on PWA
    • Conditional Actions
    • Permissions
    • App Authentication
  • 🛠️Screens and Components
    • Screens
    • Deep Linking
      • Setup Deep Linking
      • Deep Linking With Data
      • Deep Linking Share Action
      • Deep Linking Redirection & Fallbacks
      • FAQs and Troubleshooting
    • Screen Navigation
    • Component Basics
    • Magic Text
      • Logged-In User vs. Current User
      • How to Format Dates and Numbers
      • Sums, Counts, Averages, Min and Max
      • How to Create a Custom Math Formula
        • Complex Calculations
    • Conditions and Filtering
      • Filtering in Adalo
      • Using Conditions in Adalo
    • Changing a Component's Visibility
    • Lists
      • Sorting and Filtering Lists
      • Creating Custom Lists
      • Lists of Lists
    • Buttons
    • Toggles
    • Forms
    • Simple Components
      • Image Component
      • Text Input
      • Webview Component
        • Troubleshooting Webview
          • Webview URL not loading in Adalo App
          • Webview crashing in Native App
    • Table Component
    • Video Component
    • Marketplace Components
      • How to Add Components from the Marketplace
      • Digital Purchases for In-App Purchases
      • Sign in with Google
      • Sign in with Apple
      • Maps
      • Bar Charts and Line Graphs
      • Pie Chart
      • Google Admob
        • Troubleshooting Admob
          • Ads Not Displaying in Native
      • Calendar
      • Progress Bar
      • Star Rating
      • Stopwatch
      • Slider
      • Lottie Files
      • YouTube
      • Audio Player
        • Troubleshooting Audio Player
          • Apple App Rejection: UIBackgroundModes key
      • Deck Swiper
      • Markdown Renderer
      • Signature
      • Stripe
        • Stripe Payment
        • Stripe Subscription
        • Stripe Connect Marketplace
          • Set up your Stripe Account for Stripe Connect
          • Allow Merchants to Connect their Stripe Account to your App
          • Stripe Connect
          • Stripe Marketplace Payment
        • Configuring Stripe Test Mode
        • Stripe Custom Actions
          • Get Stripe Subscription Data
          • Get Stripe Customer Data using Email Address
        • Legacy Stripe Components (Deprecated)
          • Marketplace Payments
            • Set up your Stripe Account for Stripe Connect
            • Allow Merchants to Connect their Stripe Account to your App
            • Configure Consumer Payment to go to Merchants' Accounts
          • One-time Card Payments
          • Subscription Payments
  • 🧱Feature Templates
    • Browse, Purchase, and Manage Classes
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Category List Screen
      • Classes List Screen
      • Class Details Screen
      • Purchase Screen
      • Congrats Screen
      • Admin Manage Clinics Screen
      • Admin Transactions Screen
      • Admin Create Clinic & Admin Edit Clinic Screens
    • Browse, Purchase, and Manage Events
      • Overview — Screens, Database, Layout Settings, Use Cases
    • Browse Classes
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Category List Screen
      • Classes List Screen
      • Classes Details Screen
    • Classes Admin Dashboard
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Admin Manage Clinics Screen
      • Admin Transactions Screen
      • Admin Create Clinic & Admin Edit Clinic Screen
    • User Chat
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Conversations List Screen
      • Chat Screen
      • New Chat Modal Screen
    • Forum
      • Overview — Screens, Database, Layout Settings, Use Cases
    • Group Messaging
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Messaging Screen
      • Edit Message Modal Screen & Edit Channel Modal Screen
      • Search Messages Screen & Channels Screen
    • Account Settings
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Account Settings Screen
      • Success Modal Screen & Delete Account Confirmation Screen
    • Appointment Booking
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Coaches Screen
      • Time Slots Screen
      • Book Appointment Screen
      • Coach Admin Screen
      • Edit Session Screen
    • Assign Tasks
      • Overview — Screens, Database, Layout Settings, Use Cases
      • My Tasks Screen, Team Tasks Screen, Completed Screen
      • Task Detail Screen
      • Edit Task Screen
    • Agree and Sign
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Terms Screen
      • Agree & Sign Modal Screen
      • Signatures Admin Screen
    • Announcements & Notifications
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Notifications Screen
      • Notify All & Notify One Screens
    • User Profile & Account Settings
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Setup Step 1 Screen
      • Setup Step 2 Screen
      • My Profile Screen
      • Additional Screens
    • Browse Users
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Browse Members & Profile Screen
    • Browse Dates
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Time Slots & Workout Screens
    • Browse Home Listings
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Listings Screen
      • Listing Detail Screen
      • Modal Image Gallery Screen
    • Image Carousel
      • Overview — Screens, Database, Layout Settings, Use Cases
      • Screens
    • Image Gallery Modal
      • Overview — Screens, Database, Layout Settings, Use Cases
    • User Admin Dashboard
      • Overview — Screens, Database, Layout Settings, Use Cases
    • Workout Assignment
      • Overview — Screens, Database, Layout Settings, Use Cases
    • Social Media Feed
      • Overview — Screens, Database, Layout Settings, Use Cases
    • Store with Shopping Cart
      • Overview — Screens, Database, Layout Settings, Use Cases
    • Inventory Management
      • Overview — Screens, Database, Layout Settings, Use Cases
    • Video Gallery & Upload
      • Overview — Screens, Database, Layout Settings, Use Cases
    • Restaurant Ordering
      • Overview — Screens, Database, Layout Settings, Use Cases
  • 🗃️Database
    • Database Property Types
    • Relationships
      • One-to-Many vs. Many-to-One
      • Many-to-Many
    • The User Collection
    • Collection Permissions
    • Importing Records from a CSV File
    • Download your Collection as a CSV File
    • Location
      • Getting Your Google API Key
      • Estimating Google API Usage
      • The Location Property Type
      • Location in Forms and Inputs
      • Location Magic Text and Formatting
      • Getting the User's Location
      • Latitude, Longitude, and Special Formulas
      • Comparing Locations
      • Troubleshooting Location Features
  • 🪄Settings
    • Copying vs Cloning your App
      • How to Copy and/or Delete an App
      • Cloning Apps and Making Apps Cloneable
  • 🚀Performance
    • Builder Performance Tips
    • Optimize App Performance
      • Image Optimization
      • Five Tips for Improving Your Adalo App Performance
  • ✍️Publishing Apps
    • Publishing to the Web
      • Publish to Adalo Subdomain
      • Publish to Custom Domain
      • Troubleshooting Domain Setup
        • Custom Domain is Not Secure
        • Domain Could Not be Verified
        • Error: Not Found
    • Publishing to the Google Play Store
      • Create Your Google Developer Account
      • Create your Firebase Project
      • Register Android App & Download Config File
      • Generate & Download Private Key
      • Get your Build file
      • Create New Google Play Listing
      • Upload your Build file to Google Play Listing
      • Finalize Listing and Release App
      • Troubleshooting Android Release
        • Google Play rejected the app due to data safety issues
        • Error: Android App Signed with Wrong Key.
        • Error: Version Code 'xxx' has already been used. Try another Version code.
        • Error: Package Name already exists in Google Play.
        • Error: Upload a valid app bundle.
        • Error: Existing Users Can't Upgrade to New App Bundles.
    • Publishing to the Apple App Store
      • Create Your Apple Developer Account
      • Setup Annual Payment for your Apple Developer Account
      • Create Your Apple Bundle ID
      • Create Your Adalo ‘App-Specific Password’
      • Start your Build in Adalo
      • Add Users to Your App Store Connect Team
      • Add Users to Testflight
      • Creating Screenshots for the App Store
      • Privacy and App Tracking Transparency
      • Troubleshooting iOS
        • Build Error: You have reached the maximum number of certificates
        • Build Error: You have already reached the maximum allowed number of keys for this service
        • Build Error: Distribution certificate has expired
        • Build Error: Asset Validation Failed - Invalid App Store Icon
        • App Rejected: Add Permission Text to Your iOS Build
        • Delivery warning during the app submission process: ITMS-90899
        • iOS Build Not Showing in Testflight
        • Apple Two-Factor Authentication Error
    • Publishing to the Web (Legacy Apps)
    • Uploading .APK (Legacy)
    • Publishing FAQs
    • Troubleshooting
      • Build Stuck in Queue
  • ▶️Videos
    • Getting Started
    • Full Walkthrough
    • Working with Data
    • Designing your Database
    • Custom Lists
    • Changing Component Visibility
    • Forms
    • Ordering & Payments
    • Math & Custom Formulas
    • Chat
  • 👩‍🏫Tutorials
    • How to Use Keyboard Shortcuts
    • How to Embed Video or Audio (YouTube, Vimeo, SoundCloud)
    • How to Share a Database Between Apps
    • How to Create an Empty State
    • How to Create a Search Bar
    • How to make a list your users can filter
    • How to Create a Modal/Popup Window
    • How to create a "Favorite" button (Legacy Builder)
    • How to add an Image to an App Bar
    • How to send Scheduled Push Notifications
    • Start Maps Navigation in Your Adalo Apps Using Google Maps, Apple Maps, or Waze
    • Generating Map Previews in Your Adalo App Using the Google Static Maps API
    • Special Links: Email, Text (SMS), and Phone
    • How to have a Dropdown Menu in a Form
    • How to Setup a Shopping Cart with Payments
    • How to set up a Public Profile screen for Users
    • How to Allow Users to Follow Others
    • How to have a Form Automatically Set a Relationship
    • How to add Chat to your App
    • How to Create Multi-Sided Apps
    • How to Add an "Add to Calendar" Button for Events
    • Forwarding Domain to Root Address
    • How to Create Temporary User Avatars
    • How to Set Up a Social Media List
    • How to Play Your Spotify Podcast in Adalo’s Audio Player
  • 🧩Integrations
    • The Adalo API
      • Collections API
      • Send Push Notifications via API
    • Xano
      • Setup Your Xano Workspace
      • Connect Xano with Private Swagger
      • Connect Xano to an Adalo App
      • User Signup, Login, Authentication
      • Google Sign In with Xano Database
      • Other Collections
      • Working with Data Types in Adalo and Xano
      • Counting Records with Xano
      • Lists and Pagination
      • Xano Response
      • Xano Tips and Tricks
      • Troubleshooting
    • Accessing your Record ID
    • Custom Actions
      • ✨Power Your App with ChatGPT
    • External Collections with APIs
      • Magic Text in External Collections
    • Airtable
      • Connecting to Airtable
      • Adding/Deleting Properties
      • Displaying Images
      • Working with Lists
        • Images In Lists
        • Filtering Airtable Lists
        • Magic Texts in Lists
        • Limiting the Number of List Items
        • Sorting Airtable Lists
      • Working with Forms
        • Airtable Dropdown fields & Validation
      • Working with Attachments, Images and Airtable relationship Fields
      • Relationships & Airtable Collections
      • Debugging
    • DreamFactory
    • Zapier
    • Make (Formerly Integromat)
      • Create a PDF from a record in Adalo
      • Notification in Slack when a new user registers in your Adalo app
      • Send verification email to new sign ups
      • Send a verification SMS to new sign ups
      • Send a file to Google Drive from Adalo
      • Send new files from a Google Drive folder to an Adalo collection
      • Use Google Vision for OCR an image and store the text results in an Adalo record
    • IAPHUB
    • Mixpanel
    • Troubleshooting the Adalo API
      • List inside of a List not loading
      • Error Codes
  • ⚙️Adalo Account
    • Account
      • Updating Email and Password
      • Enabling Developer Mode
    • Team Members
      • Add Team Members to Your Adalo App
    • Apps
    • Usage and Billing
      • Billing, Invoices, and Payments
      • App Actions Dashboard
    • Domains
      • Resetting SSL
  • ❓FAQs
    • General Questions
    • What can Adalo do?
    • Adalo Pricing: FAQs
    • Adalo Account: FAQs
    • Adalo Subscription Add-Ons
    • Working with an Adalo Freelancer
    • Adalo Experts
    • Adalo Affiliate Program
    • Adalo Pricing: Legacy Accounts
  • 🤔Troubleshooting
  • 📚Additional Resources
    • Adalo App Academy
      • Introduction to Apps
      • Strategy and Business
      • Design
      • Build
      • Launch & Iterate
      • Freelancers & Agencies
      • All Courses
    • App Development Cost Calculator
    • Hire an Adalo Expert
    • Adalo Forum
  • 📖Glossary
Powered by GitBook
On this page
  • Key Filtering Concepts:
  • Where to Find Filters
  • Filters
  • Custom Filters
  • Learn More
  • Help

Was this helpful?

  1. Screens and Components
  2. Conditions and Filtering

Filtering in Adalo

Filtering is a powerful feature that allows you to refine and organize data within your app. Whether you're a seasoned app builder or just getting started, understanding filtering concepts will help you tailor your app to meet your specific needs.

Key Filtering Concepts:

Filter Criteria: This refers to the rules you set to determine which data should be displayed or hidden. For example, you might want to only display orders placed in the last 30 days or show tasks assigned to a specific team member using a Relationship Property.

Filter Fields: These are the Properties in your Collections of data that you can use to filter. For instance, if you're managing a list of products, your filter fields could include product name, price, or category.

Filter Operators: Operators are used to define the relationship between the filter criteria and the data. Adalo supports various operators such as equals, not equals, contains, greater than, less than, and many more depending on the Property Type. These operators help you specify how you want to filter your data.

Logical Operators: Logical operators are used to combine multiple filter criteria to create complex filtering conditions. Adalo supports AND and OR operators in Lists. They allow you to refine your filters further by specifying conditions that must be met simultaneously or independently.

Where to Find Filters

Filters are typically found in List components and components that display whole groups of records such as:

  • Lists

  • Counts

  • Dropdown Component

  • Deck Swiper

  • Image Swiper

  • Calendar

  • Chart Kits

  • ...and many more!

Filters

Filters can be found in most commonly in Lists that show groups of data from your Collections. In the example below, we have a List of Trips and the default filter is set to All Trips. You can filter further based on the Available Screen Data or Logged in User data by selecting the dropdown.

Custom Filters

Custom Filter can be added anywhere you see the +Add Custom Filter button. These are used to combine logic and display very specific groups of records using Filter Operators. In the same example as above, we want to only display the Trips where the Travelers (Relationship to Users) contains the Logged in User.

Filter Operators:

Filter Operators are how Adalo determines what records to show. They result in either being true or false. Based on this information, either Adalo should (true) show records based on this operator or it should not (false). Both filters and conditions use operators to determine what do to with records, components, or actions.

Following the if-then logic mentioned earlier we can use logical operators within filters and conditions to instruct Adalo that "if this thing is true, then do this other thing".

Operator Types

Operators:

  • Is equal to - This operator is case sensitive and the two pieces of text must match each other exactly - even if there is a hidden return or space in the text. This operator is very strict.

    "Day" is equal to "day" = false "Day" is equal to "Day" = true

  • Is not equal to - This operator is also case sensitive and determines if the two pieces of text are different from one another - even by a space or return. This operator is very strict. Hint: it's often easier to exclude items that to determine if they match exactly.

    "Day" is not equal to "day" = true

    "Day" is not equal to "Day" = false

  • Contains - This operator determine if a string of text contains another string of text. This operator is not very strict and not case sensitive, but can sometimes have unintended consequences if multiple records share the same text string. For example, test@gmail.com and gmail@test.com both contain "gmail" but they are not the same result. This also makes it great for searching for records in your app.

    "Day" contains "day" = true "Day" contains "Day"= true

    "Tuesday" contains "Day" = true

Operators:

  • Is equal to - Determines if two number values are equal to each other. This operator is very strict - down to decimals. Can also handle negative numbers.

    4 is equal to 4 = true 4 is equal to 3 = false

  • Is not equal to - Determines if two number values are not equal to each other. This operator is very strict - down to decimals. Can also handle negative numbers.

    4 is not equal to 4 = false 4 is not equal to 3 = true

  • Is greater than - Determines if one number value is greater than another. This operator is very strict - down to decimals. Can also handle negative numbers.

    4 is greater than 4 = false 4 is greater than 3 - true

  • Is greater than or equal to - Determines if one number value is greater than OR equal to another. This operator is strict - down to decimals. Can also handle negative numbers.

    4 is greater than or equal to 4 = true 4 is greater than or equal to 3 = true

  • Is less than - Determines if one number value is less than another. This operator is very strict - down to decimals. Can also handle negative numbers.

    4 is less than 4 = false 4 is less than 3 = false

  • Is less than or equal to - Determines if one number value is less than OR equal to another. This operator is very strict - down to decimals. Can also handle negative numbers.

    4 is less than or equal to 4 = true 4 is less than or equal to 3 = false

  • Is between - Determines if a number value is between two other number values. The first value provided is included in the range, the second value provided is excluded from the range. The operator is very strict - down to decimals. It can also handle negative numbers.

    4 is between 4 and 6 = true 6 is between 4 and 6 = false

    5 is between 4 and 6 = true

Operators:

  • Is after - Determines if one date property or datetime property occurs after another. You can compare dates and datetimes interchangeably.

    Aug 12, 1992 4:00PM is after Aug 12, 1980 = true

  • Is before - Determines if one date property or datetime property occurs before another. You can compare dates and datetimes interchangeably.

    Aug 12, 1992 4:00PM is before Aug 12, 1980 = false

  • Is between - Determines if one date or datetime property occurs between two other dates or datetimes. The first datetime provided is inclusive, but the second datetime is exclusive. You can compare dates and datetimes interchangeably.

    Aug 12, 1992 4:00PM is between Aug 12, 1980 and Aug 12, 2021 = true

    Aug 12, 1980 4:00PM is between Aug 12, 1980 and Aug 12, 2021 = true

    Aug 11, 1980 4:00PM is between Aug 12, 1980 and Aug 12, 2021 = false

The only type of relationship that can be compared with logical operators in Adalo are one-to-many relationships. You cannot compare many records with many other records.

Operators:

  • Contains - Determines if a group or collection of records contains a selected record. This operator evaluates the record as a whole instead of just a single property like the others.

  • Does not contain - Determines if a group or collection of records does not contain a selected record. This operator evaluates the record as a whole instead of just a single property like the others.

Operators:

  • Is true - Determines if a true/false property is checked

  • Is false - Determines if a true/false property is not checked

Logical Operators

Within filters you have the option to make custom filters be inclusive of each other, or exclusive of each other. For Lists that have multiple custom filters, you can choose whether all of those filters must be true in order to show records, or you can choose whether any of the filters are true.

If you want to display data only when all criteria are met, you can click on the + AND button. In the example below, we only want to display the Trips where the Travelers (Relationship to Users) contains the Logged in User , AND have a Travel Date is after the Date the Logged in User is viewing the List.

If you want to display data only when any criteria are met, you can click on the +Add Custom Filter button. In the example below, we only want to display the Trips where the Travelers (Relationship to Users) contains the Logged in User , OR the Trip Status is equal to Active

0 vs. Null (Empty):

In data management, 0 and Null represent different states. 0 is a valid numerical value, indicating the absence of a quantity or a specific value. Null signifies the absence of any value or unknown value indicating that no data is present in a particular field. In Adalo, Null is referred to as Empty.

Filtering Empty Values:

  • Empty cannot be used to evaluate whether a Relationship exists AND the operator is Empty.

    • Example: You only want records where a relationship exists, but a certain property is empty.

  • Empty cannot be used to filter a count of records.

    • Example: You only want records that do not have a relationship count. Since Counts are Numbers, you must compare to a Number such as '0'

Advanced Filtering Techniques:

  • Checking Relationships: You can check if a record has a relationship across a many-to-one relationship by examining the Relationship’s ID property for Empty.

    • Example: You can get a list of Leads that do not have a Sales Person [many Leads, one Sales Person], by checking Current Leads > Sales Person > ID is equal to Empty.

  • Evaluating Image and File Properties: You can evaluate if a record does or does not have an image or file saved for an Image or File property.

    • Example: You can only show options in a Dropdown component that have a saved Contract [File property], by applying a custom filter to only show records where Contract > URL is not equal to Empty.

  • Evaluating Location Properties: Similarly, you can evaluate if a record does or does not have a location saved for a Location property.

    • Example: You can get a count of all Restaurants that do not have a Location, by using a Magic Text Count of all Restaurants with a custom filter set to Restaurant's > Location > Full Address is equal to Empty.

Please Note: Adding too many filters to any Component can negatively impact performance of the app for the end user.

Learn More

  • You can combine filters with conditions to give even more control over what happens in your app. For instance, you may change the visibility of a component based on a filtered count of a collection of records in your database.

  • Currently conditional actions and conditional visibility can only have one filter attached to them, but filters for lists, counts, charts, and other components can have multiple filters.

Help

PreviousConditions and FilteringNextUsing Conditions in Adalo

Last updated 1 year ago

Was this helpful?

If you need additional help with this article, you can always ask in our! Be sure to paste the link to this article in your post as well!

Do you have a tutorial or help doc request?

🛠️
community forum
Let us know!