Notion Database Import

Import a Notion data source into a Dotabase with mapped properties, page content, attachments, relations, and resumable incremental updates.

Overview

Description

Notion Database Import turns one connected Notion data source into one Dots Dotabase, with each source page represented as a row. The adapter discovers available data sources, translates Notion property types into Dots schema definitions, flattens page blocks into readable Markdown, and preserves source identity so later pulls update the imported row rather than duplicating it.

The importer runs through the managed connection proxy and a throttled REST client. Its cursor tracks an incremental edit-time baseline and a resumable page cursor, allowing interrupted backfills to continue and later runs to request only pages edited at or after the last high-water mark. Attachments and relations pass through the generic connector engine’s binary and deferred-link machinery.

Selling Points

  • Move structured knowledge without flattening everything to plain text. Common Notion properties become typed Dotabase properties.
  • Keep page content usable. Supported block children are rendered into Markdown instead of remaining opaque source references.
  • Resume large imports safely. Checkpointed pagination prevents an interruption from forcing a complete restart.
  • Stay current with incremental pulls. Edit-time watermarks re-fetch boundary pages safely while provenance-keyed upserts remove duplicates.
  • Preserve imperfect data honestly. Unsupported or malformed values are recorded in sync metadata rather than killing the entire row.

User Story

A product team keeps a research database in Notion and wants it searchable alongside native Dots knowledge. An owner connects Notion, selects the database, maps it to a new or existing Dotabase, and starts a backfill. The team receives typed rows with readable page bodies; subsequent scheduled pulls refresh edited pages while leaving row identity stable.

Extension Surface

This feature is configurable because a binding selects the Notion resource, target Dotabase, schema strategy, field mappings, cadence, and behavior-skip choices. The available source contract is implemented in packages/connectors/src/notion/index.ts, while packages/connectors/src/notion/schema-map.ts centralizes the mapping used for both schema description and row emission. Creating a different provider adapter uses the separate pluggable Source Connector Framework; this specific Notion behavior changes through binding configuration, not runtime plugins.

Capabilities & Limits

Capabilities include source discovery, schema mirroring or mapping, page-body extraction, incremental edit detection, external-file attachment handling, formula and rollup value capture, and deferred relation resolution. Value-level degradation means one problematic property does not discard the rest of a page.

Current limits include one data source per binding, one-way import only, and partial fidelity for unsupported block types. Standalone pages and wikis, webhook tails, hard-delete reconciliation, richer block rendering, and hydration beyond platform property caps are named successors. People values are not yet mapped to Dots user identities.

Implementation Map

  • packages/connectors/src/notion/index.ts
  • packages/connectors/src/notion/schema-map.ts
  • packages/connectors/src/notion/blocks.ts
  • packages/connectors/src/notion/map-row.ts
  • apps/web/src/composition/connector-wiring.ts

Properties

Property
Value
product
dots-platform
extensibility
configurable
module
Importers, Dotabases
packages
connectors, apps-web
status
shipped
surface
background
summary
Import a Notion data source into a Dotabase with mapped properties, page content, attachments, relations, and resumable incremental updates.

Connections

Notion Database Import · Explore connections

  • requirestoConnected Importer Accounts
  • requirestoSync Binding Management
  • implemented bytoapps/web/src/composition/connector-wiring.ts
  • implemented bytopackages/connectors/src/notion/index.ts
  • implemented bytopackages/connectors/src/notion/blocks.ts
  • implemented bytopackages/connectors/src/notion/schema-map.ts
  • implemented bytopackages/connectors/src/notion/map-row.ts
  • implementstoImporter Spec — `notion` (Notion)
  • extendstoSource Connector Framework

Connected Records9

Extends
Implemented by
apps/web/src/composition/connector-wiring.ts
packages/connectors/src/notion/blocks.ts
packages/connectors/src/notion/index.ts
packages/connectors/src/notion/map-row.ts
packages/connectors/src/notion/schema-map.ts
Implements
Importer Spec — `notion` (Notion)
Requires
9 connections.