skills/integrations/notion/notion-connect/SKILL.md
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.
npx skillsauth add beam-ai-team/beam-next-skills notion-connectInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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 skills/notion-master/scripts/check_notion_config.py
If exit code 2 (not configured), run the interactive setup wizard:
python 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 skills/notion-master/scripts/check_notion_config.py
Exit code meanings:
If exit code 2 (config incomplete):
python 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 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 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 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 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 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 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 skills/notion-master/scripts/manage_page.py get --page <page_id>
python 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 skills/notion-master/scripts/manage_blocks.py children --page <page_id>
# Simple block
python skills/notion-master/scripts/manage_blocks.py append \
--page <page_id> --type paragraph --text "Your content here"
# Multiple blocks
python skills/notion-master/scripts/manage_blocks.py append \
--page <page_id> --content '[{"type": "heading_1", ...}, {"type": "paragraph", ...}]'
python skills/notion-master/scripts/manage_blocks.py update \
--block <block_id> --content '{"paragraph": {"rich_text": [...]}}'
python 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 skills/notion-master/scripts/manage_users.py list --save
02-memory/integrations/notion-users.yamlpython 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 skills/notion-master/scripts/manage_comments.py list --page <page_id>
# New comment on page
python skills/notion-master/scripts/manage_comments.py create \
--page <page_id> --text "Your comment here"
# Reply to existing discussion
python 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
databases:
- id: "abc123-def456"
name: "Client Projects"
parent: "Marketing" # For disambiguation
url: "https://notion.so/..."
properties:
- name: "Name"
type: "title"
- name: "Status"
type: "select"
options: ["Not Started", "In Progress", "Complete"]
- name: "Priority"
type: "select"
options: ["Low", "Medium", "High"]
- name: "Due Date"
type: "date"
- name: "Assignee"
type: "people"
- id: "ghi789-jkl012"
name: "Content Calendar"
parent: null
url: "https://notion.so/..."
properties:
- name: "Title"
type: "title"
- name: "Publish Date"
type: "date"
- name: "Channel"
type: "multi_select"
options: ["Blog", "Twitter", "LinkedIn"]
---
# Notion Databases Context
Auto-generated by notion-connect skill.
Run "refresh notion" to update.
When user says a database name:
Disambiguation prompt (if multiple matches):
Found 3 databases matching "Projects":
1. Client Projects (Marketing)
2. Personal Projects
3. Project Templates
Which one? (enter number or be more specific)
| Error | Action | |-------|--------| | No databases found | Check Notion integration has database access | | Database not in context | Run discovery: "refresh notion" | | Permission denied | Verify integration connected to database | | Rate limited | Wait and retry with exponential backoff | | Invalid property | Show valid options from cached schema |
Load notion-master/references/error-handling.md for detailed troubleshooting.
First-time setup:
User: "connect to notion"
AI: Running Notion discovery...
Found 5 databases: Client Projects, Content Calendar, CRM, Tasks, Meeting Notes
Saved to context. You can now query any database by name!
Query by name:
User: "query my Projects for active items"
AI: Querying "Client Projects"...
Found 12 active items:
1. Website Redesign (High priority, due Jan 15)
2. Q1 Marketing Plan (Medium priority, due Jan 30)
...
Create page:
User: "add a new task to my Tasks database"
AI: Creating in "Tasks" database.
Required properties:
- Task Name: [your input]
- Status: Not Started / In Progress / Complete
- Due Date: [optional, format: YYYY-MM-DD]
What's the task name?
Notion Connect v1.1 - Meta-skill for complete Notion workspace integration
Changelog:
tools
Build a Palantir-shape, PDF-native use-case proposal document for a sophisticated enterprise account: research-grounded use cases (each with description, challenge, impact, value), an operating-graph ontology page, a recommended PoC with a week-by-week plan, and a closing page that asks for one decision. Load when a client asks us to 'propose high-impact use cases', requests a use-case presentation/catalog for a function (finance, HR, ops), or when a technical evaluation team will review candidates to pick a PoC. NOT for single-account cold outreach (use prospect-brief), full process diagnostics (use operating-diagnostic), or priced proposals (use proposal-creation).
development
Convert Beam Figma slide designs into high-fidelity, editable HTML presentation decks. Use when Codex is asked to audit Figma slides, extract slide templates, rebuild Beam slides as HTML decks, decide whether Figma imagery should be exported or rebuilt in HTML/CSS, create Beam/Prism-compatible deck templates, or improve fidelity of existing Beam HTML slide rebuilds.
development
Use the Beam AI reusable slide library: individual HTML slide templates extracted from Beam Figma rebuilds, kept separate from deck themes and full deck templates. Load when the user asks for a slide library, specific Beam slide patterns, reusable Figma-inspired slides, Prism slide-library items, or slide-level HTML templates.
development
Use Beam AI deck and report design packs, HTML templates, and curated examples to create sales decks, customer intro decks, RPO decks, and DIN A4 use-case proposal reports. Load when the user asks for Beam-branded presentation templates, Prism-compatible deck templates, Beam report templates, customer intro decks, commercial proposals, or reusable HTML deck/report examples.