Skip to content

Notion - Append Content

↩ Part of the Notion integration.

This module appends content to the body of a page — or to any block that accepts children — with PATCH /blocks/{id}/children.

It has two modes. If you fill children with a JSON array of blocks, that array is sent as it is, so you can add headings, lists, callouts, code blocks and anything else Notion supports. If you leave children empty and fill text, the node wraps your text in a simple paragraph block for you.

FieldTypeRequiredDescription
credentials_idcredentialsYesNotion credential
block_idtextYesParent page or block id
texttextareaConditionalPlain text. Creates a paragraph. Ignored if children is set
childrenjsonConditionalContent blocks (JSON array, Notion format)

You must fill children or text. If children is a valid array it always wins over text.

This module requires a Notion credential.

FieldDescription
tokenInternal Integration Secret from notion.so/my-integrations
notion_versionOptional. Value for the Notion-Version header (default 2022-06-28)
{
"nextModule": null,
"data": {
"object": "list",
"results": [
{
"object": "block",
"id": "0d1e2f3a-4b5c-6d7e-8f9a-0b1c2d3e4f5a",
"type": "paragraph",
"paragraph": { "rich_text": [ { "plain_text": "Order 4471 shipped" } ] }
}
]
},
"_meta": {
"moduleVersion": "1.0.0",
"success": true,
"id": "8b9c0d1e-2f3a-4b5c-6d7e-8f9a0b1c2d3e",
"added": 1,
"totalMs": 253
}
}
{
"credentials_id": 12,
"block_id": "8b9c0d1e-2f3a-4b5c-6d7e-8f9a0b1c2d3e",
"text": "Order {{data.order_id}} shipped on {{data.shipped_at}}."
}
{
"credentials_id": 12,
"block_id": "8b9c0d1e-2f3a-4b5c-6d7e-8f9a0b1c2d3e",
"children": [
{
"object": "block",
"type": "heading_3",
"heading_3": { "rich_text": [ { "type": "text", "text": { "content": "Incidents today" } } ] }
},
{
"object": "block",
"type": "bulleted_list_item",
"bulleted_list_item": { "rich_text": [ { "type": "text", "text": { "content": "{{data.incident_1}}" } } ] }
},
{
"object": "block",
"type": "bulleted_list_item",
"bulleted_list_item": { "rich_text": [ { "type": "text", "text": { "content": "{{data.incident_2}}" } } ] }
}
]
}
  • New blocks are always appended at the end of the parent. There is no insert-at-position option.
  • block_id can be a page id (the most common case) or the id of a block that accepts children, such as a toggle or a column.
  • _meta.added tells you how many blocks Notion actually created, which is a cheap way to assert the result in the next node.
  • Notion limits a single call to 100 blocks. Split larger bodies across several calls.
  • This node writes the body of the page. To change the database columns use Update Page.