Trilium can import ZIP exports from Notion while preserving structure and formatting.

## Import process

In Notion, there are two ways to export data:

- To export a single page (and optionally its sub-pages):
  - Select the page to export.
  - Press the […] button at the top-right of the window and select Export.
  - Ensure the following options are set:
    - Export format: HTML
    - Page content: Everything
    - Include subpages: On
    - Create folders for subpages: On
  - Press the Export button.
  - Wait for the download to finish.
- To export an entire workspace, press your user name badge at top-left and select Settings.
  - In the left section, look for the Workspace category and select General.
  - In the General settings page, look for the Export section and press the Export button corresponding to Workspace content.
  - Ensure the following options are set:
    - Export format: HTML
    - Page content: Everything
    - Include subpages: On
    - Create folders for subpages: On
  - Press the Export button.
  - Wait for the download to finish. Depending on the size of your workspace it might take a while. You will get a downloadable copy via email if takes too long.

In Trilium Notes:

1. In the Note Tree, right click and select Import into note.
2. In the Import from section, select Notion.
3. Upload the ZIP obtained in the previous step.

## Supported features

The following features are preserved by Trilium during the import process:

- Basic formatting (bold, italic, underline, strikethrough, headings, colors, highlights).
- Lists
- To-do lists
- Images and Attachments.
- Toggle sections
  - Nested toggle sections are also supported.
  - Toggle headings are stripped of their toggle button and become normal headings instead.
- Math Equations (inline or block)
- Link Previews
- Code blocks, with a best-effort attempt to restore the language.
- Mermaid Diagrams
- Links between other imported pages are converted to Internal (reference) links if they are part of the same import.
- Databases are imported as Collections (see below).
- Admonitions are preserved, including its emoji (added as part of the content).
- Columns are imported as transparent tables, preserving the column definition.
- Table of content blocks are removed, as the table of contents is already present in the sidebar (see Table of contents), as well as in shared notes.

## Databases

Notion databases are imported into Collections, where each item of the database is saved as a page in the collection. Through the use of inherited Promoted Attributes, most of the page properties in Notion are preserved by the import.

The resulting collection will be Table regardless of the original view the database was exported in. That's because the active view is not saved in the export and the table collection is the most compatible with Notion.

Notion type | Trilium
--- | ---
Text / Select / Status / Place | Single-valued `text` label
Number | Single-valued `number` label for plain numbers. Formatted values (currency, percent, thousands separators) are normalized to a bare number, e.g. `$1,200.50` → `1200.50`.
ID | Single-valued `number` or `text` label (depending on whether a prefix is configured)
Multi-select | One text label per option (multi)
URL / Email / Phone | `url` label (`mailto:`, `tel:`prefix)
Date | `datetime` if at least one has time. `date` if only dates. Two attributes if any of the dates have an end date.
Checkbox | `boolean` label (`true`/ `false`).
Person | One text label per user (multi)
Created by / Edited by | Single-valued `text` label
Created time / Last edited time | Assigned to the note's creation and modification date.
Relation | Mapped to relations, each link resolved to its target note via the existing cross-page map; targets outside the import are dropped.
Files & Media | The files are preserved as attachments, and a link to them is prepended to the content of the note for visibility.
Formulas / Rollup | A `text`, `number` or `boolean`label depending on the value. Dates are rendered as `text`because the export doesn't offer any type information. The Notion export does not preserve the formula/rollup configuration itself, instead it just exports the value.
Button / Verification / any other type | Unsupported, they will be dropped from the import.

Technical information

Every page property that can be preserved according to the table above is saved as a label or relation to the corresponding note (except for creation and modification dates which are saved at note level).

To maintain a similar UX to Notion, every property is also turned into Promoted Attributes at collection level. This also makes the columns visible in the table collection. The promoted attributes are made inheritable so that they appear when navigating in the child notes as well.

The names of the labels are intentionally converted to `camelCase` to match Trilium's conventions, but the full name of the column is preserved through the Alias mechanism of promoted attributes.

## Limitations

### Missing data from the import

The following information is not preserved by the import because it is not available in the export so it cannot be restored:

- The order of the pages and sub-pages.
- Creation/modification dates are restored only when the page includes Created time / Last edited time properties (collection or not); otherwise the import time is used.

### Cover images and page icon

The page icon or emoji is not preserved, with created notes having the default icon. The cover image is not imported at all.

## Reporting issues

When importing your Notion workspace, you might find issues in how a note is imported; in that case consider reporting it.

When reporting such an issue make sure to provide the following information:

- A .zip export of the original Notion note (and children if applicable). This allows us to reproduce the issue.
- A screenshot with how it originally looked like before the import and how it looks after the import.