Notion databases let you store many pages, but sometimes you want to show certain pages only when a specific property value is set. For example, you might want a task page to appear only when its status is Active, or hide archived records from a shared view. Notion does not offer a direct per-page visibility toggle based on a property value.
Instead, you achieve conditional visibility using database views, filters, and linked databases. Each view can show or hide pages depending on the value of a property like Status, Stage, or Priority. This article explains how to create views that show pages only when a property condition is met and how to share those views with specific people or teams.
You will learn to set up filter-based views, use formulas for advanced conditions, and combine views with permissions to control exactly who sees what.
Key Takeaways: Conditional Page Visibility in Notion
- Database view filters: Use the Filter menu on any view to show pages only when a property equals, contains, or does not equal a specific value.
- Linked database with filtered view: Create a linked database on another page and apply a filter to display only pages matching a condition without moving the original pages.
- Formula property for complex conditions: Write a formula that outputs a checkbox or text label, then filter the view on that formula result to show pages that meet multiple property criteria.
How Conditional Page Visibility Works in Notion
Notion databases store pages as rows. Each row has properties like text, select, date, or checkbox. A view is a specific way of looking at the database: a table, board, gallery, list, or calendar. Every view can have its own set of filters.
When you add a filter to a view, Notion hides any page that does not satisfy the filter condition. The page still exists in the database. It is not deleted or moved. The filter simply controls whether the page appears in that particular view.
This method works for all property types. For a Select property, you can filter by a specific option. For a Checkbox, you can show only checked or unchecked pages. For a Date, you can show pages due within a range. For a Formula, you can filter on the output value.
To share a filtered view with others, you must share the database page or the parent page and grant the viewer access to at least Can View. The viewer will see only the pages that pass the filter on the view you shared, provided you also set the view as the default or share a direct link to that view.
Steps to Create a Filtered View for Conditional Visibility
- Open the database where you want conditional visibility
Navigate to the page that contains the database. Click anywhere inside the database to select it. - Add a new view
Click the current view name at the top left of the database. Select Add a view. Name the view something descriptive such as Active Tasks or High Priority Only. Choose a view type that matches your data. Table view works well for most setups. - Open the Filter menu
Click the Filter button at the top right of the database. If you do not see a Filter button, click the three-dot menu on the view name and select Filter. - Set the filter condition
Click Add a filter. In the property dropdown, select the property you want to base visibility on. For a Select property named Status, choose the condition equals and then select Active. For a Checkbox, choose is checked. For a Date, choose is in the next 7 days. The view will immediately update to show only pages that match the condition. - Save the view
Click outside the filter menu. The view is now saved with the filter applied. Every time you or a collaborator opens this view, only pages meeting the condition appear. - Share the view with others
Click Share at the top right of the page. Add people or groups and set their permission to Can View. To make this the default view for guests, click the view name and select Set as default. Guests will see only the filtered set of pages.
Using a Linked Database for Conditional Visibility on a Different Page
Sometimes you want to show filtered pages on a completely different page, not inside the original database. A linked database lets you embed a view of the original database on another page and apply its own filter.
- Create a linked database
Go to the target page. Type /linked view of database and select the original database from the list. - Add a view to the linked database
Click the view name on the linked database and select Add a view. Name it something like Client Facing. - Apply a filter to this linked view
Click Filter and set the same condition as before. The linked database now shows only pages that meet the condition, but the original database remains unchanged. - Share only the target page
Share the target page with the people who need to see the filtered data. They will never see the full unfiltered database unless you share it with them separately.
Common Mistakes and Limitations When Setting Conditional Visibility
Filter shows no pages at all
If a filter returns zero pages, check that the property value you are filtering on actually exists on at least one page. For a Select property, confirm that the option name is spelled exactly as it appears in the property. Notion filters are case-sensitive for Select and Text properties. Also verify that you have selected the correct condition. For example, contains works for text but not for Select.
Guests see more pages than intended
If a guest can see pages that should be hidden, the guest likely has access to the original database page or a parent page that contains the full database. To restrict visibility, share only the page that contains the linked database with the filtered view. Do not share the original database page with that guest. Also ensure the guest role is set to Can View, not Can Edit.
Filtered view does not update when a property changes
Notion updates views in real time. If a page does not appear after changing its property value, refresh the page or close and reopen the view. If the filter uses a Formula property, check that the formula recalculates correctly. Formulas that rely on date functions may need a page refresh to update.
Cannot filter on rollup or relation properties directly
Rollup and relation properties cannot be used as filter conditions in the standard Filter menu. To work around this, create a Formula property that pulls the value from the rollup or relation and then filter on the formula. For example, if you have a relation to a Project database and a rollup that shows the Project name, create a formula property that outputs the rollup value as text, then filter on that formula.
Filter Methods for Conditional Visibility Compared
| Method | Pros | Cons |
|---|---|---|
| Simple filter on a Select or Checkbox property | Quick to set up, no formulas needed | Limited to one property condition per filter |
| Multiple filters on the same view | Supports AND logic across several properties | Cannot create OR logic within a single view |
| Formula property used as a filter target | Supports complex conditions including OR logic, date math, and text matching | Requires writing and maintaining a formula |
| Linked database with a filtered view | Shows filtered data on a separate page without affecting the original database | Extra step to create and maintain the linked database |
Each method works for a different scenario. Use a simple filter when you need one condition. Use a formula when you need OR logic or date calculations. Use a linked database when you want to show filtered data on a different page or to a different audience.
To create an OR filter with a formula, write a formula that returns true if any condition is met. For example, if you want to show pages where Status is Urgent or Priority is High, write: if(prop(“Status”) == “Urgent” or prop(“Priority”) == “High”, true, false). Then filter the view on this formula equals true.
Conditional visibility in Notion relies entirely on views and filters. There is no per-page visibility toggle. If you need to hide a single page from everyone except its creator, use the page-level permissions by restricting access to that individual page. For group-based visibility, create separate views for each group and share only the relevant view or linked database.