claude-office-skills/skillsMIT1 file

Notion Automation

Notion database automation - sync, templates, workflows, and cross-platform integrations

Specification
Skill ID
claude-office-skills/skills/notion-automation
Publisher
claude-office-skills
Repository
skills
Installs
0
Files
1
License
MIT
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

claude-office-skills/skills/notion-automationInstalls these files
  • SKILL.md

What this skill tells the agent

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

workflow: "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

workflow: "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

workflow: "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

workflow: "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

workflow: "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

project_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

crm_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

content_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

// 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

// 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

meeting_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

github_sync:
  trigger: github_issue_created
  
  actions:
    - create_notion_page:
        database: "Engineering Tasks"
        properties:
          Title: "{issue.title}"
          GitHub: "{issue.url}"
          Labels: "{issue.labels}"

Use this skill in a project

Open any RiverX project, search the Skills panel for claude-office-skills/skills/notion-automation, and install it in one click.

Use this skill