Filtering Data

Apply precise filters to find exactly the records you need with type-aware filter operators.

Overview

Simpl's filter system understands your column types and offers appropriate operators for each. Filter by text, numbers, dates, booleans, arrays, and more.

Opening the Filter Panel

Click the Filter button in the toolbar above the list view to open the filter panel.

Adding Filters

Step 1: Select a Column

Choose which column to filter from the dropdown. All columns from your table are available.

Step 2: Choose an Operator

Available operators depend on the column type (see Filter Operators below).

Step 3: Enter a Value

Provide the value(s) to filter by. Input type matches the column type (text input, date picker, number input, etc.).

Step 4: Apply

Click Apply or press Enter. The list view immediately updates to show matching records.

Filter Operators

Text Filters

Operator Description Example
equals Exact match "John Smith"
contains Substring match "smith" matches "Goldsmith"
starts with Begins with value "inv-" matches "inv-001"
ends with Ends with value "@gmail.com"
is empty Field is null or empty string -
is not empty Field has a value -

Number Filters

Operator Description Example
equals Exact match 100
greater than Value > filter > 50
less than Value < filter < 1000
greater than or equal Value >= filter >= 0
less than or equal Value <= filter <= 99
between Value in range 10 to 100
is empty Field is null -
is not empty Field has a value -

Date Filters

Operator Description Example
is Exact date match 2024-01-15
is after Date > filter After Jan 1, 2024
is before Date < filter Before Dec 31, 2023
is between Date in range Jan 1 to Mar 31
is empty No date set -
is not empty Date is set -

Boolean Filters

Operator Description
is true Field equals true
is false Field equals false
is null Field is null
is not null Field has a boolean value

Enum Filters

For PostgreSQL enum columns, you'll see a dropdown with all possible values:

Operator Description
is Equals the selected value
is not Does not equal the selected value
is empty Field is null
is not empty Field has a value

Array Filters

Operator Description Example
contains Array includes value ["a","b"] contains "a"
is empty Array is null or empty []
is not empty Array has elements -
length equals Array has N elements length = 3
length greater than Array has more than N elements length > 5
length less than Array has fewer than N elements length < 10

UUID & JSON Filters

Operator Description
equals Exact match
starts with Begins with value
is empty Field is null
is not empty Field has a value

Multiple Filters

Adding Multiple Conditions

Click Add Filter to add additional conditions. Each filter narrows your results further.

AND Logic

Multiple filters are combined with AND logic:

  • Filter 1: status = active
  • Filter 2: created_at > 2024-01-01
  • Result: Records that are both active AND created after Jan 1, 2024

Removing Filters

Click the X button on any filter chip to remove it.

Clearing All Filters

Click Clear All in the filter panel to remove all active filters at once.

Filter URL State

Your filters are saved in the URL, which means:

  • Shareable links - Copy the URL to share a filtered view with others
  • Browser history - Use back/forward to navigate filter states
  • Bookmarks - Save commonly-used filter combinations

Example URL with filters:

/dashboard/c/abc123/users?filters=status:eq:active,created_at:gt:2024-01-01

Combining with Search

Filters and search work together seamlessly:

  1. Apply filters to narrow your dataset
  2. Use search to find specific records within filtered results
  3. Both conditions must match for records to appear

This is powerful for scenarios like:

  • "Find all active users whose name contains 'smith'"
  • "Search invoices over $1000 for 'overdue'"

Best Practices

Start Broad, Then Narrow

Begin with one or two filters, then add more as needed. This helps you understand your data distribution.

Use Empty/Not Empty

The "is empty" and "is not empty" operators are useful for:

  • Finding incomplete records
  • Auditing data quality
  • Filtering out nulls

Date Ranges

For time-based analysis:

  • Use "between" for specific periods
  • Use "is after" for recent records
  • Combine with sorting for chronological views

Next Steps