How do I create a relational database in Tana Outliner like in Notion or Airtable?
Because Tana Outliner is a graph, building relational databases is easy. Think of supertags as databases and fields as columns in a database.
Let's use an example: You have two supertags: #person and #project. You want to relate the two by assigning a team lead to each project that draws from person.
To relate each project to one team lead, we can make an Instance field called "Team lead" in the project. This allows us to select the #person supertag so this field will now create a dropdown of options from every instance of the person supertag.
Now, every time you assign a team lead to every project, on the other side you can look at a person and see what projects they are noted as Team lead for in the Reference section.
There are many other ways to relate one database to another in Tana Outliner that go beyond what relational databases can do. That's because all information in the app is stored as a graph, and on top of this we have flexible ways to build schemas with supertags and fields. It's everything a relational database has, with much more freedom and flexibility in the long run.
How do I set up relationships between nodes?
There are two main ways to create a connection between one node and another:
References and inline references
Use references or inline references to create an unstructured two-way connection between the nodes and the place you mention them in. The reference section shows you all unstructured mentions under "Referenced in..."
Fields
Fields and their field values create structured two-way connections between nodes. Structured in the sense that the connection is labeled via the name of the field. Example: A book node has a field called Author, where you can enter a reference to any person. The relationship between the book and the person is that they are the Author.
Fields offer a variety of ways to create structured connections:
- Create a Plain field and copy/paste or @-mention any node into it
- Create an Options field where you can choose from a list of your choice
- Create a Supertag from Options field where you can choose from a list of all nodes tagged a chosen supertag
Fields show up in the Reference section as "Appears as [field name] in..."
Can I show an alternative field value in a title?
Yes you can, with this kind of annotation:
${My field.Alternative}
Where My field is the field you want appearing in the title, and .Alternative is the name of the field within the field value you want to target instead. This is great whenever you, for example, want to swap out written-out states for emojis.
Example: You have an Options field with some pre-determined options. For each option, add a field like "Icon" and put a different value for each.
When writing out the title expression in the supertag configuration, use the field name in the title expression format, plus add the field (in this case, "Icon") you are targeting inside the field value, which will make the value of the new target field appear instead.
You can go deeper with the targeting by adding more periods. So, you could have something like Field.Field2.Field3 for example. For more information on title expressions, check out the Supertags documentation.
How can I use system fields in title expressions?
Calculated system fields are prefixed with sys: to avoid being mixed up with user-created fields with the same name.
Example: ${sys:owner}
Calculated system fields and their respective title expressions can be found in the Fields documentation.
What are field definitions and how do I find them?
A field definition is a special node that stores the settings of a field.
To grab the field definition from a field, put your cursor in the field name, then press copy (Cmd/Ctrl+C) and put your cursor on an empty node and paste (Cmd/Ctrl+V). That gives you a reference to the field definition. Then you can run the command "Bring referenced nodes here" to swap the reference with the actual node.
For more information on field definitions, see the Fields documentation.
What does "Number of nodes with this tag" do?
This system field is relevant only for supertag objects, and reveals the number of times a tag has been used.
How to use it:
- Make a search node with IS TAG, which will find all supertags in your graph
- Display: Number of nodes with this tag
It shows you how many nodes the tags have been applied to.
How do I bulk delete a field and its values?
In order to bulk-delete fields and their values, they need to be in Table view and not part of a supertag template. Here's how you do it:
If you know the field you're targeting but do not have a list of nodes with the field already, use the field definition in a search node to find all nodes with this field.
With the list of nodes that have the field and values you want to delete:
- View as table
- Display that field as a column
- Right-click the column header, then select "Delete column and values"
How can I bulk add or remove supertags?
Select the nodes, then type # or use the command "Add tag" to add supertags to all selected nodes. Use the command "Remove tag" to bulk-remove supertags.
How can I bulk set a value to fields?
Select the nodes whose field you want to set. Enter the command line (Cmd/Ctrl+K) and type "Set" to see your options.
The "Set [field]" command only works on field types Option, Instance, Tana Outliner User and Checkbox.
How do I share a supertag from my private workspace to a shared one?
Currently, the easiest and most foolproof way to do this is to not share it but instead build the supertag, with its fields and anything else necessary for the supertag to work, from the ground up in the new space.
That said, if you still want to move a supertag over that exists only in your private workspace, the main work is to ensure that there's nothing in the supertag that references something in your private workspace, otherwise it will appear as broken to others once it's moved. It's like packaging up a zip file. You can't just zip up a bunch of shortcuts, you need the real files in there or the recipient will only see broken shortcuts.
You'll also have to remember to move over other things like field options, commands, and ensure that no saved view options contain elements from your workspace. Basically, you must ensure that nothing you're moving over from your workspace contains references from your workspace.
To bring all nodes (except system nodes) into the supertags, fields and commands you want to move, use the command "Bring referenced node here". Alternatively, you can move each necessary node separately too if you for example want the field definition to exist outside the supertag. But the key is that everything that is connected to what you're sending over gets sent over too, otherwise there will be missing pieces.
Can you build a wiki in Tana Outliner?
Absolutely. The most common place to do this is on the Home node. You can build top-level wiki structures, usually arranged on workspace home nodes.
How does "Set view definition" command work?
There is a command called "Set view definition". It can set the Group, Sort and Display settings of a node view. There is no good UX for this at the moment, so the instructions are not conventional nor friendly for beginners. But right now, this is one way of doing it:
- Mock up a node that will have sample child nodes representing the data you'll be applying this command on
- Create the exact view settings you want with Group, Sort and Display
- Open the command line and run "Debug Node" on the parent node and look at "Views for node"
- Clone the fields over to the command node
When you run this command on a node, this should change the view settings according to your configuration.
Can I open another workspace's day node by default?
It is not possible to change which workspace's day node you open by default; it is fixed to your private workspace's day node.
However, open the sidebar and hold Option (Mac) or Alt (Windows) whilst clicking on a workspace in your sidebar to open its day node for today.
How can I check how many nodes in a workspace?
If you go to the home node (top level node) of the workspace, click the three dots on the right side to open the workspace menu, then select "Export as JSON" or "Markdown". You'll then see a dialogue modal that includes a node count estimate.
Does Tana Outliner have a 500k node limit?
The workspace node limit has been increased to 750k (as of January 2025). Go to Account settings, then API tokens to know how many nodes are in your workspaces.
The node limit only applies for information synced via API. Other than that, you can continue to work in any workspace without limitations. The limit per workspace only applies when information is being added from an external service like the Input API or Readwise. This is a temporary precaution to prevent external services from overloading the app.
You can still use a workspace that has well over 750k nodes as long as you're writing things yourself. There's no performance hit at that mark.
Should I use the DUE DATE field?
No, create your own date fields.
Early on in Tana Outliner's history the team wanted a way to find overdue tasks but there was no current way of searching for nodes with dates relative to a certain date. So, the system field "Due Date" along with the OVERDUE search operator was created specifically for this reason.
But since the introduction of LT/GT (less than/greater than) operators, there is no reason to use the system Due Date field along with the OVERDUE search operator. A user defined field for Date or Due Date offers more flexibility:
- You can use the initialize feature if desired
- Consistent color with other fields
- You can hide the field
Different supertag on day nodes by interval?
In the Journal node section of your settings, there is an expression you can use to define intervals of when you want certain supertags applied to certain calendar nodes. It is loosely based on the cron format.
In the field values for defining which supertag to use, you can nest the tags under a cron expression to have it apply only during a certain interval. The expression takes on this custom format:
DAY-OF-MONTH MONTH DAY-OF-WEEK YEAR
Legend:
- DAY-OF-MONTH: 1-31
- MONTH: 1-12, or JAN-DEC
- DAY-OF-WEEK: MON-SUN, or 1-7
- YEAR: 2024
Common syntax:
*(asterisk) represents "every" possible value for that field?(question mark) is used to specify "no specific value" and is often used where the day of the month or day of the week should be ignored,(comma) is used to separate discrete values
Specify the cron expression as a field value, and nest the supertag you want used at that interval.
Pattern examples:
? * FRI *= Every Friday? * MON-FRI *= Every weekday31 12 * *= Last day of the yearL * ? *= Last day of the month* 3 * *= Every day in March15 * * *= The 15th day of every month* * MON,WED,FRI *= Every Monday, Wednesday, and Friday1 1,4,7,10 * *= January 1, April 1, July 1, and October 114 2 * *= Every February 14th1-7 * MON *= The first Monday that occurs between the 1st and 7th of every month
Note that it will only apply to all new day nodes once the rule is established. It will not apply to existing nodes.
Calendar nodes in other workspaces lack default tags
Calendar nodes don't need the day/week/month/year supertags to work, so they come by default without them. It's only necessary to add supertags if you want to use templates for gathering tasks or doing reviews for that time granularity.
To add default tags, go to the node options menu and you should see an option to "Create default day/week/month/year tag". Once it's created, you can rename and customize it like any other supertag.
You can see all the tags you've created for your day/week/month/year nodes by going to Settings, then Journaling, then Advanced config.
For setting up calendar node tags based on specific intervals, see the section above. For more detail, check out the Dates and calendar nodes documentation.
Semantic functions Part of and COMPONENTS REC explanation
In the docs, there's a paragraph that goes like this: "Keep separate the fields used for the definition versus use of semantic information. One thing is establishing the semantic relationships with a field that has semantic functions turned on, another thing is using the semantic map as field values in another field."
Community member Sabrina asked if someone could explain what this sentence meant. This led to explainer videos being recorded as an alternative way to show how they work:
- Part 1: Making the semantic connections
- Part 2: Using the semantic connections
Can I collaborate with others in Tana Outliner?
Yes! It is already possible to collaborate with other users in Tana Outliner if they have a Tana Outliner account.
To invite another Tana Outliner user to collaborate with you in a shared workspace:
- Create a new workspace
- Invite them to the workspace by going to the workspace home node and clicking on the "Member" button (they must already have a Tana Outliner account)
Right now you can:
- Write simultaneously in the same context (not same node) and see where others are, live
- Invite members to a shared workspace and everyone can see and edit content that is owned by that workspace. All have to be existing Tana Outliner users.
- Notify members of nodes and they get pinged immediately with a link to the node. Notifications show up in the sidebar.
Collaboration features coming later:
- Admin tools for managing content and members
- Access control per member
- More collaboration tools
How are AI credits used on shared workspaces?
Whoever triggers the request for an AI command or adds the Meeting agent will have the credits charged to their account.
Can I keep work and personal life separate?
Yes. Use separate workspaces or tags and views to keep them distinct, while still linking things that overlap like your calendar, energy, or long-term goals. Your boundaries, your rules.
Is my personal data private?
Yes. Your personal workspace is yours alone. AI features operate within your account, and you control what's captured and how it's structured. Your second brain stays yours.

