Templates could be the most powerful feature in Notion, but they are currently undercooked. If templates were dynamic and automated, then we would be able to design dashboards and UI's that could update across thousands of pages. But templates in Notion currently act like a physical ink stamp. After you imprint a layout on a page, it's permanent.
Here are three ideas on how Notion templates could be made dynamic:
1. Component Boxes
After you apply a template to a database entry, there is no longer a relationship between the instance and the template. If you want to hide a parameter, change a filter, or reverse a sort after a template has been stamped, you need to go back into every instance to update it. This isn't sustainable when you have tens, or hundreds, or thousands of instances.
A template could be comprised of a series of components. Instead of stamping static content into a template, you could inject live modules that can be updated over time. If you are in an instance that was already created, and you want to edit a linked database view, you should be able to apply those changes across all past and future instances of the template.
This could be done by dragging content into "component boxes." Something similar already exists with template buttons.
You can drag content into this box, and then make it so that when you click a button, it auto-spawns all of that content. A component box could act in a similar way. Anything you drag into a component box (a linked database, a header, text, a checklist) is a live-object that can be updated across instances.
2. Linking Filters to Parameters
Most of my templates contained linked databases with filters. However, after I apply a template, I often need to go in and manually configure these filters. Notion came out with something in 2020 that begins to fix the issue, called a "self-referencing" filter. It lets you filter a linked database within a template by the name of the template. This is a great start, but many of my filters refer to parameters of the database (a date, a select, a check), not just the name.
The most flexible solution would be to allow linked database filters within templates to reference parameters. Many of my templates require me to manually adjust a filter based on data that already exists in the instance. Why don't we have the ability to pull that data into a filter?
For example, here is my journal template. It has a date field in it (the top red arrow). Then there is a linked database of Notes, that is filtered by the Created date. I currently have to go into the filter and enter the exact date. In the red box below, I should be able to select from date-related parameters in the parent template, which would create a live link.
3. Batch Assign Templates
I currently have around 1,300 database entries in my Tags database. Each tag has notes, events, and people linked into it, and I have a tag template that arranges all of this data into a neat view. The issue is that I have to manually assign this template to each tag. I have to click to open it, assign the template, and then fill out some filters. It's too much manual work.
Batch-assigning templates would allow layouts to be automatically applied when cards are created. From this menu, instead of just being able to edit or duplicate a template, we should be able to configure the conditions for how templates get applied.
There are two basic ways to handle this. In some cases, you might want to assign a template to every instance within a database. In other cases, you might have multiple template types for a given database. We should be able to assign a template based on a parameter within the instance. All instances with the Day parameter get the Daily Journal Template, and all instances within the Week parameters get the Weekly Journal Template).
I've tried to build systems that revolved around templates in the past, but got burned by not knowing the limitations. I was slowed down by the need to manually assign templates and configure filters. When I was struck with new ideas on how to improve a layout, I was stuck in the design that I already stamped on dozens of instances. I learned to not build systems that relied on template designs.
However, "dynamic templates," could bring on a new paradigm where templates become the root of a system. Dashboards could be auto-generated and auto-populated. Thousands of dashboard could be improved over time by gradually iterating over a handful of layouts. Notion users would have the power and flexibility to design information systems with high impact.