> 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)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.notionapps.com/how-to-guides/filter-lists-with-groups-and-dynamic-values.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
