Notion 节点常见问题#
以下是使用 Notion 节点时可能遇到的常见错误和问题,以及相应的解决方法或排查步骤。
关系属性不显示#
Notion 节点仅支持显示双向关系的数据关系属性。当您连接两个具有双向关系的 Notion 数据库时,在使用 Notion 节点的 Database Page 资源时,可以通过关系属性进行选择或筛选。
要启用双向关系,请在 Notion 中编辑关系属性并启用 Show on [相关数据库名称] 选项以创建反向关系。为新上下文中的关系选择一个名称。现在在 n8n 中进行筛选或选择时就可以访问该关系了。
如果需要处理具有单向关系的 Notion 数据库,可以使用 HTTP Request 节点配合现有的 Notion 凭据。例如,要更新单向关系,可以向以下 URL 发送 PATCH
请求:
1 |
|
启用 Send Body,将 Body Content Type 设置为 JSON,并将 Specify Body 设置为 Using JSON。然后可以在 JSON 字段中输入如下 JSON 对象:
1 2 3 4 5 6 7 8 9 10 11 |
|
创建可折叠标题#
Notion 节点允许您在向 页面(Page)、数据库页面(Database Page) 或 区块(Block) 资源添加内容块时创建标题和折叠项。Notion 节点本身尚不支持直接创建可折叠标题。
您可以通过以下变通方法实现:先创建常规标题,然后修改其 is_toggleable
属性:
- 使用 Notion 节点添加标题
- 选择要添加标题的目标资源: * 若要创建带标题的新页面,选择 页面(Page) 或 数据库页面(Database Page) 资源并执行 创建(Create) 操作 * 若要在现有页面添加标题,选择 区块(Block) 资源并执行 追加(Append After) 操作
- 选择 添加区块(Add Block) 并将 类型名称或ID(Type Name or ID) 设为 标题1(Heading 1)、标题2(Heading 2) 或 标题3(Heading 3)
- 添加一个连接到 Notion 节点的 HTTP请求节点(HTTP Request),选择
GET
方法 - 将 URL 设为
https://api.notion.com/v1/blocks/<block_ID>
。例如,如果您将标题添加到现有页面,可使用:https://api.notion.com/v1/blocks/{{ $json.results[0].id }}
。如果是创建新页面而非追加区块,可能需要先查询页面内容来获取区块ID - 选择 预定义凭证类型(Predefined Credential Type) 并连接现有 Notion 凭据
- 在 HTTP 请求节点后添加 编辑字段(Set)节点(Edit Fields (Set))
- 添加
heading_1.is_toggleable
作为新 布尔(Boolean) 字段并设为true
。根据实际标题级别替换heading_1
- 在编辑字段节点后添加第二个 HTTP 请求节点
- 将 方法(Method) 设为
PATCH
,URL 值设为https://api.notion.com/v1/blocks/{{ $json.id }}
- 选择 预定义凭证类型(Predefined Credential Type) 并连接现有 Notion 凭据
- 启用 发送正文(Send Body) 并设置参数
- 将参数 名称(Name) 设为
heading_1
(根据实际标题级别替换) - 将参数 值(Value) 设为
{{ $json.heading_1 }}
(根据实际标题级别替换)
以上操作序列将先创建常规标题区块,然后查询新创建的标题,添加 is_toggleable
属性,最后更新标题区块。
处理空值和未定义值#
在使用 Notion 节点时,如果您提交包含空值或未定义值的字段,可能会收到验证错误。这种情况通常发生在您从前置节点获取数据但该数据缺失时。
要解决这个问题,可以在将数据发送到 Notion 之前检查字段数据是否存在,或者使用默认值。
在执行 Notion 节点之前检查数据,可以使用 If 节点来检查字段是否未设置。这样您就可以使用 Edit Fields (Set) 节点在字段没有有效值时有条件地移除该字段。
另一种方法是,如果传入数据没有提供值,可以设置一个默认值。