Notion ACTION
Create Page from Data Source
Create a new page (row) in a Notion data source (database). Provide the parent data source ID and the row's field values as a JSON object keyed by column name. Use the Search action (with
filter: data_source) to resolve a database name into its data source ID, and Retrieve Database Schema to learn the exact column names and types before setting values. Optionally add page body content with Page Content (Markdown). Example: parentDataSource "a1b2c3d4-..." with properties { "Name": "Q1 Report", "Status": "In Progress", "Tags": ["finance"] } → creates a new row with those fields and returns the created page object. See the documentation- Action
- Writes data
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Notion account once, then configure and run Create Page from Data Source from your backend or agent.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "notion-create-page-from-database",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
notion: { authProvisionId: "apn_xxxxxxx" },
parentDataSource: "Parent Data Source ID",
properties: "Properties",
},
})
console.log(result)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "notion-create-page-from-database",
"configured_props": {
"notion": { "authProvisionId": "apn_xxxxxxx" },
"parentDataSource": "Parent Data Source ID",
"properties": "Properties"
}
}'// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "notion",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
name: "notion-create-page-from-database",
arguments: {
parentDataSource: "Parent Data Source ID",
properties: "Properties",
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
parentDataSource Parent Data Source ID | string | The ID of the parent data source (database) to add the page to, e.g. 8debdc4a-c0c6-43b7-b15e-be8f1818f405 (a 32-character UUID, with or without dashes). Use the Search action with filter: data_source to resolve a database name into its data source ID. Required |
properties Properties | object | The new page's property values as a JSON object keyed by column name. Keys must match the parent data source's column names and the values their types — call Retrieve Database Schema first if you don't know them. Example: { "Name": "Q1 Report", "Status": "In Progress", "Tags": ["finance", "planning"], "Link": "https://pipedream.com" }. See the documentation for property types. Optional |
icon Icon Emoji | string | Page Icon Emoji Optional |
cover Cover URL | string | Cover image external URL Optional |
pageContent Page Content | string | The content of the page, using Markdown syntax. See the documentation for more information Optional |
templateType Template Type | string | How to populate the new page. none (default): apply the Properties and Page Content you provide. default: apply the data source's default template (Page Content is ignored). template_id: apply a specific template given by Template ID (Page Content is ignored). See the documentation. Optional |
templateId Template ID | string | The ID of the template to apply, e.g. 1a2b3c4d-5e6f-7890-abcd-ef1234567890 (a 32-character UUID). Required only when Template Type is template_id. Optional |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- notion-create-page-from-database
- Version
- 3.0.0
- App
- Notion
- Authentication
- OAuth
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗