Notion数据库条目与NextCloud OneNote同步 - n8n 工作流

使用这个强大的n8n工作流,当Notion数据库中添加新条目时,自动在NextCloud/WebDAV中创建和同步新的OneNote文件,并内置了稳健的锁定机制。

工作流预览

准备好自动化了吗?

下载此 n8n 工作流模板并立即开始使用。

适用人群

在Notion中管理任务或笔记,但更喜欢在OneNote(通过NextCloud)中编辑和存储内容的用户。
需要使用Redis锁来展示n8n流程控制高级示例的自动化开发者。
使用n8n工作流通过WebDAV管理文件操作的技术用户。
任何需要复杂、集成了多种云服务的n8n模板的人。

概览

在多个平台上管理文档可能很棘手。当创建新笔记时,这个复杂的n8n工作流解决了保持Notion和OneNote内容同步的问题。当在指定的Notion数据库中创建新条目时,此n8n自动化会检查在NextCloud的结构化文件夹路径中是否存在对应的OneNote文件。如果文件不存在,n8n工作流会将一个'empty.one'模板复制到正确的位置,然后用新创建的OneNote文件的直接链接更新原始的Notion页面。它采用了至关重要的Redis锁定机制(使用n8n的Redis节点)来防止无限循环,确保后续的Notion更新不会立即重新触发n8n的Webhook触发器。这是高级n8n工作流设计的实用性很高的一个示例。

工作原理

此n8n工作流的逻辑流程受到严格控制,按如下顺序执行:


  1. 触发与锁检查: 当Notion页面更新或创建时,Webhook启动n8n触发器。紧接着的n8n节点Redis尝试读取与该Notion页面ID关联的锁键。

  2. 去抖/过滤: Filter节点检查Redis的响应。如果键值是'Update'(意味着此n8n工作流刚刚处理过该项目),则流程停止,防止形成循环。

  3. 数据获取: Get Notion page n8n节点检索特定Notion页面的完整详细信息。

  4. 条件执行: Switch n8n节点检查Notion中的'Notes' URL属性当前是否为空。仅当URL为空时,才会继续执行创建逻辑。

  5. 路径映射: Mapping代码n8n节点根据Notion页面的名称(Name)和主题(Subject)属性,动态构建所需的NextCloud WebDAV目标路径和本地OneNote链接。

  6. 存在性检查: HTTP Request1 n8n节点对NextCloud中的目标目录路径执行一个PROPFIND WebDAV请求。

  7. 文件匹配: Match titiles代码n8n节点解析来自NextCloud/WebDAV的复杂XML响应,以确定该特定文件夹中是否已存在同名(确切名称)的OneNote文件。

  8. 条件创建: If n8n节点进行分支:如果文件不存在(match=false),流程将继续复制模板。

  9. 文件创建与链接: HTTP Request n8n节点(使用COPY方法)将模板文件复制到新目标位置。之后,Update task in Notion n8n节点将生成的OneNote URL补丁更新到原始Notion页面。

  10. 设置锁: 最后,Store Redis n8n节点设置锁键为'Updated',并设置80秒的TTL(Time To Live),暂时禁用此项目的n8n触发器。

安装指南

要使用此n8n工作流,请遵循以下步骤:


  1. 导入: 复制提供的JSON数据,并使用n8n实例中的“导入工作流”功能将其粘贴进去。

  2. 凭证设置: 您必须为以下服务配置凭证:

Notion API: Get Notion page和Update task in Notion节点需要。
Redis: Redis (Get) 和 Store (Set) 节点需要,这对锁定机制至关重要。
* NextCloud/WebDAV: HTTP Request节点需要,用于执行文件操作 (COPY, PROPFIND)。

  1. Webhook配置: 激活Webhook n8n触发器,并将其URL链接到您的Notion数据库,以便在页面创建/更新事件时触发。

  2. 路径自定义: 检查Mapping代码节点和HTTP Request节点,确保硬编码的NextCloud路径(https://nextcloud.yuvrajsingh.icu/...)与您实际的NextCloud环境和文件结构相匹配。根据需要调整empty.one模板的位置。

节点详情

Webhook (n8n触发器): 作为起点,监听POST请求(很可能来自Notion)。
Redis (Get & Store n8n节点): 充当关键的流程控制机制,实施一个短暂的锁(lock{{ $json.body.entity.id }}),以防止在n8n工作流自身更新Notion后导致自动化循环。
Filter (n8n节点): 检查Redis锁是否处于活动状态(如果键值为'Update')。如果已锁定,则会停止执行。
Get Notion page (n8n节点): 从启动n8n触发器的页面检索必要的元数据(名称、主题、ID)。
Switch (n8n节点): 为文件创建逻辑设置关卡,仅在用于存放OneNote URL的Notion属性(propertynotes)为空时才继续执行。
Mapping (Code n8n节点): 根据从Notion检索到的数据,生成WebDAV的动态文件目标路径(destination)和最终的URL链接(url)。
HTTP Request (PROPFIND & COPY n8n节点): 使用WebDAV协议与NextCloud交互。HTTP Request1检查目录内容 (PROPFIND),而HTTP Request则复制模板文件 (COPY) 以创建新的OneNote文档。
Match titiles (Code n8n节点): 对PROPFIND的XML响应进行复杂的解析和严格的字符串比较,以验证在n8n工作流尝试创建之前文件是否已经存在。


  • If (n8n节点): 根据文件是否存在检查的结果,决定是继续执行文件复制序列还是跳过它。

相关 n8n 工作流

免费

节点: 10 节点
更新时间: 2025年12月26日
创建者
Yuvraj Singh
Yuvraj Singh

精选*