Get AI summaries of any video or article — Sign up free
Notion Databases: Filters and Forcing Functions thumbnail

Notion Databases: Filters and Forcing Functions

Thomas Frank Explains·
5 min read

Based on Thomas Frank Explains's video on YouTube. If you like this content, support the original creators by watching, liking and subscribing to their content.

TL;DR

Forcing functions are view filters that also apply default values to properties when new rows are created from that view.

Briefing

Forcing functions in Notion databases let users set automatic defaults for new rows—so key properties don’t start out blank. The core idea is simple: a forcing function is a filter on a database view that “forces” newly created entries to adopt specific values in chosen properties. In practice, that means a task added from a “Today” view can automatically receive today’s due date instead of leaving the due field empty, while other properties remain blank until the user fills them in.

That same mechanism becomes especially useful in Kanban-style workflows. Board views create columns based on a property (typically a Select or sometimes Multi-select or Person). When a new card is created inside a column, Notion effectively applies a forcing function automatically—setting the status (or equivalent property) to the column’s value. The transcript also shows a manual version of the same concept: using a filter condition like “Status is Not Empty.” Rather than forcing a specific status (e.g., To Do), “Is Not Empty” forces Notion to pick a default from the property’s option list—specifically the first value in the list. By reordering options, users control which default gets applied, ensuring new rows always land in a sensible starting state.

The technique scales well in real templates. In the Ultimate Tasks template’s “Today” view, the “Is Not Empty” trick is applied to multiple properties—such as Kanban-State and Priority—so new tasks created from the inbox automatically receive To Do and Medium. A key nuance is that this approach can preserve view visibility: if a user changes Priority from Medium to High, the task can still appear in the intended filtered group because the forcing function didn’t hard-code a single value; it only guaranteed the field wasn’t empty.

Notion’s forcing functions do have limits. Most property types can be used, but several are effectively read-only in this context—especially Formula, Roll-ups, Created Time, Created By, Last Edited Time, and Last Edited By. Attempting to force values into these properties can result in a blank new page and even missing row creation, because Notion won’t write to those fields. Files and Media are also constrained: forcing an empty file may work, but forcing a non-empty file value doesn’t.

A major unlock comes from using relations as forcing functions. By linking a tasks database to a classes database, a view can automatically assign the correct class relation when creating tasks from within a class page. The transcript goes further by using a Self Referential Filter inside a class template, so each new class instance updates the linked database filter automatically. That means users don’t have to edit the relation filter every time they create a new class; the template adapts based on the page name.

Finally, forcing functions aren’t consistently respected when data enters from outside Notion. Web Clipper imports and CSV merges don’t apply forcing functions to incoming rows (and the API wasn’t tested). For manual creation and template-driven workflows, though, forcing functions are positioned as a practical way to reduce friction, enforce structure, and keep databases usable from the moment new rows are created.

Cornell Notes

Forcing functions in Notion databases automatically fill certain properties when new rows are created from a specific database view. They work by using a view filter that “forces” values—such as setting a due date in a “Today” view or assigning a default status in a Kanban workflow. A powerful variant uses “Is Not Empty,” which forces a non-empty value by selecting the first option in the property list, letting users control defaults by reordering options. Forcing functions can’t write to read-only property types like Formula, Roll-ups, and various created/edited timestamps, and they also fail for non-empty Files and Media. Relations plus templates (including self-referential filters) enable multi-database setups where new tasks automatically attach to the correct related record.

How does a forcing function differ from a normal database filter in Notion?

A normal filter only controls what rows are displayed. A forcing function also influences what happens when a new row is created from that view: it forces the new row to adopt specified values in certain properties. The transcript’s “Today” view shows this clearly—only rows with due = today are displayed, but new rows created from that view automatically get the due date set to today instead of leaving it blank.

What does “Is Not Empty” do, and why is it useful compared with forcing a specific value?

“Is Not Empty” forces a property to be non-empty when a new row is created, but it doesn’t hard-code a particular option like To Do or Doing. Notion chooses a default based on the property’s option order—specifically the first value in the list. This matters because users can later change the value (e.g., from Medium to High) without the task being excluded by a view that was expecting a single forced value.

How can users control which default value “Is Not Empty” applies?

By reordering the options in the Select/Multi-select property. Since Notion uses the first option in the list as the default, moving the desired default (e.g., Doing above To Do) ensures new rows created from that view automatically receive that top-listed value.

Which Notion property types can’t be targeted by forcing functions, and what happens if they’re used anyway?

The transcript lists read-only/advanced properties that can’t be written via forcing functions: Formula, Roll-ups, Created Time, Created By, Last Edited Time, and Last Edited By. If a forcing function targets one of these (e.g., a formula like “Days Left is not empty”), creating a new row can produce a blank new page and may not create the row at all, because Notion won’t write to those fields. Forcing functions can still use these properties for filtering existing rows, but not for setting values on creation.

How do relations turn forcing functions into a multi-database workflow tool?

Relations can be forced so that new tasks automatically link to the correct record in another database. The transcript’s example links tasks to classes: a class page’s linked task view uses a filter like “Class contains [that class name],” which forces the relation on newly created tasks. This creates class-specific task lists without manual relation assignment for each new task.

What is a Self Referential Filter, and how does it reduce template maintenance?

A Self Referential Filter is used inside a template so the linked database filter updates based on the page instance. In the transcript, a “Class Template” contains a linked task database filtered to “Class contains [the current class page name].” When a new class instance is created from the template, the filter automatically updates (e.g., “Class contains Gravity Dodge ball”), so users don’t need to edit the filter for every new class.

Review Questions

  1. When would you choose “Is Not Empty” over forcing a specific status value in a Notion view?
  2. Why can forcing functions fail when targeting Formula or Roll-up properties?
  3. How do option ordering and relation forcing combine to make templates work smoothly across many records?

Key Points

  1. 1

    Forcing functions are view filters that also apply default values to properties when new rows are created from that view.

  2. 2

    A “Today” view can automatically set a due date on newly created tasks, preventing blank required fields.

  3. 3

    Board views inherently apply forcing behavior by using a property (often Select) to define Kanban columns.

  4. 4

    Using “Is Not Empty” forces a property to be non-empty by selecting the first option in the property’s list, which can be controlled by reordering options.

  5. 5

    Forcing functions can’t write to read-only property types such as Formula, Roll-ups, and created/edited timestamp fields, and attempts can lead to blank pages or missing row creation.

  6. 6

    Relations can be forced to auto-link new tasks to the correct record in another database, enabling class-specific task lists.

  7. 7

    Forcing functions aren’t reliably respected for external imports like Web Clipper and CSV merges, at least based on the transcript’s testing.

Highlights

A “Today” view doesn’t just filter tasks—it also sets the due date automatically when new tasks are created from that view.
“Is Not Empty” is a defaulting strategy: Notion picks the first option in the property list, so option order becomes a control knob.
Forcing functions can’t write to Formula, Roll-ups, or created/edited metadata fields; targeting them can prevent proper row creation.
Self Referential Filters let templates update linked-database filters automatically based on the new page’s name.
Relation-based forcing functions turn multi-database setups into automatic assignment systems (e.g., tasks auto-linked to the correct class).

Mentioned