How to Build Notion Database With Conditional Property Visibility
🔍 WiseChecker

How to Build Notion Database With Conditional Property Visibility

You want to hide certain properties in a Notion database so they only appear when a specific condition is met. For example, a “Due Date” field should show only when the status is set to “In Progress.” Notion does not offer a built-in conditional visibility toggle for database properties. This article explains how to simulate conditional property visibility using formulas, linked databases, and views. You will learn a practical method to show or hide fields based on the value of another property.

Key Takeaways: Simulating Conditional Property Visibility in Notion

  • Formula property with if() and empty(): Returns a value only when a condition is met, leaving the field blank otherwise.
  • Linked database view filtered by rollup: Creates a separate view that shows or hides entire rows based on a condition.
  • View-level property hiding: Manually hide properties per view to restrict what appears in each database tab.

ADVERTISEMENT

How Notion Database Properties Work and Why Conditional Visibility Is Not Built In

Notion database properties are columns that apply to every row in the database. You cannot set a rule that hides a column for some rows and shows it for others. This design keeps the database structure consistent. However, business users often need fields that appear only when relevant, such as a “Review Date” that shows only after a task is marked “Complete.” Without conditional visibility, users see empty fields or irrelevant data, which clutters the interface. Notion provides three workarounds: formula-based conditional output, filtered linked databases, and view-level property hiding. Each method has trade-offs in complexity and flexibility.

Method 1: Using a Formula Property to Conditionally Display a Value

A formula property can return a value only when a condition is true. This is not true visibility hiding — the property column still exists — but the cell appears empty when the condition is false. This method works best for calculated fields like “Days Until Deadline” that should appear only after a start date is set.

Prerequisites

You need a database with at least one property that can serve as the condition, such as a Select property named “Status” or a Date property named “Start Date.” Ensure the condition property contains values you can test with a formula.

Steps to Create a Conditional Formula Property

  1. Add a new Formula property
    Open your database and click the + icon in the top-right corner of the property row. Select Formula from the property type list. Name it “Conditional Field.”
  2. Write the conditional formula
    Click the formula cell to open the formula editor. Enter a formula using if() and empty(). For example, to show a “Review Date” only when the Status is “Complete”:
    if(prop("Status") == "Complete", prop("Review Date"), "")
    This returns the Review Date value if Status is Complete, or an empty string otherwise.
  3. Test the formula
    Add a new row and set the Status to “Complete.” The formula field displays the Review Date. Change the Status to “In Progress” and the formula field becomes blank.
  4. Hide the original property if desired
    If you want to hide the original “Review Date” property entirely, click the property name and select Hide from the dropdown. The formula property becomes the only visible field that shows the date conditionally.

ADVERTISEMENT

Method 2: Using a Linked Database With Filtered Views

This method creates a separate database that pulls rows from the original database but shows only those rows that match a condition. It effectively hides entire rows, not just property values. Use this when you want to display a subset of entries with different properties visible.

Steps to Create a Filtered Linked Database

  1. Create a linked database
    On a new page or in a different section of your workspace, type /linked and select Linked database. Choose your original database from the list.
  2. Apply a filter to the linked database
    Click the linked database menu (three dots in the top-right corner) and select Filter. Add a filter condition, for example: “Status” is “Complete.” Only rows with Status set to Complete appear in this view.
  3. Hide irrelevant properties in this view
    Click the linked database menu again, select Properties, and hide any columns you do not want shown for this filtered set. For instance, hide “Start Date” and show only “Review Date.”
  4. Create additional views for other conditions
    Click the + tab next to the existing view name to add a new view. Rename it, for example, “In Progress View.” Apply a different filter (Status is “In Progress”) and show different properties.

Method 3: Manual View-Level Property Hiding

Notion allows you to show or hide properties on a per-view basis. This is not conditional per row, but it lets you create separate views that display different columns. Users switch between views to see the relevant properties for their current task.

Steps to Set Up View-Level Property Hiding

  1. Create a new view
    In your database, click the + tab next to the existing view name. Choose the view type (Table, Board, etc.) and name it, for example, “Task Details.”
  2. Hide properties for this view
    Click the view menu (three dots) and select Properties. Toggle off the properties you do not want to appear in this view. Only the properties you leave toggled on will show.
  3. Combine with filters for conditional row visibility
    Set a filter on the same view to show only rows that meet a condition, such as “Priority equals High.” This way, the view shows only high-priority tasks with only the relevant properties visible.

Common Mistakes and Limitations When Simulating Conditional Visibility

Formula returns a string instead of empty cell

If your formula returns an empty string "", the cell appears blank but the column still exists. This is the closest Notion can get to hiding a property. To avoid confusion, hide the original property that the formula references so users see only the formula column.

Linked database does not update automatically

A linked database reflects changes from the source database in real time. If you delete a row in the source, it disappears from the linked database. However, if you change a property value so that a row no longer matches the filter, the row disappears from the linked view. This is expected behavior, but users may think data is lost. Add a note explaining that filtered views hide rows that do not match the condition.

Multiple views become hard to maintain

When you create many views, each with different property visibility and filters, updating properties across all views becomes tedious. Use a central database with a single source of truth and create linked databases for each use case. This way, you edit properties in one place and all linked views update automatically.

Formula vs Linked Database vs View Hiding: Comparison

Item Formula Property Linked Database + Filter View-Level Hiding
Hides property values conditionally Yes, per cell Hides entire rows, not cells Hides columns for entire view
Requires formula writing Yes No No
Maintains original database structure Yes No, creates a separate view Yes, but only within that view
Best for Showing calculated fields only when relevant Separating rows by stage with different visible fields Quickly switching between property sets manually

You now have three methods to simulate conditional property visibility in a Notion database. Use the formula approach for hiding individual field values based on a condition. Use linked databases with filters when you need to show entire rows only after a condition is met. Use view-level property hiding for manual switching between column sets. For a clean workspace, combine a formula property with a linked database view that hides the original property. This keeps the database uncluttered while preserving all data in the background.

ADVERTISEMENT