Skip to content

Databases

Notion databases are one of the most useful things to sync, and N2O leans on Obsidian Bases - Obsidian’s own built-in database feature - to display them. Each Notion database becomes a folder of Markdown notes plus a native .base view, so you get real table, card and list layouts inside Obsidian with no third-party plugin. Bases has those three view types and no kanban, so a Notion board is generated as a table grouped by its status or select property. Every item also gets Dataview-ready frontmatter.


Each Notion database becomes a folder in your vault:

Notion/
├── Projects/
│ ├── Project Alpha.md
│ ├── Project Beta.md
│ └── _files/ <- media from database items
└── Projects.base <- Bases view (sibling of the folder)

Database items become .md files. A .base file is generated next to each database folder (see Bases views below).


Every database property is mapped to YAML frontmatter in each item file:

---
icon: "🚀"
status: "In Progress"
due-date: 2026-01-15
tags:
- frontend
- feature
priority: "High"
notion_id: "page-uuid"
notion_url: "https://notion.so/..."
created: 2026-01-10T09:00:00.000Z
updated: 2026-01-15T14:30:00.000Z
n2o_type: "database-item"
n2o_database: "db-uuid"
---

Property names are sanitized to YAML-safe keys: "Due Date" -> due-date, "Priority #" -> priority. See Supported Properties for the full mapping table.


Sync only the rows you want from a database:

  1. Open Settings > Sync > Pick from Notion.
  2. Select the database in the Choose items picker.
  3. Click the Filters button next to the selected database.
  4. Add conditions (e.g. Status = “In Progress”).
  5. Choose All (AND) or Any (OR) match mode.

Only matching items are fetched from Notion. Filtered-out items don’t appear in your vault.


Property mappings (rename, exclude, format)

Section titled “Property mappings (rename, exclude, format)”

Customize how properties appear in frontmatter - per database:

  • Rename: due-date -> deadline
  • Exclude: Hide a property from frontmatter entirely
  • Format: Change date format per property (ISO, human-readable, tags)

Configure in Settings > Sync > Pick from Notion: select a database in the picker, then click its Properties button.


Inline databases nested inside Notion pages are discovered automatically. When you sync a parent page, any inline databases inside it are included. This is controlled by Settings > Sync > Pick from Notion > Include inline databases.


N2O generates native Obsidian Bases .base files for every synced database - on by default.

Enable or disable in Settings > Sync > Databases > Bases for Databases.

The .base file sits next to (not inside) the database folder:

Notion/
├── Projects/ <- database folder
│ └── ...
└── Projects.base <- Bases view

N2O generates 7 views for each database:

ViewTypeDescription
TableTableAll properties, smart column order
GalleryCardsVisual card layout with cover images
ListListCompact single-line entries
BoardTableGrouped by status or select property
TimelineTableSorted by date property
CompactTableName + top 3 key properties
BooksCardsReading-optimized with banner images

Alongside those 7, N2O adds the database’s own Notion view and puts it first, so opening the .base shows the Notion-authored layout with its real columns, cover, filters and sort. Which Notion view that is comes from Settings > Sync > Databases > Default View Type: N2O picks the first Notion view of that type, or Notion’s first view when the database has none. Every other Notion view on the database gets its own .base under _views/.

This runs on the official Notion API. Enhanced Metadata is not involved and does not change it.

If you create additional views in Obsidian’s Bases UI, N2O preserves them across syncs. Only the 7 default views are regenerated - your custom views are untouched.


When a Notion page contains a linked database view (a filtered gallery, table, or list view embedded inside a page), N2O generates a filtered .base file for each one - scoped to only the items that view shows.

Linked view .base files are placed in a _views/ subfolder inside the database folder:

Notion/
├── Projects/
│ ├── _views/
│ │ ├── Active Projects.base <- filtered linked view
│ │ └── My Tasks.base <- another linked view
│ ├── Project Alpha.md
│ └── ...
└── Projects.base <- full database view

This mirrors what Notion shows - instead of seeing every database item, you see exactly the filtered subset from each linked view.


N2O can generate Obsidian Canvas files that visualize database items as an interactive graph.

Enable in Settings > Sync > Databases > Canvas for Databases (off by default).

The .canvas file is placed inside the database folder:

Notion/
└── Projects/
├── Projects.canvas <- Canvas file (inside folder)
├── Project Alpha.md
└── ...
  • Items arranged in a 4-column grid (260×60px nodes, 80px horizontal / 40px vertical gap)
  • Each node links to its .md file in the vault
  • Relations become edges between nodes, labeled with the relation property name

N2O frontmatter works with Dataview out of the box:

TABLE status, due-date, tags
FROM "Notion/Projects"
SORT due-date ASC

Useful fields:

  • created / updated - ISO timestamps for sorting
  • tags - native Obsidian tags (the Tags multi-select property maps to the tags: key automatically)
  • All other properties are available as frontmatter keys

Notion relation properties map to wikilinks in frontmatter:

related-projects:
- "[[Project Alpha]]"
- "[[Project Beta]]"

On push, N2O resolves wikilinks back to Notion page IDs using the notion_id stored in each linked file’s frontmatter.