Filter rows & sort data
Filters control which rows show up in a portal. Sorts control the order those rows appear. Both are configured per view on the Filters page inside each portal.
How filters work
Filters are rules like "Status is Active" or "Owner email equals the logged-in client's email." Quelvo sends these filters directly to Notion before fetching data — so anything filtered out is never sent to the client, ever.
You can add multiple filters. How they combine:
- Same property → OR. Two filters on Status (
is Activeandis Done) match a row if Status is either Active or Done. - Different properties → AND. A filter on Status (
is Active) plus a filter on Owner (equals Acme) matches only rows that satisfy both conditions.
This is exactly how Notion's own filter UI works.
Filter types by property
Different Notion property types support different filter operators:
| Property type | Available operators |
|---|---|
| Text, Email, Phone, URL | Contains, does not contain, is, is not, starts with, ends with, is empty, is not empty |
| Number | Equals, greater than, less than, between, is empty, is not empty |
| Select, Status | Is, is not, is one of (multi-pick) |
| Multi-select | Contains, does not contain |
| Checkbox | Is checked, is unchecked |
| Date, Created time, Last edited | On, before, after, this week, past week, past month, next month, etc. |
| Files | Has attachment, is empty |
Show each client only their own records
The most powerful use of filters: every client sees only their own rows.
The pattern works when your Notion database has a property that holds each client's email address — for example, an Email or Client email property.
On the Filters page, add a filter:
- Property: Email (or whatever yours is called)
- Operator: equals the logged-in client's email
Quelvo automatically substitutes the email of whoever is logged in. When Acme logs in, they see rows where Email = contact@acme.com. When Globex logs in, they see their rows. Neither knows the other exists.
Hide the filter property
After setting up the per-client filter, go to the Columns page and toggle the Email column off. The filter still works (hidden columns are still filtered on), but clients won't see their own email staring back at them.
Date filters with relative presets
Quelvo supports Notion's built-in relative date operators so you don't have to update filters manually over time:
- this week / past week / next week
- past month / next month
- past year / next year
These shift automatically — a "past month" filter is always the last 30 days relative to the current date, with no manual updates needed.
Sorting rows
Sorts are configured in the same Filters page under the Sort section.
- Pick any visible column as the sort key.
- Choose ascending or descending order.
- Add multiple sort levels — the second sort breaks ties when the first produces equal values.
- Drag to reorder sort levels.
Common patterns:
- Sort by
Created timedescending to see newest records first - Sort by
Due dateascending to see the most urgent items at the top - Sort by
Statusthen byDue dateto group by stage and prioritize within each stage
Per-view filters and sorts
Each portal view has its own independent filter set and sort order. This lets you build:
- An "Active" view filtered to in-progress projects, sorted by due date
- An "Archive" view filtered to completed projects, sorted by completion date
- A "My items" default view filtered to the logged-in client's email
Clients switch between views using the tab bar at the top of the portal. Each tab is independent — switching views doesn't affect the others.
What filters cannot do
- Filters narrow down existing rows — they can't join data across databases.
- Filters work on the data in your Notion database as it is — they can't compute derived values.
- If you need to show data from multiple databases in one portal, add multiple databases to the same portal (each with its own filter set per view).