Skip to content

Notion 节点常见问题#

以下是使用 Notion 节点时可能遇到的常见错误和问题,以及相应的解决方法或排查步骤。

关系属性不显示#

Notion 节点仅支持显示双向关系的数据关系属性。当您连接两个具有双向关系的 Notion 数据库时,在使用 Notion 节点的 Database Page 资源时,可以通过关系属性进行选择或筛选。

要启用双向关系,请在 Notion 中编辑关系属性并启用 Show on [相关数据库名称] 选项以创建反向关系。为新上下文中的关系选择一个名称。现在在 n8n 中进行筛选或选择时就可以访问该关系了。

如果需要处理具有单向关系的 Notion 数据库,可以使用 HTTP Request 节点配合现有的 Notion 凭据。例如,要更新单向关系,可以向以下 URL 发送 PATCH 请求:

1
https://api.notion.com/v1/pages/<page_id>

启用 Send Body,将 Body Content Type 设置为 JSON,并将 Specify Body 设置为 Using JSON。然后可以在 JSON 字段中输入如下 JSON 对象:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
{
	"properties": {
		"Account": {
			"relation": [
				{
					"id": "<your_relation_ID>"
				}
			]
		}
	}
}

创建可折叠标题#

Notion 节点允许您在向 页面(Page)数据库页面(Database Page)区块(Block) 资源添加内容块时创建标题和折叠项。Notion 节点本身尚不支持直接创建可折叠标题。

您可以通过以下变通方法实现:先创建常规标题,然后修改其 is_toggleable 属性

  1. 使用 Notion 节点添加标题
  2. 选择要添加标题的目标资源: * 若要创建带标题的新页面,选择 页面(Page)数据库页面(Database Page) 资源并执行 创建(Create) 操作 * 若要在现有页面添加标题,选择 区块(Block) 资源并执行 追加(Append After) 操作
  3. 选择 添加区块(Add Block) 并将 类型名称或ID(Type Name or ID) 设为 标题1(Heading 1)标题2(Heading 2)标题3(Heading 3)
  4. 添加一个连接到 Notion 节点的 HTTP请求节点(HTTP Request),选择 GET 方法
  5. URL 设为 https://api.notion.com/v1/blocks/<block_ID>。例如,如果您将标题添加到现有页面,可使用:https://api.notion.com/v1/blocks/{{ $json.results[0].id }}。如果是创建新页面而非追加区块,可能需要先查询页面内容来获取区块ID
  6. 选择 预定义凭证类型(Predefined Credential Type) 并连接现有 Notion 凭据
  7. 在 HTTP 请求节点后添加 编辑字段(Set)节点(Edit Fields (Set))
  8. 添加 heading_1.is_toggleable 作为新 布尔(Boolean) 字段并设为 true。根据实际标题级别替换 heading_1
  9. 在编辑字段节点后添加第二个 HTTP 请求节点
  10. 方法(Method) 设为 PATCHURL 值设为 https://api.notion.com/v1/blocks/{{ $json.id }}
  11. 选择 预定义凭证类型(Predefined Credential Type) 并连接现有 Notion 凭据
  12. 启用 发送正文(Send Body) 并设置参数
  13. 将参数 名称(Name) 设为 heading_1(根据实际标题级别替换)
  14. 将参数 值(Value) 设为 {{ $json.heading_1 }}(根据实际标题级别替换)

以上操作序列将先创建常规标题区块,然后查询新创建的标题,添加 is_toggleable 属性,最后更新标题区块。

处理空值和未定义值#

在使用 Notion 节点时,如果您提交包含空值或未定义值的字段,可能会收到验证错误。这种情况通常发生在您从前置节点获取数据但该数据缺失时。

要解决这个问题,可以在将数据发送到 Notion 之前检查字段数据是否存在,或者使用默认值。

在执行 Notion 节点之前检查数据,可以使用 If 节点来检查字段是否未设置。这样您就可以使用 Edit Fields (Set) 节点在字段没有有效值时有条件地移除该字段。

另一种方法是,如果传入数据没有提供值,可以设置一个默认值