用 n8n 把 Notion 内容发布到社交媒体

用 n8n 把 Notion 内容发布到社交媒体

在 Notion 数据库里规划内容,然后自动发布出去。这里介绍能让流程稳定运行的属性设置,以及你需要的状态门控。

Notion 是规划内容的好地方:每个活动一个数据库视图、想追踪什么就设什么属性、还能用评论做审阅。问题在于,“这一行标记为 Ready”和”帖子真正发出去”之间存在一道缝隙。

下面教你怎么弥合这道缝隙,以及那唯一一个能决定这套流程是正常运作、还是把你写到一半的草稿发出去的关键点。

先把数据库搭建好

工作流的可靠程度,完全取决于它背后的数据库。值得设置的属性包括:

属性类型用途
Content文本帖子正文本身
Status单选Draft、Ready、Published
Channels多选发布到哪些平台
Publish at日期什么时候发出去
Media文件或 URL任何附件

Status 是最重要的一项。 没有它,Notion 页面里的每一次按键都可能触发流程,你会把还没写完一半的句子发出去。

工作流

1. 定时触发器(Schedule Trigger)。 每 15 或 30 分钟运行一次。Notion 也提供基于变更的触发器,但对这个场景来说,按计划轮询再按状态筛选更可预测,因为一行数据库记录在完成之前会被编辑很多次。

2. Notion 节点,获取数据库页面。 筛选出 Status = Ready 的记录。这就是门控。任何没有明确标记为就绪的内容都不会靠近任何平台。

3. 按发布日期筛选,如果你希望由这一行数据控制发布时间,而不是把所有已就绪的内容立刻全部发出去。

4. 拼出帖子内容。 把 Notion 属性映射到内容和频道。如果你的 Channels 属性是多选,这一步就是把这些值转换成频道列表的地方。

5. BulkPublish 节点,Post → Create。 内容、频道,以及可选的计划发布时间。

6. Notion 节点,更新页面。 把 Status 设为 Published,并写回帖子的 id 或 URL。

最后这一步正是大家最容易跳过的一步,而它正是阻止工作流在下一次运行时重复发布同一行数据的关键。没有它,每次运行都会再次捡起所有 Ready 状态的行。

陷阱:Notion 的富文本

Notion 的内容是结构化的,不是纯文本。标题、加粗、项目符号、折叠块和链接,都带着社交平台不接受的格式。

如果你把一个 Notion 区块原样传递过去,得到的要么是被原样渲染成文字的 markdown 语法,要么是一条空帖子——如果提取时选错了字段的话。

要专门提取纯文本,并在信任它之前,先检查一条真实的记录实际生成了什么。这是这类工作流产出奇怪帖子最常见的原因。

你真的需要 n8n 吗

值得先问一下这个问题。如果你是在 Notion 里做计划,只是想把帖子发出去,其实有一个直接的 Notion 集成,根本不需要运行任何工作流。

只有当你需要一些介于两者之间的东西时,才值得搭建 n8n 版本:按属性筛选、转换文本、把不同类型的内容路由到不同账号,或者接入第二个数据源。

先跑草稿

前一周,让工作流创建草稿而不是直接发布。这样你能在受众看到之前,先看清楚 Notion 到帖子的映射究竟产生了什么,尤其是富文本的处理结果。

套餐限制

  • 频道数: 免费版:3 个(每个平台 1 个)。Pro:30 个(每个平台 2 个)。Business:75 个(每个平台 5 个)。
  • 帖子数: 免费版:每天 3 条。Pro:每天 30 条。Business:无限。
  • 每日 API 请求数: 免费版:30。Pro:5,000。Business:50,000。

免费档位每天 30 次请求是给评估自动化用的。一个每 15 分钟轮询一次的工作流,在发布任何内容之前,一天就要消耗 96 次请求。

BulkPublish 支持发布到 15 个平台:Facebook、Instagram、TikTok、YouTube、X、Threads、Bluesky、Pinterest、Google Business Profile、LinkedIn、Mastodon、Discord、Telegram、Tumblr 和 Snapchat。

简而言之

添加一个 Status 属性并按它筛选,否则你会把草稿发布出去。发布之后要写回 Notion,否则每次运行都会重复发布。要专门提取纯文本,因为 Notion 的富文本经不起这趟旅程。而且在搭建一个需要维护的工作流之前,先看看那个直接的 Notion 集成是否已经满足你的需求。