← ClaudeAtlas

organize-databaselisted

Transform unstructured Notion pages into a well-designed database with proper schema and migration
n24q02m/better-notion-mcp · ★ 31 · API & Backend · score 86
Install: claude install-skill n24q02m/better-notion-mcp
# Organize Database Transform unstructured Notion pages into a well-designed, queryable database. ## Property Type Decision Guide Choose the right property type -- LLMs frequently pick the wrong one: | Data pattern | Correct type | Wrong choice (common mistake) | |---|---|---| | Fixed categories (status, priority) | `select` | `rich_text` (loses filtering) | | Multiple tags per item | `multi_select` | `select` (only allows one) | | References to other DBs | `relation` | `rich_text` (breaks linking) | | Computed from relations | `rollup` | `formula` (can't aggregate across DBs) | | True/false flags | `checkbox` | `select` with Yes/No (over-engineered) | | Long-form content | Page body (blocks) | `rich_text` property (2000 char limit) | ## Property Format Reference Every property value MUST use the correct nested format. The Notion API rejects flat values. ```jsonc // WRONG -- flat values (API will error or silently fail) { "Tags": "engineering", "Status": "In Progress", "Description": "Some text" } // CORRECT -- properly typed nested objects { "Tags": { "multi_select": [{ "name": "engineering" }] }, "Status": { "select": { "name": "In Progress" } }, "Description": { "rich_text": [{ "text": { "content": "Some text" } }] }, "Name": { "title": [{ "text": { "content": "Page title" } }] }, "Done": { "checkbox": true }, "Due Date": { "date": { "start": "2026-03-23" } }, "URL": { "url": "https://example.com" }, "Count": { "number": 42 }, "Contact": { "