Skip to content

Adopt

5 surfaces

Surfaces

Integrations

Strategy & Discovery

2
VistalyProductboard

Research & Insights

1
Dovetail

Knowledge & Docs

1
Notion

Design

1
Figma

Analytics

1
PostHog
Knowledge & DocsBeta

Coming from Notion

95% entity overlap

Two-way sync

Notion organizes what you wrote. UPG structures what you know.

The structural finding

Notion is schema-agnostic: the structure lives in your database configurations. A Notion relation property between databases is structurally a UPG edge. An 'Opportunities' database with a 'Drives' relation pointing to 'Solutions' already encodes opportunity_drives_solution, just with no canonical name. UPG provides that name and makes it queryable.

What UPG adds

1

Graph traversal: Notion can't answer 'show me all personas and their connected JTBDs' in one call. UPG can: one query, typed edges, definitive result.

2

Semantic relationships: Notion relations are untyped links. UPG edges have types (persona_has_jtbd, hypothesis_has_experiment). The type is the meaning.

3

Portability: your Notion databases become a git-tracked .upg file. Diff your strategy between quarters. Export to any tool.

Schema mapping

Direct matches
Database (named "Opportunities")opportunityDatabase name determines entity type
Database (named "Features")feature
Database (named "Personas")persona
Database (named "Experiments")experiment
Page (standalone)document
Relation property(typed edge, inferred from column name)
Maps with caveats
Database (generic name)documentAdapter prompts user to assign entity type
Select propertyproperty enum
What UPG adds
No gaps: Notion can represent any UPG entity if the database is named correctly
Skipped:Notion templates · Embedded databases · Synced blocks

The key edge

The single most important semantic relationship this integration enables.

opportunity_drives_solution

Defined in the UPG specification

Sample import

A Notion workspace with product databases: Opportunities, Features, Personas

Input (from Notion)
Output (UPG nodes)
Database
Opportunities
Name infers entity type
opportunity
Onboarding friction for new users
Database row
Onboarding friction for new users
feature
Guided setup wizard
opportunity_drives_solution
Database row (Features)
Guided setup wizard
persona
The New Builder
Database row (Personas)
The New Builder

Roundtrip

MCP-POWERED LOOPLive
Notion ──import──▶ UPG ──enrich──▶ UPG ──write back via MCP──▶ Notion

Full bidirectional sync via upg-notion-sync: your UPG graph lives in Notion as first-class databases.

Writes back
  • ·Full UPG graph as Notion databases, one database per entity type
  • ·Typed relation properties for every UPG edge
  • ·Bi-directional sync: changes in Notion flow back into UPG
$ npx @unified-product-graph/notion-sync push

Powered by the notion MCP server

How to import your Notion data

Via the CLI (coming soon)

The Notion adapter is built and tested. A one-command import via the UPG CLI is in development:

npx unified-product-graph import --from notion

This will fetch your Notion data, map entity types automatically, and write everything to your graph. Today you can use the Markdown import or the adapter directly in code.

▸ For developers: use the adapter directly
import { NotionAdapter } from '@unified-product-graph/adapters'
// Pass pre-fetched Notion data as SourceItem[]
const adapter = new NotionAdapter()
const result = await adapter.convert(items)
// result.nodes → typed UPG entities
// result.edges → canonical relationships
// result.warnings → items needing review

Get started

The Notion adapter ships in @unified-product-graph/adapters. Install it, then run the import command.

# one-time install
$ npm install -g unified-product-graph

# then import
$ upg import --from notion

Other tools in Knowledge & Docs

← All integrations