diff --git a/packages/nodes-base/nodes/Notion/DatabasePageDescription.ts b/packages/nodes-base/nodes/Notion/DatabasePageDescription.ts index c28d61ed42..4ab8e42313 100644 --- a/packages/nodes-base/nodes/Notion/DatabasePageDescription.ts +++ b/packages/nodes-base/nodes/Notion/DatabasePageDescription.ts @@ -1000,6 +1000,48 @@ export const databasePageFields: INodeProperties[] = [ }, ], }, + { + displayName: 'Options', + name: 'options', + type: 'collection', + displayOptions: { + show: { + resource: ['databasePage'], + operation: ['update'], + }, + }, + default: {}, + placeholder: 'Add Option', + options: [ + { + displayName: 'Icon Type', + name: 'iconType', + type: 'options', + options: [ + { + name: 'Emoji', + value: 'emoji', + description: 'Use an Emoji for the icon', + }, + { + name: 'File', + value: 'file', + description: 'Use a file for the icon', + }, + ], + default: 'emoji', + description: 'The icon type for the database page, Either a URL or an Emoji', + }, + { + displayName: 'Icon', + name: 'icon', + type: 'string', + default: '', + description: 'Emoji or File URL to use as the icon', + }, + ], + }, + /* -------------------------------------------------------------------------- */ /* databasePage:get */ /* -------------------------------------------------------------------------- */ diff --git a/packages/nodes-base/nodes/Notion/v2/NotionV2.node.ts b/packages/nodes-base/nodes/Notion/v2/NotionV2.node.ts index 4f85773124..fa55c4ce2a 100644 --- a/packages/nodes-base/nodes/Notion/v2/NotionV2.node.ts +++ b/packages/nodes-base/nodes/Notion/v2/NotionV2.node.ts @@ -600,6 +600,16 @@ export class NotionV2 implements INodeType { if (properties.length !== 0) { body.properties = mapProperties.call(this, properties, timezone, 2) as IDataObject; } + + const options = this.getNodeParameter('options', i); + if (options.icon) { + if (options.iconType && options.iconType === 'file') { + body.icon = { type: 'external', external: { url: options.icon } }; + } else { + body.icon = { type: 'emoji', emoji: options.icon }; + } + } + responseData = await notionApiRequest.call(this, 'PATCH', `/pages/${pageId}`, body); if (simple) { responseData = simplifyObjects(responseData, false);