Supported Properties
N2O maps every Notion database property to YAML frontmatter in your Obsidian files. The table below shows the exact format and whether each property survives a push back to Notion.
Round-trip key:
- ✓ — Full round-trip. Value preserved in both directions.
- ◑ — Partial. Pulls correctly, but something is lost or changed on push. See notes.
- ↓ — Pull only. Read-only in Notion API — cannot be written back.
Property types
Section titled “Property types”| Notion Type | Frontmatter | Example | Round-trip | Notes |
|---|---|---|---|---|
| Title | string | title: "My Page" | ✓ | Also used as the filename |
| Text | string | description: "Some text" | ✓ | |
| Number | number | priority: 5 | ✓ | |
| Select | string | status: "Active" | ✓ | Must match an existing option |
| Multi-select | string[] | tags: [a, b, c] | ✓ | Creates options if they don’t exist |
| Status | string | status: "In Progress" | ✓ | Must match an existing status group |
| Date | string (ISO) | due: 2026-01-15 | ✓ | |
| Date range | object | date: {start: "2026-01-15", end: "2026-01-20"} | ✓ | |
| Checkbox | boolean | completed: true | ✓ | |
| URL | string | website: "https://..." | ✓ | |
string | email: "user@example.com" | ✓ | ||
| Phone | string | phone: "+1234567890" | ✓ | |
| People | string[] | assignees: ["Alice", "Bob"] | ✓ | Display names shown; UUID stored internally for push |
| Files | string[] | attachments: ["file.pdf"] | ◑ | Downloaded locally; only external URLs are pushed back |
| Relation | string[] (wikilinks) | related: ["[[Page A]]", "[[Page B]]"] | ◑ | Wikilinks that don’t resolve to synced pages are dropped on push |
| Formula | depends | formula_result: 42 | ↓ | Computed — cannot be written via API |
| Rollup | depends | rollup_result: "Summary" | ↓ | Aggregated — cannot be written via API |
| Created time | string (ISO) | created: 2026-01-10T09:00:00Z | ↓ | System-managed |
| Last edited time | string (ISO) | updated: 2026-01-15T14:30:00Z | ↓ | System-managed |
| Created by | string | created-by: "Alice" | ↓ | System-managed |
| Last edited by | string | last-edited-by: "Bob" | ↓ | System-managed |
| Unique ID | string | uid: "PROJ-42" | ↓ | Auto-generated by Notion |
Notes on specific types
Section titled “Notes on specific types”Files and media
Section titled “Files and media”Files attached to a Notion property are downloaded to your vault immediately during sync (Notion’s S3 URLs expire after ~1 hour). The frontmatter shows only the local filename:
attachments: - report.pdf - screenshot.pngOn push, only external URL entries (items containing ://) are sent back to Notion. Local file paths are skipped — this prevents N2O from overwriting your Notion-hosted files with broken references.
Relations
Section titled “Relations”Relations render as wikilinks:
related: - "[[Project Alpha]]" - "[[Meeting Notes — Jan 15]]"On push, N2O resolves each wikilink back to a Notion page ID. If a linked page isn’t in your sync scope, the wikilink has no ID to resolve to and is dropped silently on push.
Formula and rollup
Section titled “Formula and rollup”Formula results can be strings, numbers, booleans, or dates depending on the formula expression. Rollups can be numbers, dates, or arrays. Both are read-only — editing them in frontmatter has no effect on Notion.
Read-only properties
Section titled “Read-only properties”These properties are never pushed back to Notion, even if you edit them in frontmatter:
formula— computed from other propertiesrollup— aggregated from relationscreated_time/last_edited_time— system timestampscreated_by/last_edited_by— system user referencesunique_id— auto-generated by Notion
Unsupported types
Section titled “Unsupported types”| Type | Reason |
|---|---|
verification | Notion URL verification status — not writable via API |
button | UI-only trigger — no data to sync |
Property name sanitization
Section titled “Property name sanitization”Notion property names are converted to YAML-safe keys automatically:
| Notion Property | Frontmatter Key |
|---|---|
Due Date | due-date |
Status | status |
Assignee(s) | assignees |
Priority # | priority |
My Property! | my-property |
Rules applied in order: lowercase → spaces to hyphens → strip non-alphanumeric (except _ and -) → collapse consecutive hyphens → trim leading/trailing hyphens.
Custom property mapping
Section titled “Custom property mapping”In Sync Configuration > Database Configuration, click a database and open Property Mappings to rename, reorder, or exclude any property. Custom mappings override the default sanitized key:
- Rename:
Due Date→deadlineinstead ofdue-date - Exclude: Hide a property from frontmatter entirely
- Format: Change how dates appear (ISO, human-readable, etc.)
Custom mappings are stored per database and survive across syncs.
Special handling: Tags
Section titled “Special handling: Tags”A Notion property named “Tags” (case-insensitive, multi_select type) maps to Obsidian’s native tags: frontmatter key instead of tags as a regular property. This makes synced pages appear in Obsidian’s tag search and Dataview tag queries automatically.
All other multi_select properties render as regular YAML arrays.
Frontmatter layout
Section titled “Frontmatter layout”Every synced file has three sections in its frontmatter:
---# 1. Visual metadata (icon, cover)icon: "🚀"cover: "cover-photo.jpg"
# 2. User properties (from your database schema)status: "In Progress"due-date: 2026-01-15tags: - frontend - feature
# 3. N2O sync metadata (do not edit)notion_id: "abc123..."notion_url: "https://notion.so/..."created: 2026-01-10T09:00:00.000Zupdated: 2026-01-15T14:30:00.000Zn2o_type: "database-item"n2o_database: "db-uuid..."n2o_parent_id: "parent-uuid..."n2o_parent_type: "database"---The N2O sync metadata section is used internally to track sync state and resolve wikilinks. Editing these fields manually may cause sync issues.