Notion Create

Notion Create

Certified

Create a Notion page

Creates a Notion page with a title and optional markdown content. Defaults to the workspace root when parentPageId is empty; markdown is rendered to Notion blocks.

yaml
type: io.kestra.plugin.notion.page.Create

Create a simple page

yaml
id: notion_create_page
namespace: company.team

tasks:
  - id: create_page
    type: io.kestra.plugin.notion.page.Create
    apiToken: "{{ secret('NOTION_API_TOKEN') }}"
    title: "Meeting Notes"
    content: |
      # Meeting Notes - {{ now() }}

      ## Attendees
      - John Doe
      - Jane Smith

      ## Action Items
      - [ ] Review proposal
      - [ ] Schedule follow-up

Create a page with parent

yaml
id: notion_create_child_page
namespace: company.team

tasks:
  - id: create_child_page
    type: io.kestra.plugin.notion.page.Create
    apiToken: "{{ secret('NOTION_API_TOKEN') }}"
    title: "Sprint Planning"
    parentPageId: "12345678-1234-1234-1234-123456789abc"
    content: |
      # Sprint Planning

      **Sprint Goal:** Improve user authentication

      ## Stories
      - Implement OAuth2
      - Add password reset
Properties

Page title

Required page title text

Notion API token

The Notion API integration token (Internal Secret connection)

Page content

Optional markdown content converted to Notion blocks; empty leaves the page body blank. Note that the Notion API enforces a limit of 2000 characters per rich text content block. Content over 100 blocks is sent across multiple requests (Notion caps a request at 100 blocks); this is not atomic, so a retry may leave a partially-filled or duplicate page. Very large content sends many requests in quick succession and may hit Notion's rate limit. A single block with more than 100 children (e.g. a large table) still exceeds Notion's limit, so only the top-level block list is paginated.

The HTTP client configuration

Definitions
allowFailedbooleanstring
Defaultfalse

If true, allow a failed response code (response code >= 400)

allowedResponseCodesarray
SubTypeinteger

List of response code allowed for this request

auth

The authentication to use.

type*Requiredobject
passwordstring

The password for HTTP basic authentication.

usernamestring

The username for HTTP basic authentication.

type*Requiredobject
tokenstring

The token for bearer token authentication.

type*Requiredobject
passwordstring

The password for HTTP Digest authentication.

usernamestring

The username for HTTP Digest authentication.

basicAuthPasswordDeprecatedstring

The password for HTTP basic authentication. Deprecated, use auth property with a BasicAuthConfiguration instance instead.

basicAuthUserDeprecatedstring

The username for HTTP basic authentication. Deprecated, use auth property with a BasicAuthConfiguration instance instead.

connectTimeoutDeprecatedstring
Formatduration

The time allowed to establish a connection to the server before failing.

connectionPoolIdleTimeoutDeprecatedstring
Formatduration

The time an idle connection can remain in the client's connection pool before being closed.

defaultCharsetstring
DefaultUTF-8

The default charset for the request.

enabledTcpExtendedKeepAlivebooleanstring
Defaulttrue

Whether to enable TCP Keep-Alive extended socket options (TCP_KEEPIDLE, TCP_KEEPINTERVAL, TCP_KEEPCOUNT).

Set to false when running on Windows workers, as these extended socket options are not supported by the Windows JDK and will cause connection failures.

followRedirectsbooleanstring
Defaulttrue

Whether redirects should be followed automatically.

logLevelDeprecatedstring
Possible Values
ALLTRACEDEBUGINFOWARNERROROFFNOT_SPECIFIED

The log level for the HTTP client.

logsarray
SubTypestring
Possible Values
REQUEST_HEADERSREQUEST_BODYRESPONSE_HEADERSRESPONSE_BODY

The enabled log.

maxContentLengthDeprecatedinteger

The maximum content length of the response.

proxy

The proxy configuration.

addressstring

The address of the proxy server.

passwordstring

The password for proxy authentication.

portintegerstring

The port of the proxy server.

typestring
DefaultDIRECT
Possible Values
DIRECTHTTPSOCKS

The type of proxy to use.

usernamestring

The username for proxy authentication.

proxyAddressDeprecatedstring

The address of the proxy server.

proxyPasswordDeprecatedstring

The password for proxy authentication.

proxyPortDeprecatedinteger

The port of the proxy server.

proxyTypeDeprecatedstring
Possible Values
DIRECTHTTPSOCKS

The type of proxy to use.

proxyUsernameDeprecatedstring

The username for proxy authentication.

readIdleTimeoutDeprecatedstring
Formatduration

The time allowed for a read connection to remain idle before closing it.

readTimeoutDeprecatedstring
Formatduration

The maximum time allowed for reading data from the server before failing.

ssl

The SSL request options

insecureTrustAllCertificatesbooleanstring

Whether to disable checking of the remote SSL certificate.

Only applies if no trust store is configured. Note: This makes the SSL connection insecure and should only be used for testing. If you are using a self-signed certificate, set up a trust store instead.

timeout

The timeout configuration.

connectTimeoutstring

The time allowed to establish a connection to the server before failing.

readIdleTimeoutstring
DefaultPT5M

The time allowed for a read connection to remain idle before closing it.

Parent page ID

Optional parent page ID (UUID). When absent, the page is created at the workspace root

Reference (ref) of the pluginDefaults to apply to this task.

Archived

Whether the page is archived

Content

The page content in markdown format

Formatdate-time

Created Time

When the page was created

Formatdate-time

Last Edited Time

When the page was last edited

Message

Operation result message

Page ID

The unique identifier of the created page

Properties

Page properties returned by Notion

Page Title

The title of the created page

Page URL

The URL of the created page in Notion