> For the complete documentation index, see [llms.txt](https://docs.notionapps.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.notionapps.com/how-to-guides/filter-lists-with-groups-and-dynamic-values.md).

# Filter lists with groups and dynamic values

This guide is for app makers building in the NotionApps builder.

Use it when a list should show a working set that is more than one fixed condition — nested **and** / **or** / **not** groups, values that change with the person or the clock, or a value that comes from the published URL.

{% hint style="info" %}
Where this lives These controls are on a List screen under **Filtering**. They are not Screen Visibility, Data Restriction, or In-App Filtering.
{% endhint %}

If you only remember one sentence:

> In **Filtering**, add conditions and groups, pick a value type for each condition, then Publish. The live list only returns rows that match.

***

### What you can do

| Job                                        | What to use                                                           |
| ------------------------------------------ | --------------------------------------------------------------------- |
| Always hide Archived                       | **Fixed value**                                                       |
| Show each employee their store             | **Logged-in user property**                                           |
| Show rows assigned to the signed-in person | **Logged-in user**                                                    |
| Show related rows for the parent record    | **Current row** / **Current row property** (related lists on Details) |
| Show due today / this week / this month    | **Today**, **Now**, **Start of week**, **Start of month**             |
| Show rows that match a shared link         | **URL parameter**                                                     |
| Combine those rules                        | **+ Add group** with **and**, **or**, or **not**                      |

***

### Before you start

1. Open a **List (View Items)** or **List (Update Items)** screen.
2. Keep the right-hand inspector on **Content → Filtering**.
3. Do not use **Screen Visibility** for “which rows appear.” Visibility only decides who can open the screen.

***

### Step 1 — Add a condition

1. Click **+ Add Filtering**.
2. Set **Filter by** to a property on this list’s database.
3. Set **Condition** (equals, is not empty, is after, …).
4. Set the value type (see the table below).

***

### Step 2 — Choose a value type

| Value type                  | What NotionApps compares against        | Typical use                                   |
| --------------------------- | --------------------------------------- | --------------------------------------------- |
| **Fixed value**             | The exact value you type or pick        | Status is Open                                |
| **Logged-in user**          | The signed-in Users row itself          | Assigned To equals the current person         |
| **Logged-in user property** | A property on the signed-in user (Pro+) | Store equals the user’s Store                 |
| **Current row**             | The parent record on a related list     | Assets whose Location is this Location        |
| **Current row property**    | A property on that parent record        | Tasks whose Store equals the Location’s Store |
| **Today**                   | Start of today in the app timezone      | Due Date is today                             |
| **Now**                     | The current time                        | Last seen is before now                       |
| **Start of week**           | Monday 00:00 (ISO week)                 | Created is on or after this week              |
| **Start of month**          | The first day of this month             | Invoice date is this month                    |
| **URL parameter**           | A query key on the published URL        | Store equals `?store=north`                   |

{% hint style="warning" %}
Logged-in user property **Logged-in user** and **Logged-in user property** appear after you turn **Allow logged-in user property filters** On (Pro and above). Full walkthrough: [Filter List Screens by Logged-in User Properties](https://docs.notionapps.com/how-to-guides/filter-list-screens-by-logged-in-user-properties).
{% endhint %}

**Current row** / **Current row property** appear on related lists (a list component on a Details screen). They do not appear on a top-level nav list, because there is no parent row.

***

### Step 3 — Nest groups (and / or / not)

A single list of conditions is often enough. Use groups when you need parentheses.

1. Click **+ Add group**.
2. Set the group connector to **and**, **or**, or **not**.
3. Click **+ Add condition** inside the group.
4. Nest another group if needed. Groups can be **3 levels** deep.

**not** wraps one child (one condition or one nested group) and inverts it.

Example: open North work, or anything assigned to me that is not archived:

```
(Store equals North AND Status equals Open)
OR
(Assigned To equals Logged-in user AND NOT Status equals Archived)
```

***

### Step 4 — Filter a list from a URL

1. Add a condition (for example **Asset Name** equals).
2. Set the value type to **URL parameter**.
3. Enter the **Parameter name** (for example `store`). Use a short lowercase name with no spaces.
4. Publish.
5. Open the published list with and without the query:

```
https://your-app.notionapps.com/assets
https://your-app.notionapps.com/assets?store=north
```

{% hint style="danger" %}
Missing parameter shows no matching rows If the parameter is omitted or empty, that condition matches **nothing**. The list does not fall back to “show everything.” That is intentional, so a shared link without `?store=` cannot leak every store’s rows.
{% endhint %}

Do not use these reserved keys as filter parameter names: `cache_bust`, `sim_user_id`, `debug`, `live`.

This is **not** the same as [Prefill Create Forms from a URL](https://docs.notionapps.com/how-to-guides/prefill-create-forms-from-a-url). Prefill fills fields on an Add form. **URL parameter** on a list decides which rows appear.

***

### Step 5 — Save, publish, and test

1. Save the builder as usual.
2. **Publish**.
3. Open the live app (not only preview).

| What you configured            | How to test                                                                       |
| ------------------------------ | --------------------------------------------------------------------------------- |
| Logged-in user / user property | Log in as two people with different values                                        |
| Today / week / month           | Confirm a row that is due today appears, and yesterday does not                   |
| URL parameter                  | Open the list with the query, then without it (expect an empty list when missing) |
| Current row                    | Open two different parent Details records and confirm the related list changes    |

***

### Filtering vs the other three controls

| Control                   | Who it is for  | What it decides                                         |
| ------------------------- | -------------- | ------------------------------------------------------- |
| **Filtering** (this page) | You, the maker | Which rows appear on this list                          |
| **In-App Filtering**      | End users      | Extra chips they can change while browsing              |
| **Screen Visibility**     | You, the maker | Whether someone can open the screen at all              |
| **Data Restriction**      | You, the maker | Database-wide tenancy for every screen on that database |

***

### Troubleshooting

| What you see                               | Likely cause                                                  | What to do                                                    |
| ------------------------------------------ | ------------------------------------------------------------- | ------------------------------------------------------------- |
| Everyone sees all rows                     | Still using **Fixed value**, or not published                 | Change the value type; Publish; hard-refresh                  |
| Everyone sees zero rows                    | URL param missing, user property blank, or types do not match | Add `?param=`, fill the user profile, or align property types |
| No **Logged-in user property** in the menu | Per-list allow switch is Off, or plan is below Pro            | Turn the switch On, or upgrade                                |
| No **Current row** in the menu             | You are on a top-level list                                   | Open the related list on a Details screen                     |
| Preview looks right, live does not         | Not published                                                 | Publish again                                                 |

***

### Related

* [Filtering, Sorting, or Grouping Items](https://docs.notionapps.com/screens-and-components/customize-a-screen/filtering-sorting-items)
* [Filter List Screens by Logged-in User Properties](https://docs.notionapps.com/how-to-guides/filter-list-screens-by-logged-in-user-properties)
* [Prefill Create Forms from a URL](https://docs.notionapps.com/how-to-guides/prefill-create-forms-from-a-url)
* [Data restriction vs dynamic user filters](https://docs.notionapps.com/databases/data-restriction-and-filters)
* [15 Sep 2026 Release](https://docs.notionapps.com/release-notes/15-sep-2026-release)
