Connect to any Notion database by name. Load when user mentions 'notion', 'connect notion', 'setup notion', 'query [database-name]', 'add to [database]', 'notion databases', or any database name from persistent context. Meta-skill that discovers workspace, caches schemas, and routes to appropriate operations.
Meta-skill for complete Notion workspace integration.
Enable natural language interaction with ANY Notion database. User says "query my Projects database" or "add a page to CRM" and it just works - no manual API calls, no remembering database IDs, no schema lookups.
This skill uses notion-master shared library. Load references as needed:
| Resource | When to Load |
|---|---|
notion-master/scripts/check_notion_config.py | Always first (pre-flight) |
notion-master/references/setup-guide.md | If config check fails |
notion-master/references/error-handling.md | On any API errors |
notion-master/references/api-reference.md | For API details |
If user has never used Notion integration before:
Run config check to detect setup state:
python 00-system/skills/notion-master/scripts/check_notion_config.py
If exit code 2 (not configured), run the interactive setup wizard:
python 00-system/skills/notion-master/scripts/setup_notion.py
The wizard will:
.envuser-config.yaml02-memory/integrations/notion-databases.yamlAfter setup completes, user can immediately start querying databases
Setup triggers: "setup notion", "connect notion", "configure notion"
Every workflow MUST start with config validation:
python 00-system/skills/notion-master/scripts/check_notion_config.py
Exit code meanings:
If exit code 2 (config incomplete):
python 00-system/skills/notion-master/scripts/setup_notion.pyIf exit code 0 or 1: Continue to requested operation
Triggers: "connect notion", "sync notion", "discover databases", "what databases", "refresh notion"
Purpose: Find all accessible databases in user's Notion workspace and cache schemas.
Steps:
python 00-system/skills/notion-master/scripts/discover_databases.py
02-memory/integrations/notion-databases.yamlFirst-time flow: If notion-databases.yaml doesn't exist, discovery runs automatically.
Triggers: "query [database]", "find in [database]", "search [database]", "show [database]", "list [database]"
Purpose: Query any database by name with optional filters.
Steps:
02-memory/integrations/notion-databases.yaml
python 00-system/skills/notion-master/scripts/search_skill_database.py --db <database_id> [--filter "..."] [--sort ...] [--limit N]
Filter Syntax (load notion-master/references/filter-syntax.md if user needs help):
--filter "Status = Active"--filter "Priority = High"--filter "Tags contains Design"Note: Currently supports single filter per query. Multiple filters (AND/OR) planned for future.
Triggers: "add to [database]", "create in [database]", "new [item] in [database]"
Purpose: Create a new page in any database with property validation.
Steps:
python 00-system/skills/notion-master/scripts/create_page.py --db <database_id> --properties '{"Title": "...", "Status": "..."}'
Triggers: "create database", "new database", "add property to [database]", "update [database] schema"
Purpose: Create new databases or modify existing database schemas.
Steps:
python 00-system/skills/notion-master/scripts/manage_database.py create \
--parent <page_id> \
--title "Database Name" \
--properties '[{"name": "Name", "type": "title"}, {"name": "Status", "type": "select", "options": ["Todo", "Done"]}]'
python discover_databases.pypython 00-system/skills/notion-master/scripts/manage_database.py update \
--db <database_id> \
--add-property '{"name": "Priority", "type": "select", "options": ["Low", "Medium", "High"]}'
Supported Property Types for Creation:
title - Primary name field (required, one per database)rich_text - Multi-line textnumber - Numeric values (with optional precision)select - Single choice from optionsmulti_select - Multiple choices from optionsdate - Date/datetimecheckbox - Boolean true/falseurl, email, phone_number - Validated text fieldspeople - User assignmentrelation - Link to another databaseTriggers: "update [page]", "edit [page]", "change [property] to [value]", "modify page"
Purpose: Modify properties of an existing page.
Steps:
python search_skill_database.py --db <id> --filter "Name contains [search]"python 00-system/skills/notion-master/scripts/manage_page.py update \
--page <page_id> \
--properties '{"Status": "Done", "Priority": "High"}'
Triggers: "get page [id]", "show page details", "delete page", "remove [page]"
Purpose: Retrieve full page details or delete a page.
Steps:
python 00-system/skills/notion-master/scripts/manage_page.py get --page <page_id>
python 00-system/skills/notion-master/scripts/manage_page.py delete --page <page_id>
Triggers: "append to [page]", "add section to [page]", "edit content of [page]", "list blocks", "delete block"
Purpose: Read, append, update, and delete content blocks within pages.
Steps:
python 00-system/skills/notion-master/scripts/manage_blocks.py children --page <page_id>
# Simple block
python 00-system/skills/notion-master/scripts/manage_blocks.py append \
--page <page_id> --type paragraph --text "Your content here"
# Multiple blocks
python 00-system/skills/notion-master/scripts/manage_blocks.py append \
--page <page_id> --content '[{"type": "heading_1", ...}, {"type": "paragraph", ...}]'
python 00-system/skills/notion-master/scripts/manage_blocks.py update \
--block <block_id> --content '{"paragraph": {"rich_text": [...]}}'
python 00-system/skills/notion-master/scripts/manage_blocks.py delete --block <block_id> --confirm
Supported Block Types (load notion-master/references/block-types.md for full list):
paragraph, heading_1, heading_2, heading_3, quote, calloutbulleted_list_item, numbered_list_item, to_do, togglecode (with language), equationimage, video, file, bookmarkdivider, table_of_contentsTriggers: "list users", "who can access", "get user", "find user"
Purpose: List workspace users and get user details for @mentions.
Steps:
python 00-system/skills/notion-master/scripts/manage_users.py list --save
02-memory/integrations/notion-users.yamlpython 00-system/skills/notion-master/scripts/manage_users.py me
Triggers: "add comment", "list comments", "comment on [page]", "reply to comment"
Purpose: Create and list comments on pages and discussions.
Steps:
python 00-system/skills/notion-master/scripts/manage_comments.py list --page <page_id>
# New comment on page
python 00-system/skills/notion-master/scripts/manage_comments.py create \
--page <page_id> --text "Your comment here"
# Reply to existing discussion
python 00-system/skills/notion-master/scripts/manage_comments.py create \
--discussion <discussion_id> --text "Your reply here"
Status: Planned for Phase 6
Sub-workflows:
Location: 02-memory/integrations/notion-databases.yaml
---
last_synced: 2025-12-10T23:00:00
sync_count: 3