Notion row writer
Skill baronguyen001/ai-automation-skills/skills/notion-row-writer
8 production-tested Claude skills: automation, Gemini cost/structured output, OSS bounty scouting, ML validation.
npx -y skills add baronguyen001/ai-automation-skills --skill notion-row-writerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Upsert a row into a Notion database by a stable key with NOTION_API_KEY and database id from env. Use when the user asks to write automation results to Notion, update a tracker row, dedupe by URL/id/date, or keep a lightweight Notion database in sync.
SKILL.md
2.2 KB, 461 tokens by cl100k_base, as published. Nobody here has run it
Notion Row Writer
Use this skill when an automation run needs to write one result row into a Notion database and update the existing row when the stable key already exists. The helper uses the Notion HTTP API through requests, reads credentials from env, and fails clearly when configuration is missing.
When to invoke
- User says: "write this to Notion", "update my Notion tracker", "upsert by URL", "dedupe rows in a Notion database".
- A script has result metadata that should be visible in a Notion table.
When NOT to invoke
- The user needs relational Notion schema design or a complex sync engine.
- The row store should be private/local; use SQLite or CSV instead.
Concrete example
User input:
Upsert each scraped bounty into my Notion database by its URL.
Output:
# Copy assets/notion.py into your project, then:
from notion import upsert_row
page_id = upsert_row(
key_property="URL",
key_value="https://example.com/item/123",
properties={
"Name": {"title": [{"text": {"content": "Example item"}}]},
"Status": {"select": {"name": "New"}},
},
)
print("notion page:", page_id)
The helper reads NOTION_API_KEY and NOTION_DATABASE_ID from env. The stable key property must already exist in the target database.
Pattern to apply
- Pick one stable key such as URL, external id, or date+source; do not dedupe by title alone.
- Query the database for that key before writing.
- Create a page when no match exists; update the first matching page otherwise.
- Keep Notion property payloads explicit so type errors are easy to spot.
- Treat missing keys or database ids as configuration errors, not silent no-ops.
Reference: assets/notion.py.
Source
Distilled from production use across the author's automation projects. v1.0.0. See also: [[github-label-scout]], [[csv-report-writer]], [[sqlite-state]].
→ Build the full runnable bot with Trawlkit.