Claude Agent Skill · by Claude Office Skills

Notion Automation

Install Notion Automation skill for Claude Code from claude-office-skills/skills.

- notion
Install
Terminal · npx
$npx skills add https://github.com/inferen-sh/skills --skill twitter-automation
Works with Paperclip

How Notion Automation fits into a Paperclip company.

Notion Automation drops into any Paperclip agent that handles - notion work. Assign it to a specialist inside a pre-configured PaperclipOrg company and the skill becomes available on every heartbeat — no prompt engineering, no tool wiring.

S
SaaS FactoryPaired

Pre-configured AI company — 18 agents, 18 skills, one-time purchase.

$27$59
Explore pack
Source file
SKILL.md495 lines
Expand
---name: notion-automationdescription: "Notion database automation - sync, templates, workflows, and cross-platform integrations"version: "1.0.0"author: claude-office-skillslicense: MIT category: productivitytags:  - notion  - automation  - database  - workflow  - n8ndepartment: Operations models:  recommended:    - claude-sonnet-4 mcp:  server: notion-mcp  tools:    - notion_create_page    - notion_update_database    - notion_query capabilities:  - database_automation  - template_creation  - cross_platform_sync  - workflow_triggers  - content_management languages:  - en  - zh related_skills:  - sheets-automation  - slack-workflows  - crm-automation--- # Notion Automation Automate Notion databases and workflows with cross-platform integrations, templates, and intelligent triggers. Based on n8n's Notion workflow templates. ## Overview This skill covers:- Database automation and triggers- Template and page creation- Cross-platform sync (Slack, Calendar, CRM)- Content management workflows- Team collaboration automation --- ## Core Workflows ### 1. Form → Notion Database ```yamlworkflow: "Form to Notion"trigger: typeform_submission OR google_form steps:  1. capture_data:      fields: [name, email, company, message, source]        2. enrich_data:      clearbit: lookup_by_email      append: [company_size, industry]        3. create_notion_page:      database_id: "leads_database"      properties:        Name: "{name}"        Email: "{email}"        Company: "{company}"        Status: "New"        Source: "{source}"        Created: "{timestamp}"      content:        - heading: "Contact Details"        - text: "{message}"        - divider        - heading: "Enriched Data"        - text: "Industry: {industry}, Size: {company_size}"          4. notify:      slack:        channel: "#new-leads"        message: "New lead: {name} from {company}"``` ### 2. Notion → Email Digest ```yamlworkflow: "Weekly Notion Digest"schedule: "Monday 9am" steps:  1. query_notion:      database: "Tasks"      filter:        - property: "Due Date"          date: this_week        - property: "Status"          not_equals: "Done"            2. group_by_assignee:      method: aggregate        3. generate_digest:      for_each: assignee      template: |        Hi {assignee},                Here are your tasks for this week:                {for task in tasks}        • {task.title} - Due: {task.due_date}        {endfor}                Total: {task_count} tasks          4. send_emails:      to: each_assignee      subject: "Your Weekly Task Digest"``` ### 3. Slack → Notion Task ```yamlworkflow: "Slack to Notion Task"trigger: slack_reaction (✅ emoji) steps:  1. capture_message:      extract: [text, author, channel, timestamp, thread]        2. parse_task:      ai_extraction:        title: extract_action_item        due_date: extract_date_if_mentioned        priority: infer_from_context          3. create_notion_task:      database: "Tasks"      properties:        Title: "{extracted_title}"        Status: "To Do"        Source: "Slack - #{channel}"        Assignee: "{slack_user_to_notion_user}"        Due Date: "{due_date}"        Priority: "{priority}"      content:        - quote: "{original_message}"        - text: "Created from Slack message"        - link: "{slack_permalink}"          4. thread_reply:      slack:        thread_ts: "{timestamp}"        message: "✅ Task created in Notion: {notion_url}"``` ### 4. Calendar Sync ```yamlworkflow: "Google Calendar ↔ Notion"trigger: bidirectional google_to_notion:  trigger: calendar_event_created  action:    - create_notion_page:        database: "Meetings"        properties:          Title: "{event.title}"          Date: "{event.start}"          Attendees: "{event.attendees}"          Location: "{event.location}"          Calendar Link: "{event.link}" notion_to_google:  trigger: notion_page_created  filter: database == "Meetings"  action:    - create_calendar_event:        title: "{page.Title}"        start: "{page.Date}"        description: "{page.Notes}"        attendees: "{page.Attendees}"``` ### 5. Content Pipeline ```yamlworkflow: "Content Publishing Pipeline" database_structure:  properties:    - Title: title    - Status: select [Idea, Writing, Review, Published]    - Author: person    - Due Date: date    - Platform: multi_select [Blog, LinkedIn, Twitter]    - Content: rich_text    automations:  status_changed_to_review:    - notify_slack: "#content-review"    - assign_reviewer: round_robin    - set_due_date: 3_days_from_now      status_changed_to_published:    - post_to_platforms: based_on_Platform_property    - update_analytics_tracker: add_row    - archive_after: 7_days``` --- ## Database Templates ### Project Management ```yamlproject_database:  name: "Projects"  properties:    - Name: title    - Status: select        options: [Planning, In Progress, Review, Complete]    - Priority: select        options: [P0, P1, P2, P3]    - Owner: person    - Team: multi_select    - Start Date: date    - Due Date: date    - Progress: number (percent)    - Related Tasks: relation → Tasks      views:    - Board: group_by Status    - Timeline: gantt chart    - Calendar: by Due Date    - Table: all properties      automations:    - when: all_tasks_complete      then: set_status "Complete"    - when: due_date_approaching (3 days)      then: slack_reminder to Owner``` ### CRM Database ```yamlcrm_database:  name: "Contacts"  properties:    - Name: title    - Email: email    - Company: text    - Stage: select        options: [Lead, Qualified, Proposal, Negotiation, Closed]    - Value: number (currency)    - Last Contact: date    - Next Action: text    - Owner: person    - Related Deals: relation → Deals      automations:    - when: stage_changed      then: log_activity + notify_owner    - when: no_contact_14_days      then: slack_alert "Follow up needed"``` ### Content Calendar ```yamlcontent_calendar:  name: "Content"  properties:    - Title: title    - Type: select [Blog, Video, Social, Newsletter]    - Status: select [Idea, Draft, Review, Scheduled, Published]    - Publish Date: date    - Author: person    - Platform: multi_select    - SEO Keywords: multi_select    - Engagement: number      views:    - Calendar: by Publish Date    - Kanban: by Status    - By Platform: grouped table``` --- ## API Patterns ### Query Database ```javascript// n8n Notion Query{  "database_id": "abc123",  "filter": {    "and": [      {        "property": "Status",        "select": {          "equals": "In Progress"        }      },      {        "property": "Due Date",        "date": {          "on_or_before": "{{$today}}"        }      }    ]  },  "sorts": [    {      "property": "Priority",      "direction": "ascending"    }  ]}``` ### Create Page ```javascript// n8n Notion Create Page{  "parent": { "database_id": "abc123" },  "properties": {    "Name": {      "title": [{ "text": { "content": "{{$json.title}}" }}]    },    "Status": {      "select": { "name": "New" }    },    "Tags": {      "multi_select": [        { "name": "{{$json.tag1}}" },        { "name": "{{$json.tag2}}" }      ]    }  },  "children": [    {      "object": "block",      "type": "heading_2",      "heading_2": {        "rich_text": [{ "text": { "content": "Overview" }}]      }    },    {      "object": "block",      "type": "paragraph",      "paragraph": {        "rich_text": [{ "text": { "content": "{{$json.content}}" }}]      }    }  ]}``` --- ## Integration Recipes ### Notion + Slack + Calendar ```yamlmeeting_workflow:  trigger: notion_page_created  database: "Meetings"    actions:    1. create_calendar_event:        google_calendar:          title: "{Title}"          date: "{Date}"              2. create_slack_channel:        if: "{Type}" == "Project Kickoff"        name: "proj-{project_name}"            3. send_invites:        to: "{Attendees}"        include: [calendar_link, notion_link, slack_channel]            4. create_meeting_doc:        notion:          template: "Meeting Notes Template"          link_to: original_page``` ### Notion + GitHub ```yamlgithub_sync:  trigger: github_issue_created    actions:    - create_notion_page:        database: "Engineering Tasks"        properties:          Title: "{issue.title}"          GitHub: "{issue.url}"          Labels: "{issue.labels}"          Assignee: map_github_to_notion("{issue.assignee}")            reverse_sync:    trigger: notion_status_changed    to: "Done"    action: close_github_issue``` --- ## Output Example **Request**: "Set up Notion automation for a content team" **Output**: ```markdown# Content Team Notion Setup ## Database: Content Calendar ### Properties| Property | Type | Options ||----------|------|---------|| Title | Title | - || Status | Select | Idea, Writing, Editing, Ready, Published || Author | Person | - || Publish Date | Date | - || Platform | Multi-select | Blog, LinkedIn, Twitter, Newsletter || Type | Select | Article, Video, Infographic, Thread | ### Automations **1. New Content Idea → Slack**```yamltrigger: page_created, Status = "Idea"action: post_to_slack("#content-ideas")message: "💡 New content idea: {Title} by {Author}"``` **2. Ready for Review → Assign Editor**```yamltrigger: status_changed_to "Editing"action:   - assign_editor (round_robin)  - set_due_date (+3 days)  - slack_dm_editor``` **3. Published → Update Tracker**```yamltrigger: status_changed_to "Published"action:  - add_to_analytics_sheet  - post_celebration_slack  - schedule_engagement_check (+7 days)``` ### Views1. **Calendar** - See publishing schedule2. **Kanban** - Track status3. **By Author** - Individual workload4. **This Week** - Filtered view ### Templates- Blog Post Template- Social Thread Template- Newsletter Template``` --- *Notion Automation Skill - Part of Claude Office Skills*