Notion Connector
Manage Notion pages, databases, and users
Connections
Internal Integration Secret
Connect to Notion using an Internal Integration Secret
To create an internal integration for Notion, you'll set up a private integration that works within the own workspace.
- Visit notion.so/my-integrations and log into Notion
- Click Create new integration
- Fill in the integration details:
- Under Capabilities, select the permissions needed:
- Read content: To read pages, databases, and other content
- Update content: To modify existing content
- Insert content: To create new content
- Under Content Capabilities, choose specific content types if needed
- Save the integration settings
Get the Integration Token:
- In the Secrets tab, copy the Internal Integration Token
- Enter this token when configuring the Notion connection
Connect to Content:
After creating the integration, you'll need to connect it to specific pages or databases:
- Go to the Notion page or database you want to access
- Click the ... menu in the top right corner
- Select Connect to and choose the integration
- The integration will now have access to that content based on the capabilities you selected
Input | Comments | Default |
---|---|---|
Internal Integration Secret | Your Notion Internal Integration Secret |
OAuth 2.0
Connect to Notion via OAuth 2.0
To create an OAuth 2.0 integration for Notion, you'll set up a public integration that allows users to authenticate with their Notion workspaces.
- Visit notion.so/my-integrations and log into Notion
- Click Create new integration
- Fill in the integration details:
- Under Capabilities, select the permissions needed:
- Read content: To read pages, databases, and other content
- Update content: To modify existing content
- Insert content: To create new content
- Under Content Capabilities, choose specific content types if needed
- Save the integration settings
Configure OAuth Settings:
- Navigate to the Distribution page in the integration settings
- Select Public integration to enable OAuth
- Add the callback URL:
https://oauth2.integrations.acme.com/callback
- Configure additional OAuth settings as needed
Get OAuth Credentials:
- In the Secrets tab, find the OAuth credentials:
- OAuth client ID: Copy this value
- OAuth client secret: Copy this value
- Enter these values when you add a Notion connection to the flow
User Authorization Flow:
When users connect their Notion workspace:
- They'll be redirected to Notion's OAuth authorization page
- Users select which pages/databases to share with the integration
- After authorization, the integration will have access to the selected content based on the capabilities you configured
This connection uses OAuth 2.0, a common authentication mechanism for integrations. Read about how OAuth 2.0 works here.
Input | Comments | Default |
---|---|---|
Client ID | Client Identifier of your app for the API | |
Client Secret | Client Secret of your app for the API |
Actions
Create Database
Creates a database as a subpage in the specified parent page, with the specified properties schema. Currently, the parent of a new database must be a Notion page or a wiki database.
Input | Comments | Default |
---|---|---|
Connection | ||
Parent | A page parent |
|
Title | Title of database as it appears in Notion. |
|
Properties | Property schema of database. The keys are the names of properties as they appear in Notion. |
|
Create Database Item
Creates an Item on a database.
Input | Comments | Default |
---|---|---|
Connection | ||
Parent | The parent database where the new page is inserted, represented as a JSON object with a database_id key, and the corresponding ID. |
|
Properties | The values of the page's properties. If the parent is a database, then the schema must match the parent database's properties. If the parent is a page, then the only valid object key is title. |
|
Children | The content to be rendered on the new page, represented as an array of block objects. https://developers.notion.com/reference/block |
|
Icon | The icon of the new page. Either an emoji object (https://developers.notion.com/reference/emoji-object) or an external file object (https://developers.notion.com/reference/file-object) |
|
Cover Image | The cover image of the new page, represented as a file object. |
|
Create Page
Creates a new page that is a child of an existing page or database.
Input | Comments | Default |
---|---|---|
Connection | ||
Parent | The parent page where the new page is inserted, represented as a JSON object with a page_id and the corresponding ID. |
|
Properties | The values of the page's properties. If the parent is a database, then the schema must match the parent database's properties. If the parent is a page, then the only valid object key is title. |
|
Children | The content to be rendered on the new page, represented as an array of block objects. https://developers.notion.com/reference/block |
|
Icon | The icon of the new page. Either an emoji object (https://developers.notion.com/reference/emoji-object) or an external file object (https://developers.notion.com/reference/file-object) |
|
Cover Image | The cover image of the new page, represented as a file object. |
|
Get Current User
Get the currently logged in user
Input | Comments | Default |
---|---|---|
Connection |
Get Database
Retrieve a database by ID
Input | Comments | Default |
---|---|---|
Connection | ||
Database ID |
Get Page
Retrieve a page by ID with optional property filters
Input | Comments | Default |
---|---|---|
Connection | ||
Page ID | ||
Filter Properties | A list of page property value IDs separated by commas. Use this to limit the response to specific page properties. |
Get User by ID
Get a user by their ID
Input | Comments | Default |
---|---|---|
Connection | ||
User ID |
List Databases
List all databases
Input | Comments | Default |
---|---|---|
Connection | ||
Start Cursor | The start cursor is returned from a previous 'list' action when at least one more page of records is available. | |
Fetch All | Turn this on to fetch all pages. This will ignore the start cursor input. | false |
List Pages
List all pages
Input | Comments | Default |
---|---|---|
Connection | ||
Start Cursor | The start cursor is returned from a previous 'list' action when at least one more page of records is available. | |
Fetch All | Turn this on to fetch all pages. This will ignore the start cursor input. | false |
List Users
List all users in the workspace with optional page size
Input | Comments | Default |
---|---|---|
Connection | ||
Start Cursor | The start cursor is returned from a previous 'list' action when at least one more page of records is available. | |
Page Size | The number of items from the full list desired in the response. Maximum: 100. | 50 |
Fetch All | Turn this on to fetch all pages. This will ignore the start cursor and page size inputs. | false |
Query Database
Query a Notion database
Input | Comments | Default |
---|---|---|
Connection | ||
Database ID | ||
Filter Object |
Raw Request
Send raw HTTP request to Notion
Input | Comments | Default |
---|---|---|
Connection | ||
URL | Input the path only (/users/me), The base URL is already included (https://api.notion.com/v1). For example, to connect to https://api.notion.com/v1/users/me, only /users/me is entered in this field. | |
Method | The HTTP method to use. | |
Data | The HTTP body payload to send to the URL. | |
Form Data | The Form Data to be sent as a multipart form upload. | |
File Data | File Data to be sent as a multipart form upload. | |
File Data File Names | File names to apply to the file data inputs. Keys must match the file data keys above. | |
Query Parameter | A list of query parameters to send with the request. This is the portion at the end of the URL similar to ?key1=value1&key2=value2. | |
Header | A list of headers to send with the request. | |
Response Type | The type of data you expect in the response. You can request json, text, or binary data. | json |
Timeout | The maximum time that a client will await a response to its request | |
Retry Delay (ms) | The delay in milliseconds between retries. This is used when 'Use Exponential Backoff' is disabled. | 0 |
Retry On All Errors | If true, retries on all erroneous responses regardless of type. This is helpful when retrying after HTTP 429 or other 3xx or 4xx errors. Otherwise, only retries on HTTP 5xx and network errors. | false |
Max Retry Count | The maximum number of retries to attempt. Specify 0 for no retries. | 0 |
Use Exponential Backoff | Specifies whether to use a pre-defined exponential backoff strategy for retries. When enabled, 'Retry Delay (ms)' is ignored. | false |