Notion Databases: Filters and Forcing Functions
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.
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?
What does “Is Not Empty” do, and why is it useful compared with forcing a specific value?
How can users control which default value “Is Not Empty” applies?
Which Notion property types can’t be targeted by forcing functions, and what happens if they’re used anyway?
How do relations turn forcing functions into a multi-database workflow tool?
What is a Self Referential Filter, and how does it reduce template maintenance?
Review Questions
- When would you choose “Is Not Empty” over forcing a specific status value in a Notion view?
- Why can forcing functions fail when targeting Formula or Roll-up properties?
- How do option ordering and relation forcing combine to make templates work smoothly across many records?
Key Points
- 1
Forcing functions are view filters that also apply default values to properties when new rows are created from that view.
- 2
A “Today” view can automatically set a due date on newly created tasks, preventing blank required fields.
- 3
Board views inherently apply forcing behavior by using a property (often Select) to define Kanban columns.
- 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
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
Relations can be forced to auto-link new tasks to the correct record in another database, enabling class-specific task lists.
- 7
Forcing functions aren’t reliably respected for external imports like Web Clipper and CSV merges, at least based on the transcript’s testing.