MissionControlHQMissionControlHQResources
ArticlesDocs
Get early access→
Integrations
Email & Productivity
  • Gmail
  • Outlook
  • Google Docs
  • Google Sheets
  • Excel
  • Notion
  • Confluence
  • Airtable
  • Todoist
  • Google Tasks
  • Canva
Communication
  • Slack
  • Microsoft Teams
  • Discord
  • WhatsApp
  • Webex
Scheduling & Meetings
  • Google Calendar
  • Zoom
  • Calendly
  • Cal.com
  • Google Meet
  • Eventbrite
Marketing & Social
  • Mailchimp
  • Google Ads
  • Facebook
  • LinkedIn
  • YouTube
  • Reddit
  • Dub
CRM & Support
  • HubSpot
  • Salesforce
  • Attio
  • Capsule CRM
  • Intercom
  • Zendesk
  • Gorgias
  • Zoho Desk
  • Gong
File Storage
  • Google Drive
  • Dropbox
  • OneDrive
  • Box
  • SharePoint
  • Google Photos
E-commerce & Payments
  • Stripe
  • Square
Finance & Time
  • Harvest
  • Zoho Books
  • Zoho Invoice
  • FreshBooks
  • Fathom
Analytics
  • Google BigQuery
Dev & Project Management
  • GitHub
  • GitLab
  • Bitbucket
  • Linear
  • Jira
  • Asana
  • ClickUp
  • Trello
  • Monday.com
  • Basecamp
  • Wrike
  • Productboard
  • Figma
  • Miro
  • Sentry
  • PagerDuty
  • Supabase
  • DigitalOcean
Resources/Integrations/Notion

Email & Productivity

🗂️ Notion integration

Access levels: Read-only · Read + comment · Read + write · Full access · Verified July 15, 2026

PreviousExcelNextConfluence

Connect Notion once and every agent in your squad can work in it for you, with exactly as much access as you decide to give, and a receipt for every call it makes.

What your squad can do in Notion

  • Look things up, fetch all block contents; fetch block contents; fetch block metadata, and more.
  • Do real work, add multiple page content; add page content; create comment; create database, and more.
  • Run it on a schedule: any of the 48 available tools below can be part of a scheduled task or a mission.

How to connect

  1. In your dashboard, open Integrations and find Notion.
  2. Click Connect and pick an access level (we recommend Read + write): this is the ceiling for every agent.
  3. Sign in to Notion in the window that opens and approve. You land back on the Integrations page with the account live.

You can change an account's access level any time under Manage. It applies instantly, no re-authorization. If the connection ever expires, the card shows Reconnect; one click re-authorizes the same account with the same settings.

Multiple accounts: connect as many as you need (say, yours and a client's). One is primary. Agents use it unless a mission says otherwise.

Access levels

The level you pick at connect time is enforced on our side for every agent call: an agent can never do more than the level allows, no matter what it's asked.

LevelWhat it allows
Read-onlyRead pages and databases you share. Cannot create or edit.
Read + commentRead shared pages and leave comments.
Read + writeRead, create, and edit shared pages and databases.Recommended
Full accessAll above including delete.

On top of the connection's level, every agent can be individually allowed, scoped down, or denied for this app from the Integrations page. Deny an agent and it doesn't even see the connection.

Every tool, in plain terms

The 48 tools agents use in Notion through Mission Control, and the lowest access level that includes each. Agents discover these themselves. You never have to name a tool; asking in plain language is enough.

ToolWhat it doesAccess level
Add multiple page content
NOTION_ADD_MULTIPLE_PAGE_CONTENT
Bulk-add content blocks to Notion. Text >2000 chars auto-splits. Parses markdown formatting. ⚠️ PARENT BLOCK TYPES: Content is added AS CHILDREN of parent_block_id. - To add content AFTER a heading, use PAGE ID as paren…Read + write, Full access
Add page content
NOTION_ADD_PAGE_CONTENT
DEPRECATED: Use 'add_multiple_page_content' for better performance.Read + write, Full access
Append block children
NOTION_APPEND_BLOCK_CHILDREN
DEPRECATED: Use NOTION_APPEND_TEXT_BLOCKS, NOTION_APPEND_TASK_BLOCKS, NOTION_APPEND_CODE_BLOCKS, NOTION_APPEND_MEDIA_BLOCKS, NOTION_APPEND_LAYOUT_BLOCKS, or NOTION_APPEND_TABLE_BLOCKS instead.Read + write, Full access
Append code blocks
NOTION_APPEND_CODE_BLOCKS
Append code and technical blocks (code, quote, equation) to a Notion page.Read + write, Full access
Append layout blocks
NOTION_APPEND_LAYOUT_BLOCKS
Append layout blocks (divider, TOC, breadcrumb, columns) to a Notion page.Read + write, Full access
Append media blocks
NOTION_APPEND_MEDIA_BLOCKS
Append media blocks (image, video, audio, file, pdf, embed, bookmark) to a Notion page.Read + write, Full access
Append table blocks
NOTION_APPEND_TABLE_BLOCKS
Append table blocks to a Notion page. Use for structured tabular data like spreadsheets, comparison charts, and status trackers. Example: { "table_width": 3, "has_column_header": true, "rows": [ {"cells": [[{"type": "te…Read + write, Full access
Append task blocks
NOTION_APPEND_TASK_BLOCKS
Append task blocks (to-do, toggle, callout) to a Notion page or block.Read + write, Full access
Append text blocks
NOTION_APPEND_TEXT_BLOCKS
Append text blocks (paragraphs, headings, lists) to a Notion page.Read + write, Full access
Archive notion page
NOTION_ARCHIVE_NOTION_PAGE
Archives (moves to trash) or unarchives (restores from trash) a specified Notion page.Full access
Create comment
NOTION_CREATE_COMMENT
Adds a comment to a Notion page (via parent_page_id) OR to an existing discussion thread (via discussion_id); cannot create new discussion threads on specific blocks (inline comments).Read + comment, Read + write, Full access
Create database
NOTION_CREATE_DATABASE
Creates a new Notion database as a subpage under a specified parent page with a defined properties schema.Read + write, Full access
Create file upload
NOTION_CREATE_FILE_UPLOAD
Create a Notion FileUpload object and retrieve an upload URL.Read + write, Full access
Create notion page
NOTION_CREATE_NOTION_PAGE
Creates a new page in a Notion workspace under a specified parent page or database.Read + write, Full access
Delete block
NOTION_DELETE_BLOCK
Archives a Notion block, page, or database using its ID, which sets its 'archived' property to true (like moving to "Trash" in the UI) and allows it to be restored later.Full access
Duplicate page
NOTION_DUPLICATE_PAGE
Duplicates a Notion page, including all its content, properties, and nested blocks, under a specified parent page or workspace.Read + write, Full access
Fetch all block contents
NOTION_FETCH_ALL_BLOCK_CONTENTS
Fetch all child blocks for a given Notion block.All levels
Fetch block contents
NOTION_FETCH_BLOCK_CONTENTS
Retrieves a paginated list of direct, first-level child block objects along with contents for a given parent Notion block or page ID; use block IDs from the response for subsequent calls to access deeply nested content.All levels
Fetch block metadata
NOTION_FETCH_BLOCK_METADATA
Fetches metadata for a Notion block (including pages, which are special blocks) using its UUID.All levels
Fetch comments
NOTION_FETCH_COMMENTS
Fetches unresolved comments for a specified Notion block or page ID.All levels
Fetch data
NOTION_FETCH_DATA
Fetches Notion items (pages and/or databases) from the Notion workspace, use this to get minimal data about the items in the workspace with a query or list all items in the workspace with minimal dataAll levels
Fetch database
NOTION_FETCH_DATABASE
Fetches a Notion database's structural metadata (properties, title, etc.) via its database_id, not the data entries; database_id must reference an existing database.All levels
Fetch row
NOTION_FETCH_ROW
Retrieves a Notion database row's properties and metadata; use fetch_block_contents for page content blocks.All levels
Get about me
NOTION_GET_ABOUT_ME
DEPRECATED: Use GetAboutUser instead. Retrieves the User object for the bot associated with the current Notion integration token, typically to obtain the bot's user ID for other API operations.All levels
Get about user
NOTION_GET_ABOUT_USER
Retrieves detailed information about a specific Notion user, such as their name, avatar, and email, based on their unique user ID.All levels
Get page markdown
NOTION_GET_PAGE_MARKDOWN
Retrieve a Notion page's full content rendered as Notion-flavored Markdown in a single API call.All levels
Get page property action
NOTION_GET_PAGE_PROPERTY_ACTION
Call this to get a specific property from a Notion page when you have a valid page_id and property_id; handles pagination for properties returning multiple items.All levels
Insert row database
NOTION_INSERT_ROW_DATABASE
Creates a new page (row) in a specified Notion database.Read + write, Full access
Insert row from nl
NOTION_INSERT_ROW_FROM_NL
Creates a new row (page) in a Notion database from a natural language description.Read + write, Full access
List data source templates
NOTION_LIST_DATA_SOURCE_TEMPLATES
List all templates for a Notion data source.All levels
List file uploads
NOTION_LIST_FILE_UPLOADS
Retrieve file uploads for the current bot integration, sorted by most recent first.All levels
List users
NOTION_LIST_USERS
Retrieves a paginated list of users (excluding guests) from the Notion workspace; the number of users returned per page may be less than the requested page_size.All levels
Move page
NOTION_MOVE_PAGE
Move a Notion page to a new parent (page or database).Read + write, Full access
Query database
NOTION_QUERY_DATABASE
Queries a Notion database to retrieve pages (rows).All levels
Query database with filter
NOTION_QUERY_DATABASE_WITH_FILTER
Query a Notion database with server-side filtering, sorting, and pagination.All levels
Query data source
NOTION_QUERY_DATA_SOURCE
Query a Notion data source. Use when you need to retrieve pages or child data sources with filters, sorts, and pagination. Make paginated requests using cursors and optional property filters for efficient data retrieval.All levels
Replace page content
NOTION_REPLACE_PAGE_CONTENT
Safely replaces a page's child blocks by optionally backing up current content, deleting existing children, then appending new children in batches.Full access
Retrieve comment
NOTION_RETRIEVE_COMMENT
Retrieve a specific comment by its ID. Use when you have a comment ID and need to fetch its details.All levels
Retrieve database property
NOTION_RETRIEVE_DATABASE_PROPERTY
Retrieve a specific property object of a Notion database.All levels
Retrieve file upload
NOTION_RETRIEVE_FILE_UPLOAD
Retrieve details of a Notion File Upload object by its identifier.All levels
Retrieve page
NOTION_RETRIEVE_PAGE
Retrieve a Notion page's properties/metadata (not block content) by page_id.All levels
Search notion page
NOTION_SEARCH_NOTION_PAGE
Searches Notion pages and databases by title.All levels
Send file upload
NOTION_SEND_FILE_UPLOAD
Transmit file contents to Notion for a file upload object.Read + write, Full access
Update block
NOTION_UPDATE_BLOCK
Updates existing Notion block's text content.Read + write, Full access
Update page
NOTION_UPDATE_PAGE
Update page properties, icon, cover, or archive status.Read + write, Full access
Update row database
NOTION_UPDATE_ROW_DATABASE
Updates a specific row/page within a Notion database by its page UUID (row_id).Full access
Update schema database
NOTION_UPDATE_SCHEMA_DATABASE
Updates an existing Notion database's schema including title, description, and/or properties (columns).Read + write, Full access
Upsert row database
NOTION_UPSERT_ROW_DATABASE
Upsert rows in a Notion database by querying for existing rows and creating or updating them.Read + write, Full access

What agents can't do in Notion (yet)

  • Anything not in the table above. The tools mirror what Notion makes available to connected apps. If Notion doesn't expose an operation, agents can't perform it either.
  • If something you need is missing, there's usually a path: add the service's API key under Settings → Custom integrations and your agents can call it directly. See custom integrations & secrets. You can also ask your lead agent to open a ticket describing what it needs.

Using it in missions

Just ask in plain language: “check Notion for …”, “create … in Notion”, “every Monday, … ”, and the agent finds the right tool, runs it, and reports back with a receipt in your Runs ledger. Anything outward-facing (sending, posting, publishing) that a mission didn't clearly authorize comes back to you as a ticket first.

Troubleshooting

Agent saysWhat's happeningFix
"Notion isn't connected"No active connection (or this agent is denied)Connect on the Integrations page; check the agent's per-app policy
"The connection has expired"Notion ended the authorization (they all do periodically)Click Reconnect on the account, same settings, one click
"I'm not allowed to do that"The action is above the account's access level, or the agent is scoped downRaise the level under Manage, or adjust that agent's policy
It did something unexpectedThe ask was ambiguous (e.g. matched an existing item)Be explicit, "create a NEW …", and give agents a working folder where relevant