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.
Filter panel with active filters
Opening the Filter Panel
Click the Filter button in the toolbar above the list view to open the filter panel.
Filter button in toolbar
Adding Filters
Step 1: Select a Column
Choose which column to filter from the dropdown. All columns from your table are available.
Column selector dropdown
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 | - |
Text filter operators
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 | - |
Number filter with between operator
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 | - |
Date filter with date picker
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 |
Boolean filter options
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 |
Enum filter dropdown
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 |
Array filter with contains operator
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.
Multiple filters applied
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.
Filter chips with remove buttons
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:
- Apply filters to narrow your dataset
- Use search to find specific records within filtered results
- 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