# US 2026/0073802 A1 · Enabling a user to efficiently discover and utilize a complex software system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2026/0073802 A1
- Document ID: US20260073802A1
- Status: Published application
- Kind: A1
- Application number: 19/390,415
- Filed: 2025-11-14
- Published: 2026-03-12
- Earliest claimed: 2024-03-20
- Assignees: Notion Labs, Inc.
- Applicants: Notion Labs, Inc.
- Inventors: Lu Li
- Web page: https://patentgrep.com/patent/US20260073802A1

## CPC

- G09B 5/02: with visual presentation of the material to be studied, e.g. using film strip
- G06F 40/186: Templates
- G09B: EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS (devices for psychotechnics or for testing reaction times A61B5/16; games, sports, amusements A63; projectors, projector screens G03B)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The system provides a hierarchical template associated with a software system. The hierarchical template includes a root template, which includes leaf templates. A leaf template is a collection of multiple primitives including at least two of one or more properties, one or more views, one or more tutorials, and one or more blocks. A property includes a name and a value. A view includes a view of a database according to a criterion. A tutorial includes an explanation of a use associated with the software system. A block is configured to include content. The system provides a user interface to add a first primitive among the multiple primitives to the leaf template, remove a second primitive in the collection of multiple primitives from the leaf template, add a first template to the hierarchical template, and remove a second template from the hierarchical template.

## Claims

### Claim 1

A non-transitory, computer-readable storage medium comprising instructions recorded thereon, wherein the instructions, when executed by at least one data processor of a system, cause the system to:
determine, by a processor, an amount of use of a hierarchical template in a software system;
automatically move the hierarchical template associated with a frequent use case of the software system to a position on a graphical user interface (GUI) at a center of a window associated with the GUI based on the determined amount of use; and
enable a user to customize an instance of the hierarchical template at multiple levels of the hierarchical template.

### Claim 2 (depends on 1)

The non-transitory, computer-readable storage medium of claim 1, comprising instructions to:
provide the hierarchical template,
wherein the hierarchical template includes a root template,
wherein the root template includes multiple leaf templates,
wherein the root template includes a database,
wherein a first leaf template among the multiple leaf templates includes multiple properties,
wherein a second leaf template among the multiple leaf templates includes multiple views,
wherein a view among the multiple views includes a subset of properties among the multiple properties satisfying a criterion;
receive an input from the user to create an instance of the database;
create the instance of the database including the multiple properties and the multiple views;
receive an input indicating to add a first primitive including a second view or a second property; and
modify the instance of the database to include the second view or the second property.

### Claim 3 (depends on 1)

The non-transitory, computer-readable storage medium of claim 1, comprising instructions to:
provide the hierarchical template including a root template,
wherein the root template includes multiple leaf templates,
wherein the root template includes a feature,
wherein the hierarchical template includes a mid-level node whose parent is the root template,
wherein the mid-level node includes a database,
wherein the database is a second hierarchical template,
wherein a first leaf template among the multiple leaf templates includes multiple properties,
wherein a second leaf template among the multiple leaf templates includes multiple views,
wherein a view among the multiple views includes a subset of properties among the multiple properties satisfying a criterion;
receive an input from the user to create an instance of the feature;
create the instance of the feature including the database, the multiple properties, and the multiple views;
receive an input indicating to add a second database to the feature; and
modify the instance of the feature to include the second database.

### Claim 4 (depends on 1)

The non-transitory, computer-readable storage medium of claim 1, comprising instructions to:
provide the hierarchical template including a root template, wherein the root template includes multiple leaf templates, wherein the root template includes an app,
wherein the hierarchical template includes a first mid-level node whose parent is the root template and a second mid-level node positioned between the root template and a leaf template among the multiple leaf templates in the hierarchical template,
wherein the first mid-level node includes a feature,
wherein the feature is a second hierarchical template,
wherein the second mid-level node includes a database,
wherein the database is a third hierarchical template,
wherein a first leaf template among the multiple leaf templates includes multiple properties,
wherein a second leaf template among the multiple leaf templates includes multiple views,
wherein a view among the multiple views includes a subset of properties among the multiple properties satisfying a criterion;
receive an input from the user to create an instance of the app;
create the instance of the app including the feature, the database, the multiple properties, and the multiple views;
receive an input indicating to add a second feature to the app; and
modify the instance of the app to include the second feature.

### Claim 5 (depends on 1)

The non-transitory, computer-readable storage medium of claim 1, comprising instructions to:
provide the hierarchical template including a tutorial,
wherein the hierarchical template belongs to a template type including a document, a wiki, a project management, or a calendar, and
wherein the tutorial depends on the template type;
receive an input from the user to create an instance of the hierarchical template;
create the instance of the hierarchical template including the tutorial;
determine whether a second user is initially accessing the instance of the hierarchical template;
upon determining that the second user is initially accessing the instance of the hierarchical template, provide the tutorial to the user; and
upon determining that the second user is not initially accessing the instance of the hierarchical template, not provide the tutorial to the user.

### Claim 6 (depends on 1)

The non-transitory, computer-readable storage medium of claim 1, comprising instructions to:
receive an indication of a persona associated with the user;
obtain an indication of multiple template types associated with multiple hierarchical templates including the hierarchical template,
wherein the hierarchical template belongs to a template type among the multiple template types including a document, a wiki, a project management, or a calendar;
based on the persona associated with the user, determine the hierarchical template having the template type corresponding to the persona; and
provide the hierarchical template to the user.

### Claim 7 (depends on 1)

The non-transitory, computer-readable storage medium of claim 1, comprising instructions to:
receive an input to move an instance of a block in a first instance of the hierarchical template to a second instance of a second hierarchical template;
determine a first template type associated with the first instance of the hierarchical template and a second template type associated with the second instance of the second hierarchical template;
upon determining that the first template type and the second template type match, move the instance of the block from the first instance of the hierarchical template to the second instance of the second hierarchical template; and
upon determining the first template type and the second template type do not match, refuse to move the block.

### Claim 8

A method comprising:
determining, by a processor, an amount of use of a hierarchical template in a software system;
automatically moving the hierarchical template associated with a frequent use case of the software system to a position on a graphical user interface (GUI) at a center of a window associated with the GUI based on the determined amount of use; and
enabling a user to customize an instance of the hierarchical template at multiple levels of the hierarchical template.

### Claim 9 (depends on 8)

The method of claim 8, comprising:
providing the hierarchical template,
wherein the hierarchical template includes a root template,
wherein the root template includes multiple leaf templates,
wherein the root template includes a database,
wherein a first leaf template among the multiple leaf templates includes multiple properties,
wherein a second leaf template among the multiple leaf templates includes multiple views,
wherein a view among the multiple views includes a subset of properties among the multiple properties satisfying a criterion;
receiving an input indicating to create an instance of the database;
creating the instance of the database including the multiple properties and the multiple views;
receiving an input indicating to add a first primitive including a second view or a second property; and
modifying the instance of the database to include the second view or the second property.

### Claim 10 (depends on 8)

The method of claim 8, comprising:
providing the hierarchical template including a root template, wherein the root template includes multiple leaf templates, wherein the root template includes a feature,
wherein the hierarchical template includes a mid-level node whose parent is the root template,
wherein the mid-level node includes a database,
wherein the database is a second hierarchical template,
wherein a first leaf template among the multiple leaf templates includes multiple properties,
wherein a second leaf template among the multiple leaf templates includes multiple views,
wherein a view among the multiple views includes a subset of properties among the multiple properties satisfying a criterion;
receiving an input indicating to create an instance of the feature;
creating the instance of the feature including the database, the multiple properties, and the multiple views;
receiving an input indicating to add a second database to the feature; and
modifying the instance of the feature to include the second database.

### Claim 11 (depends on 8)

The method of claim 8, comprising:
providing the hierarchical template including a root template, wherein the root template includes multiple leaf templates, wherein the root template includes an app,
wherein the hierarchical template includes a first mid-level node whose parent is the root template and a second mid-level node positioned between the root template and a leaf template among the multiple leaf templates in the hierarchical template,
wherein the first mid-level node includes a feature,
wherein the feature is a second hierarchical template,
wherein the second mid-level node includes a database,
wherein the database is a third hierarchical template,
wherein a first leaf template among the multiple leaf templates includes multiple properties,
wherein a second leaf template among the multiple leaf templates includes multiple views,
wherein a view among the multiple views includes a subset of properties among the multiple properties satisfying a criterion;
receiving an input indicating to create an instance of the app;
creating the instance of the app including the feature, the database, the multiple properties, and the multiple views;
receiving an input indicating to add a second feature to the app; and
modifying the instance of the app to include the second feature.

### Claim 12 (depends on 8)

The method of claim 8, comprising:
providing the hierarchical template including a tutorial,
wherein the hierarchical template belongs to a template type including a document, a wiki, a project management, or a calendar, and
wherein the tutorial depends on the template type;
receiving an input indicating to create an instance of the hierarchical template;
creating the instance of the hierarchical template including the tutorial;
determining whether the user is initially accessing the instance of the hierarchical template; and
selectively performing providing the tutorial to the user, or not providing the tutorial to the user, depending on whether the user is initially accessing the instance of the hierarchical template or not.

### Claim 13 (depends on 8)

The method of claim 8, comprising:
receiving an indication of a persona associated with the user;
obtaining an indication of multiple template types associated with multiple hierarchical templates including the hierarchical template,
wherein the hierarchical template belongs to a template type among the multiple template types including a document, a wiki, a project management, or a calendar,
based on the persona associated with the user, determining the hierarchical template having the template type corresponding to the persona; and
providing the hierarchical template to the user.

### Claim 14

A system comprising:
at least one hardware processor; and
at least one non-transitory memory storing instructions, which, when executed by the at least one hardware processor, cause the system to:
determine, by a processor, an amount of use of a hierarchical template in a software system;
automatically move the hierarchical template associated with a frequent use case of the software system to a position on a graphical user interface (GUI) at a center of a window associated with the GUI based on the determined amount of use; and
enable a user to customize an instance of the hierarchical template at multiple levels of the hierarchical template.

### Claim 15 (depends on 14)

The system of claim 14, comprising instructions to:
provide the hierarchical template,
wherein the hierarchical template includes a root template,
wherein the root template includes multiple leaf templates,
wherein the root template includes a database,
wherein a first leaf template among the multiple leaf templates includes multiple properties,
wherein a second leaf template among the multiple leaf templates includes multiple views,
wherein a view among the multiple views includes a subset of properties among the multiple properties satisfying a criterion;
receive an input indicating to create an instance of the database;
create the instance of the database including the multiple properties and the multiple views;
receive an input indicating to add a first primitive including a second view or a second property; and
modify the instance of the database to include the second view or the second property.

### Claim 16 (depends on 14)

The system of claim 14, comprising instructions to:
provide the hierarchical template including a root template, wherein the root template includes multiple leaf templates, wherein the root template includes a feature,
wherein the hierarchical template includes a mid-level node whose parent is the root template,
wherein the mid-level node includes a database,
wherein the database is a second hierarchical template,
wherein a first leaf template among the multiple leaf templates includes multiple properties,
wherein a second leaf template among the multiple leaf templates includes multiple views,
wherein a view among the multiple views includes a subset of properties among the multiple properties satisfying a criterion;
receive an input indicating to create an instance of the feature;
create the instance of the feature including the database, the multiple properties and the multiple views;
receive an input indicating to add a second database to the feature; and
modify the instance of the feature to include the second database.

### Claim 17 (depends on 14)

The system of claim 14, comprising instructions to:
provide the hierarchical template including a root template, wherein the root template includes multiple leaf templates, wherein the root template includes an app,
wherein the hierarchical template includes a first mid-level node whose parent is the root template and a second mid-level node positioned between the root template and a leaf template among the multiple leaf templates in the hierarchical template,
wherein the first mid-level node includes a feature,
wherein the feature is a second hierarchical template,
wherein the second mid-level node includes a database,
wherein the database is a third hierarchical template,
wherein a first leaf template among the multiple leaf templates includes multiple properties,
wherein a second leaf template among the multiple leaf templates includes multiple views,
wherein a view among the multiple views includes a subset of properties among the multiple properties satisfying a criterion;
receive an input indicating to create an instance of the app;
create the instance of the app including the feature, the database, the multiple properties, and the multiple views;
receive an input indicating to add a second feature to the app; and
modify the instance of the app to include the second feature.

### Claim 18 (depends on 14)

The system of claim 14, comprising instructions to:
provide the hierarchical template including a tutorial,
wherein the hierarchical template belongs to a template type including a document, a wiki, a project management, or a calendar, and
wherein the tutorial depends on the template type;
receive an input indicating to create an instance of the hierarchical template;
create the instance of the hierarchical template including the tutorial;
determine whether the user is initially accessing the instance of the hierarchical template;
upon determining that the user is initially accessing the instance of the hierarchical template, provide the tutorial to the user; and
upon determining that the user is not initially accessing the instance of the hierarchical template, not provide the tutorial to the user.

### Claim 19 (depends on 14)

The system of claim 14, comprising instructions to:
receive an indication of a persona associated with the user;
obtain an indication of multiple template types associated with multiple hierarchical templates including the hierarchical template,
wherein the hierarchical template belongs to a template type among the multiple template types including a document, a wiki, a project management, or a calendar;
based on the persona associated with the user, determine the hierarchical template having the template type corresponding to the persona; and
provide the hierarchical template to the user.

### Claim 20 (depends on 14)

The system of claim 14, comprising instructions to:
receive an input to move an instance of a block in a first instance of the hierarchical template to a second instance of a second hierarchical template;
determine a first template type associated with the first instance of the hierarchical template and a second template type associated with the second instance of the second hierarchical template; and
upon determining that the first template type and the second template type match, move the instance of the block from the first instance of the hierarchical template to the second instance of the second hierarchical template; and
upon determining the first template type and the second template type do not match, refuse to move the block.
