> 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/databases/data-restriction-and-filters.md).

# Data restriction vs dynamic user filters vs per-list disable

Canonical page for the **data half** of “who sees which rows.” Users → [Data Restriction](https://docs.notionapps.com/users/data-restriction) stays the Users-rail entry and should link here for the comparison. List filter how-to stays short.

## What this is / when to use it

Three different features are easy to mix up.

| Feature                                | Where you set it    | What it does                                                                                                    | When to use                                                          |
| -------------------------------------- | ------------------- | --------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
| **Data restriction** (personalization) | Users               | Every list/details/form on that database only shows rows that match the logged-in user (or their linked fields) | Client should never see another client’s rows                        |
| **Dynamic user property filters**      | List screen filters | A list filter whose value comes from the logged-in user’s properties                                            | One list should be “my region” without turning on global restriction |
| **Per-screen / per-list disable**      | Screen or component | Turns **off** data restriction for that screen or nested list                                                   | A staff directory must show everyone even though restriction is on   |
| **Builder filters**                    | Screen              | Fixed values, nested **and** / **or** / **not** groups, clock tokens, current row, or a URL parameter           | Working set, not identity                                            |
| **In-app filters**                     | Screen              | `DYNAMIC` (all values in the field) or `PRE_DEFINED` (chips you define)                                         | User-driven narrowing                                                |

When **not** to stack all five: pick the coarsest control that is safe. Restriction first for tenancy. Then list filters. Then in-app filters for convenience.

## Before you start

1. The app is private and the Users database is linked.
2. A property on the data database can match a user (email, relation to Users, or a shared select like Region).
3. You have a Staff role that may need the disable switch.

## Build it

### Data restriction

1. Open **Users → Data restriction**.
2. Choose the matching fields (user email → row email, or user ↔ relation).
3. Publish. View as a client. Confirm they only see their rows.

### Dynamic user filters on one list

1. Open the list → Filters.
2. Add a filter, set the value source to the logged-in user’s property (see the how-to [Filter List Screens by Logged-in User Properties](https://docs.notionapps.com/how-to-guides/filter-list-screens-by-logged-in-user-properties)).
3. Do not also enable restriction on that database unless you want both.

### Disable restriction on one screen

1. With restriction on, open the staff list.
2. Enable **Disable data restriction on this screen** (product help deep-link).
3. View as staff: all rows. View as client on a different screen: still restricted.

### In-app filters

1. Add an in-app filter.
2. `DYNAMIC` — users pick any value that exists in the column.
3. `PRE_DEFINED` — you define the chips (Open / Closed). Users cannot invent a third chip.

## Every control

| Control              | Options                                                                              | What it does                                                                                                                                              |
| -------------------- | ------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Restriction fields   | User field ↔ row field                                                               | Tenancy.                                                                                                                                                  |
| Disable on screen    | On / off                                                                             | Staff exceptions.                                                                                                                                         |
| Disable on component | Nested list                                                                          | Data-to-data nested lists can inherit or disable.                                                                                                         |
| Filter source        | Fixed value, logged-in user / user property, current row, clock token, URL parameter | Builder filter. See [Filter lists with groups and dynamic values](https://docs.notionapps.com/how-to-guides/filter-lists-with-groups-and-dynamic-values). |
| In-app type          | `DYNAMIC` / `PRE_DEFINED`                                                            | End-user chips.                                                                                                                                           |
| In-app name          | Max 100 chars                                                                        | Label.                                                                                                                                                    |

**Data-to-data nested lists:** a details screen can show a related list. That nested list honors restriction unless you disable it on the component. Reload on the nested list is the relation “show reload button.”

## What users see

Clients see “their” rows only when restriction is on. Staff on a disabled screen see the working set from builder filters. In-app chips only narrow what is already allowed.

## Limits and plans

* Restriction is not navigation. Hidden screens are a different control.
* Guests have no user record. Restriction treats them as empty — usually they should not see the screen.
* Dynamic user filters need the property on the Users database. Identity dual-write can keep that property fresh. See [Identity admin](https://docs.notionapps.com/users/identity-admin).

## Example

**Deliveries** restricted by Client relation = logged-in user’s Company.

* Client list: restriction on, in-app `PRE_DEFINED` Status.
* Staff “All deliveries”: restriction **disabled** on that screen, builder filter none, in-app `DYNAMIC` Client.
* Details nested “File versions”: inherits restriction so a client never sees another client’s files.

## Fix problems

| Symptom                              | Likely cause                                 | What to do                                        |
| ------------------------------------ | -------------------------------------------- | ------------------------------------------------- |
| Client sees everyone’s rows          | Restriction off, or disable left on          | Turn restriction on. Check disable.               |
| Staff sees nothing                   | Restriction on, no disable, user not matched | Fix the match fields or disable the staff screen. |
| Filter how-to and this page disagree | How-to is the short job                      | This page is the comparison.                      |

## Related

[Data Restriction](https://docs.notionapps.com/users/data-restriction). [In-app Filtering](https://docs.notionapps.com/screens-and-components/customize-a-screen/in-app-filtering). [Filter lists with groups and dynamic values](https://docs.notionapps.com/how-to-guides/filter-lists-with-groups-and-dynamic-values). [Identity admin](https://docs.notionapps.com/users/identity-admin).
