- 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
- ,
- ,
- 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}"
- 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
- ,
- ,
- ]
- -
- 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
- -
- :
- -
- 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}"
- 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 :
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 ** ```yaml trigger: page_created, Status = "Idea" action: post_to_slack("#content-ideas") message: "💡 New content idea: {Title} by {Author}" 2. Ready for Review → Assign Editor trigger : status_changed_to "Editing" action : - assign_editor (round_robin) - set_due_date (+3 days) - slack_dm_editor 3. Published → Update Tracker trigger : status_changed_to "Published" action : - add_to_analytics_sheet - post_celebration_slack - schedule_engagement_check (+7 days) Views Calendar - See publishing schedule Kanban - Track status By Author - Individual workload This Week - Filtered view Templates Blog Post Template Social Thread Template Newsletter Template
Notion Automation Skill - Part of Claude Office Skills