SKILL.md
Notion Save Skill
Save content directly to your Notion database via the official Notion API with full Markdown support.
Features
- Markdown formatting: Headings, lists, tables, code blocks, bold/italic
- File input: Read content from .md files (recommended for long content)
- Auto-chunking: Handles content longer than Notion's block limits
- Inline formatting: Bold, italic, code, links are preserved
Usage
For long content (recommended): Use file input
# Write content to temp file first, then upload
python scripts/save_to_notion.py --title "Research Report" --file report.md --api-key "YOUR_KEY"
For short content: Use inline
python scripts/save_to_notion.py --title "Quick Note" --content "# Title\n- Item 1\n- Item 2" --api-key "YOUR_KEY"
List recent pages
python scripts/save_to_notion.py --list --api-key "YOUR_KEY"
Markdown Support
| Element |
Syntax |
Notion Block Type |
| Heading 1 |
# Title |
heading_1 |
| Heading 2 |
## Title |
heading_2 |
| Heading 3 |
### Title |
heading_3 |
| Bullet list |
- item |
bulletedlistitem |
| Numbered list |
1. item |
numberedlistitem |
| Code block |
`lang |
code |
| Table |
`\ |
col \ |
col \ |
` |
table |
| Quote |
> text |
quote |
| Divider |
--- |
divider |
| Bold |
text |
annotation |
| Italic |
text |
annotation |
| Code |
` text ` |
annotation |
| Link |
[text](url) |
link |
Claude Usage Pattern
When saving long research reports or conversation content:
- Write content to a temp markdown file
- Call the script with
--file parameter
- Delete temp file after success
Example:
# In Claude's workflow:
# 1. Write content to temp file
with open('temp_report.md', 'w', encoding='utf-8') as f:
f.write(markdown_content)
# 2. Call save script
python scripts/save_to_notion.py --title "Report Title" --file temp_report.md --api-key "KEY"
Configuration
- Default database ID:
2decc7dd-3404-8002-a7e7-d64733a75885
- API key can be passed via
--api-key or NOTIONAPIKEY env var
Error Handling
- 401 error: Invalid API key
- 404 error: Database not shared with integration
- Validation error: Check property names match database schema