用 n8n 把 Google 表格内容发布到社交媒体

用 n8n 把 Google 表格内容发布到社交媒体

如何用 n8n 从电子表格发布内容、那个没人会提前提醒你的行追踪问题,以及什么时候 CSV 导入才是更合适的答案。

电子表格是快速写一个月帖子的好地方。把内容从里面导出来,才是真正值得自动化的部分——但不总是要靠工作流来做。

首先要问:这是一批任务,还是一条流

一批任务。 你写好一个月的帖子,完工,然后想把它们排进队列。你不需要 n8n。导出为 CSV 再导入即可:BulkPublish 的批量编辑器读取一个 content 列,外加可选的 scheduled_atmedia_urls。两分钟搞定,之后什么都不用维护。

一条流。 多个人持续地往表里添加行,而且应该一出现就发布。这才是工作流真正该派上用场的地方。

为一批任务去搭建工作流,等于是为一次文件上传就能做完的事,背上了一笔永久的维护成本。

工作流

1. 定时触发器(Schedule Trigger),每 15 或 30 分钟运行一次。优先选这个,而不是”新增行”触发器,原因见下文。

2. Google Sheets 节点,读取行。

3. 筛选出 Approved = yesPublished 为空的行。 两个条件缺一不可。

4. 从各列拼出帖子内容。

5. BulkPublish 节点,Post → Create。

6. 写回表格,设置 Published 和帖子 URL。

行追踪问题

这是最容易坑到人的地方,而且是电子表格特有的问题。

n8n 的”新增行”触发器是靠位置来追踪的。只要有人对表格排序、删除一行,或者在中间插入一行,追踪就会和实际情况对不上,于是你会得到重复发布、漏发,或者两者都有。而电子表格被不断重新排序,本来就是它的用途所在。

解决办法是彻底不依赖位置:按计划轮询、按某一列筛选、发布后再写回。这样一来重新排序就无关紧要了,因为工作流读取的是行里的状态,而不是数行数。

各列说明

用途
Content帖子正文
Channels目标平台
Publish at计划发布时间
Media URL可选的附件
Approved门控开关。yes 或留空
Published发布后写回

之所以要有 Approved 这一列,是因为一行数据一旦被创建,工作流立刻就能看到它,哪怕这行还在被人打字。

留意配额

电子表格让粘贴五十行变得毫不费力,而五十行就是五十条帖子。

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

一个每 15 分钟轮询一次的工作流,在发布任何内容之前,一天就要消耗 96 次请求,所以免费档位根本跑不动这个流程。

检查字数长度

电子表格的一个单元格能装下的文字,远远超过大多数平台能接受的上限,而表格里没有任何东西会提醒你这一点。字符限制会在创建帖子时被校验,所以你得到的会是一个清晰的报错,而不是一条被截断的帖子,但工作流需要把这个报错记录到一个你真的会去看的地方。

先跑草稿

前一周先把内容跑进草稿箱。列映射是最容易出错的部分,而在一堆草稿列表里,出错是显而易见的。

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

简而言之

如果表格是一份已经写完的计划,导出后导入 CSV 就行,不用搭建任何东西。如果它是一条实时队列,就按计划轮询、按列筛选,而不要用”新增行”触发器,因为电子表格会被重新排序,而基于位置的追踪会产生重复。用 Approved 列做门控,发布后再写回表格。