Automate Notion database creation with JSON schemas
Project description
Notion Automation
This repository automates the creation of databases and entries in Notion using predefined JSON schemas and entry definitions. It is optimized for extensibility and ease of use with minimal configuration.
Core Magic ✨
- Automates Notion data entry: Define your entries and schema in JSON, and let the automation do the heavy lifting.
- Extensible & Customizable: Plug-and-play JSON files for schema and entry definitions.
- Seamless API Integration: Built-in Notion API integration for easy database creation.
Quick Setup
1. Clone & Install Dependencies
git clone https://github.com/your-repo/notion-automation.git
cd notion-automation
pip install -r requirements.txt
2. Configure Notion API
Create a .env file with your Notion API key and page ID:
NOTION_API_KEY=your_notion_api_key
NOTION_PAGE_ID=your_notion_page_id
3. Define Your Schema and Entries
Store your schema and entries (optional) in the plugins/ folder. The schema defines the database structure, and the entries define the content.
Example Schema (schema.json):
{
"title": "Project Entities",
"properties": {
"Entity ID": {
"property_type": "title"
},
"Name": {
"property_type": "rich_text"
},
"Type": {
"property_type": "select",
"options": [
{ "name": "Entity", "color": "blue" },
{ "name": "Component", "color": "green" },
{ "name": "Module", "color": "purple" }
]
},
"Created At": {
"property_type": "date"
},
"Tags": {
"property_type": "multi_select",
"options": [
{ "name": "Core", "color": "red" },
{ "name": "Active", "color": "green" },
{ "name": "Archived", "color": "gray" },
{ "name": "Reference", "color": "yellow" }
]
}
}
}
Example Entries (entries.json):
{
"entries": [
{
"Entity ID": "E001",
"Name": "Alpha",
"Type": "Entity",
"Created At": "2023-10-15",
"Tags": ["Core", "Active"]
},
{
"Entity ID": "E002",
"Name": "Beta",
"Type": "Component",
"Created At": "2023-10-10",
"Tags": ["Archived", "Reference"]
},
{
"Entity ID": "E003",
"Name": "Gamma",
"Type": "Module",
"Created At": "2023-10-20",
"Tags": ["Core", "Active"]
}
]
}
4. Run the Magic 🪄
Option 1: Using Environment Variable for Page ID
To create a database with preseeded entries in the default page specified in the .env file, run:
python cli.py --schema plugins/schema.json --entries plugins/entries.json
If you want to create an empty database without adding entries, simply omit the --entries argument:
python cli.py --schema plugins/schema.json
Option 2: Specifying Target Page ID via CLI
To create a database in a specific Notion page by providing the --page-id argument, use:
python cli.py --schema plugins/schema.json --entries plugins/entries.json --page-id your_target_page_id
Note: Providing the --page-id argument will override the NOTION_PAGE_ID specified in the .env file for that execution.
Core Files
cli.py: The main entry point for creating databases and entries.notion_client/: Contains API integration logic and models.plugins/: Store your schema and entry JSON files here. This folder is.gitignored for privacy and customization.
Logs & Debugging
Logs are automatically generated in notion_automation.log. Check the logs for detailed information on API calls and errors.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file notion_automation-1.0.3.tar.gz.
File metadata
- Download URL: notion_automation-1.0.3.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7771770116f83adeed57e0ccd0bd7c15b75e7c0f3fb95fd3962bc77edda176c8
|
|
| MD5 |
467a568db37fa79ef72790a975eb719c
|
|
| BLAKE2b-256 |
01b23406db47e59b9cf3e993645df8c305ef3a10581bef1d3b1e6c4dd7fe9a4a
|
File details
Details for the file notion_automation-1.0.3-py3-none-any.whl.
File metadata
- Download URL: notion_automation-1.0.3-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b47443138082d694de303bd50f12d7804d5d0f9980ab5679d1bcf2f2df5a37c3
|
|
| MD5 |
9d65b04e4862fb0d14b31a1162d910ae
|
|
| BLAKE2b-256 |
ece1c44885efce2f1b9a7acaea9a48498ef99578d807d580c28e92a38ee19f30
|