一键导入
organize-database
Transform unstructured Notion pages into a well-designed database with proper schema and migration
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Transform unstructured Notion pages into a well-designed database with proper schema and migration
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | organize-database |
| description | Transform unstructured Notion pages into a well-designed database with proper schema and migration |
| argument-hint | [page or workspace area to organize] |
Transform unstructured Notion pages into a well-designed, queryable database.
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) |
Every property value MUST use the correct nested format. The Notion API rejects flat values.
// 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": { "email": "user@example.com" }
}
Key gotcha: rich_text is an ARRAY of text objects, never a plain string.
Audit existing content -- find the pages to organize:
pages(action="search", query="<topic>") to locate scattered pagesDesign schema -- create the database with identified properties:
databases(action="create", parent_id="<parent_page_id>", title="...", properties={
"Name": { "title": {} },
"Category": { "select": { "options": [{ "name": "..." }] } },
"Tags": { "multi_select": { "options": [{ "name": "..." }] } },
...
})
select for status/category -- it enables Notion's board view.Bulk-create pages from existing content:
pages(action="create", parent_id="<database_id>", properties={...}, content=[...])Archive old pages (only after user confirms migration looks correct):
blocks(action="delete", block_id="<old_page_block_id>") or move to archive pageVerify the new database:
databases(action="query", database_id="<id>") to list all entries