Updated Oct 19, 2026

Integrations

Plan Notion page, database and block requests

notion-integration is a selected-action workflow adapter for Notion.

Agent

overview

What notion-integration does

Supply the selected resource, operation and page/database fields. Dry-run returns a planned API request without calling Notion. Normal execution may read, create, update or archive data depending on the operation.

Source-declared actions: databasePage.create, databasePage.get, databasePage.getAll, databasePage.update, page.create, page.archive, block.append.

A FILE of JSONL results, with an ok field per processed item. Dry-run rows include dry_run: true and planning fields, not a provider response or proof of execution. The registered contract also exposes a FOLDER output. Payload and text fields may contain supplied content; use synthetic data for shared examples.

Native executable tests cover all 7 declared actions using owned loopback HTTP fixtures, plus credential/error cases. No real provider calls were made. A private three-node platform workflow passed with downloaded dry-run plan and verifier outputs. This verifies planning and typed file flow, not provider HTTP or execution. Public image and source/notices directions are available. The original tool entry is available in the public Library. Keep private platform planning separate from provider execution.

source hub.docker.com/r/nenadzaric/skills-integrations-notion-integration

use cases

Where notion-integration fits

Preview a page payload

Inspect the parent and properties of a synthetic page.create plan without sending it.

Read configured page data

Choose databasePage.get or databasePage.getAll deliberately; native acceptance uses fixtures rather than a production workspace.

Plan a content change

Review database-page updates, page archives or block appends before normal execution with the intended workspace access.

reference

notion-integration inputs and flags

16 inputs
NameTypeFlagDescription
itemsFILE--itemsOptional. One JSON object per line (JSONL); each line is one API call. If omitted, uses upstream files in /hive/in or a single call from flags. Example: {"title":"New page","database_id":"…"}
tokenSTRING--tokenNotion integration secret ; wire to ${{vars.NOTION_TOKEN}} Supply via workflow secrets; never bake credentials into images, source, or shared inputs.
dry-runBOOLEAN--dry-runOptional: true returns a request/message plan without provider calls; omitted/false keeps normal configured execution. This is not a live provider test.
page-idSTRING--page-idPage id or URL (get / update / archive; also parent fallback)
resourceSTRING--resourceNotion resource: databasePage | page | block
operationSTRING--operationOperation: create | get | getAll | update | archive | append
database-idSTRING--database-idDatabase id or URL (databasePage.create / getAll)

Showing key inputs. notion-integration exposes 16 inputs in total.

Full flag reference (16 inputs)
NameTypeFlagDescription
itemsFILE--itemsOptional. One JSON object per line (JSONL); each line is one API call. If omitted, uses upstream files in /hive/in or a single call from flags. Example: {"title":"New page","database_id":"…"}
limitSTRING--limitMax results for getAll (default: 20)
titleSTRING--titleConvenience title text (builds title property or paragraph block)
tokenSTRING--tokenNotion integration secret ; wire to ${{vars.NOTION_TOKEN}} Supply via workflow secrets; never bake credentials into images, source, or shared inputs.
blocksSTRING--blocksNotion blocks JSON array (children on create / block.append)
filterSTRING--filterQuery filter JSON (databasePage.getAll)
dry-runBOOLEAN--dry-runOptional: true returns a request/message plan without provider calls; omitted/false keeps normal configured execution. This is not a live provider test.
page-idSTRING--page-idPage id or URL (get / update / archive; also parent fallback)
block-idSTRING--block-idBlock or page id to append children to (block.append)
resourceSTRING--resourceNotion resource: databasePage | page | block
operationSTRING--operationOperation: create | get | getAll | update | archive | append
propertiesSTRING--propertiesNotion properties JSON object (typed props for create/update)
database-idSTRING--database-idDatabase id or URL (databasePage.create / getAll)
parent-page-idSTRING--parent-page-idParent page id (page.create)
title-propertySTRING--title-propertyDatabase title property name (default: Name)
continue-on-errorBOOLEAN--continue-on-errorKeep going (and exit 0) when an individual call fails

example

Run notion-integration

notion-integration · command
notion-integration --dry-run --resource page --operation create --parent-page-id aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa --title "D074 owned plan fixture" --output ./plan.jsonl
sample output
{"resource": "page", "operation": "create", "ok": true, "dry_run": true, "method": "POST", "url": "https://api.notion.com/v1/pages", "payload": {"parent": {"page_id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"}, "properties": {"Name": {"title": [{"type": "text", "text": {"content": "D074 owned plan fixture"}}]}, "title": {"title": [{"type": "text", "text": {"content": "D074 owned plan fixture"}}]}}}}

guidance

Choosing notion-integration

Use this service-specific adapter when the selected provider action and typed fields match the workflow. Dry-run planning, native HTTP-mock acceptance and actual provider execution are separate capabilities. A generic HTTP client may suit API routes this adapter does not expose.

faq

notion-integration questions

databasePage.create, databasePage.get, databasePage.getAll, databasePage.update, page.create, page.archive, block.append. This describes the recovered adapter, not every API capability offered by the provider.

The actual image returns a JSONL request or message plan without a provider call. This covers argument and planning/output behavior. It does not validate production account permissions, send a message, upload media or confirm provider compatibility.

Use the credential inputs for the selected service and operation, bound through the existing workflow secret mechanism. Do not put credentials into shared input files, examples or source. Explicit dry-run true generates a plan without provider calls; omitted/false selects normal configured execution. Missing and invalid credential behavior was exercised against synthetic local fixtures, not a production account.

A FILE of JSONL results, with an ok field per processed item. Dry-run rows include dry_run: true and planning fields, not a provider response or proof of execution. The registered contract also exposes a FOLDER output. Payload and text fields may contain supplied content; use synthetic data for shared examples.

Native executable tests cover all 7 declared actions using owned loopback HTTP fixtures, plus credential/error cases. No real provider calls were made. A private three-node platform workflow passed with downloaded dry-run plan and verifier outputs. This verifies planning and typed file flow, not provider HTTP or execution. Public image and source/notices directions are available. The original tool entry is available in the public Library. Keep private platform planning separate from provider execution.

Open the source link for immutable image and source-notices download commands, the bundle SHA-256, recovered adapter/build files and installed notices. Provider HTTP-mock tests and private platform dry-run planning are separate from live provider compatibility or delivery.

Run notion-integration yourself

Complete retained JSONL plan from the current notices1 image using synthetic owned fixture data. This was dry-run planning, not a provider request or delivered message. Native HTTP-mock action coverage is recorded separately.

Facts on this page come from the live Trickest tool library.