Notion 节点常见问题#
以下是使用 Notion 节点 时的一些常见错误和问题,以及相应的解决或排查步骤。
关联属性未显示#
Notion 节点仅支持在 双向关联(two-way relations) 的情况下显示数据关联属性。当你使用两个具有双向关系的 Notion 数据库时,在使用 Notion 节点的 Database Page 资源时,就可以选择或按关联属性进行筛选。
要启用双向关联,请在 Notion 中编辑该关联属性,并启用 Show on [相关数据库名称] 选项以创建反向关联。为该关联在新上下文中指定一个名称。完成后,你就可以在 n8n 中对该关联进行筛选或选择。
如果你需要处理具有单向关联(one-way relationship)的 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(添加区块)**,并将 **Type Name or ID(类型名称或 ID)** 设置为 **Heading 1**、**Heading 2** 或 **Heading 3**。
4. 添加一个 HTTP Request 节点并连接到 Notion 节点,选择 `GET` 方法。
5. 将 **URL** 设置为 `https://api.notion.com/v1/blocks/<block_ID>`。例如,如果你将标题添加到了现有页面中,可以使用如下 URL:`https://api.notion.com/v1/blocks/{{ $json.results[0].id }}`。如果你是创建了新页面而非追加区块,则可能需要先查询页面内容以获取该区块的 ID。
6. 选择 **Predefined Credential Type(预定义凭证类型)**,并关联你已有的 Notion 凭证。
7. 在 HTTP Request 节点后添加一个 Edit Fields (Set) 节点。
8. 添加一个新的 **Boolean(布尔值)** 字段,命名为 `heading_1.is_toggleable`,并将其设置为 `true`。根据实际使用的标题级别,将 `heading_1` 替换为对应的标题编号(如 `heading_2`)。
9. 在 Edit Fields (Set) 节点之后再添加第二个 HTTP Request 节点。
10. 将 **Method(方法)** 设置为 `PATCH`,并将 **URL** 值设为 `https://api.notion.com/v1/blocks/{{ $json.id }}`。
11. 选择 **Predefined Credential Type(预定义凭证类型)**,并再次关联你已有的 Notion 凭证。
12. 启用 **Send Body(发送正文)** 并设置一个参数。
13. 将参数的 **Name(名称)** 设置为 `heading_1`(请根据你使用的标题级别替换相应的 heading 编号)。
14. 将参数的 **Value(值)** 设置为 `{{ $json.heading_1 }}`(同样根据实际标题级别进行替换)。上述操作序列将创建一个常规的标题块。它会查询新创建的标题,添加 is_toggleable 属性,并更新该标题块。
处理 null 和空值#
当你在使用 Notion 节点时,如果提交了包含空值或 null 值的字段,可能会收到验证错误。这种情况通常发生在你从前一个节点填充字段但对应数据缺失时。
为避免此问题,在将数据发送到 Notion 之前,请先检查字段数据是否存在,或使用默认值替代。
要在执行 Notion 节点前检查数据,可以使用 If 节点来判断该字段是否未设置。这样就可以结合使用 Edit Fields (Set) 节点,在字段没有有效值时有条件地移除该字段。
另一种方法是,如果传入的数据未提供值,可以设置一个默认值。