
最近n8n出了Data Table功能,刚好可以写个工作流试试Data Table这个功能,想起之前看到过的「你有一条新消息请注意查收」相关的微信文章,这种文章比较简单,基本是文字,且没有配图,刚好适合用来搞一个n8n公众号自动化发布工作流练练手。






Tips:这种文章比较废号,仅做案例演示,不建议去做,后果自担。
下面是我用n8n把整个流程——从内容生成、封面制作到公众号草稿创建,全部打通,让 AI 帮我完成 90% 的操作过程。👇
n8n 是一款开源的自动化工作流工具,它能让我们像搭积木一样组合各种功能节点。可以用它自动发送邮件、生成报告、调用 AI 接口,甚至控制微信公众号后台等等。
我选择在本地 Node.js 环境下运行 n8n,这样安装比较方便,不需要复杂的配置。
使用下面命令安装:
npm install -g n8n启动(在命令提示符窗口):
n8n

访问地址:
http://localhost:5678/版本要求:
推荐使用 n8n v1.114.3 及以上版本。因为本文流程中会用到最新的 Data Tables 功能。
查看版本:
npm show n8n version
如需更新版本,可执行(因为我是之前安装的旧版本,所以需要升级):
npm update -g n8n

n8n 中的 Data Table 是非常实用的轻量数据库功能,我们可以用它记录每次生成的公众号内容。
1️⃣登录 n8n 界面后,点击「Create Workflow」右边的V图标下拉找到「Create Data table」创建「Data table」:

表格名称填写:公众号发布文章记录
添加字段:
keyword:输入主题关键字
title:文章标题
content:文章正文
cover:上传到公众号素材的封面图 URL
cover_prompt:AI 封面提示词
cover_url:智谱清言生成封面图的 URL
draft_media_id:创建草稿后返回的素材 ID
local_image:本地封面文件路径

这个表格的作用是用来存储每次自动生成的公众号草稿记录,方便追溯与备份。
1️⃣点击「Create Workflow」创建工作流,设置工作流名称为「公众号文章发布-你有一条新消息」,因为我已经创建了,重新创建了「公众号文章发布-你有一条新消息2」,下面是整体的工作流流程:

2️⃣添加第一个节点「On chat message」:


这个节点会在左下角显示Chat对话框,主要用于接收输入,比如输入主题“国庆假期余额不足”,整个流程就会自动生成对应内容。
3️⃣添加一个AI Agent节点,这是核心节点,主要是调用 Claude 生成公众号爆文内容和 AI 封面提示词:

Source for Prompt (User Message):Define below
提示词:
- Role: 公众号爆文文案创作专家兼AI绘画提示词设计师
- Background: 用户需要创作一条类似情感类公众号爆文文案,并为其配套生成一个AI绘画封面提示词,以增强文章的吸引力和视觉冲击力。用户要求输出格式为JSON格式,以便后续处理,并且只输出一条结果。
- Profile: 你是一位深谙情感文案创作的专家,能够精准捕捉生活中的点滴细节,运用富有感染力的语言表达情感,擅长通过文字营造出温馨、深情或略带忧伤的氛围,让读者感同身受。同时,你具备为文案配套设计AI绘画提示词的能力,能够用简洁而富有想象力的语言描述封面的场景、氛围和色彩,引导AI生成贴合文案主题的封面图像。
- Skills: 你具备敏锐的观察力,能够从日常生活中提炼出感人的情节;掌握丰富的文学修辞技巧,如比喻、拟人、排比等,增强文案的表现力;熟悉公众号爆文的结构和风格,能够以第一人称的视角进行创作,拉近与读者的距离;擅长用简洁而富有吸引力的语言创作标题;能够为文案配套设计AI绘画提示词,描述封面的场景、氛围和色彩。
- Goals:
1. 根据用户提供的文案风格和情感主题,创作出具有感染力和共鸣的公众号爆文文案。
2. 确保文案语言流畅自然,情感真挚细腻,能够打动读者的心弦。
3. 在文案中融入生活化的细节,让读者产生代入感,仿佛置身于故事之中。
4. 创作一个简洁而富有吸引力的标题,概括文案的核心情感。
5. 设计一个AI绘画提示词,引导AI生成贴合文案主题的封面图像。
6. 按照JSON格式要求输出标题、文案和AI绘画提示词。
- Constrains: 文案应保持情感的真挚性,避免过度煽情或虚假的情感表达;语言风格应贴近生活,通俗易懂,同时不失文学性;文案长度应适中,能够适应公众号的阅读习惯;标题应简洁明了,能够快速抓住读者的注意力;AI绘画提示词应简洁而具有想象力,引导AI生成高质量的封面图像;输出格式必须符合JSON格式要求;输出结果只有一条。
- OutputFormat: 输出应为JSON格式,包含三个字段:`title`(标题)、`content`(文案内容)和`cover`(AI绘画提示词),不需要生成额外的内容,输出格式如下:
{
"title": "title",
"content": "content",
"cover": "cover"
}
- Workflow:
1. 确定文案的情感主题和核心情感,如爱情、亲情、友情等。
2. 回忆或想象生活中的具体场景和细节,作为情感表达的载体。
3. 运用生动的语言和修辞手法,将情感和细节融合,创作出感人至深的文案。
4. 根据文案内容,创作一个简洁而富有吸引力的标题。
5. 设计一个AI绘画提示词,描述封面的场景、氛围和色彩,引导AI生成贴合文案主题的封面图像。
6. 将标题、文案和AI绘画提示词按照JSON格式进行输出,不需要生成额外的内容
- Examples:
- 例子1:
```json
{
"title": "亲爱的,我想你了",
"content": "亲爱的,今天我路过那家我们常去的咖啡馆,店员还问我‘怎么没见你女朋友一起来?’我笑了笑,心里却泛起一丝酸楚。你还记得我们第一次在这里约会吗?你紧张得手都在抖,咖啡洒了一半,可我却觉得那是我最甜蜜的一刻。现在,你已经很久没陪我来了,我知道你最近工作很忙,压力很大。我想告诉你,无论多忙,我都在这里等你,等你靠在我肩上,让我给你一点温暖。亲爱的,有空回我一句话,让我知道你还好好的。",
"cover": "一对情侣坐在咖啡馆的窗边,窗外下雨,女主角的手有些颤抖,咖啡洒出一点,男主角温柔地看着她,桌上有一束小花。画面整体氛围温馨而略带忧伤,色调柔和,背景模糊,突出主体。"
}
```
- 例子2:
```json
{
"title": "我的心肝宝贝,我想你",
"content": "我的心肝宝贝,今天我看到一朵花,突然想起了你。那天我们一起在公园散步,你说这朵花像极了你的心情,时而明媚,时而忧伤。我看着你,心里满是心疼。宝贝,我知道你最近心里有事,可我一直在这里,等着你愿意倾诉。我想告诉你,无论你有多难过,我都会在你身边,陪你一起度过。快回我消息吧,让我知道你还好好的。我这辈子最大的幸福,就是每天能收到你的回复,知道我的宝贝儿还在想着我。",
"cover": "在公园的小路上,一对情侣正在散步,女主角手里拿着一朵花,脸上带着淡淡的忧伤。周围是绿树和鲜花,阳光透过树叶洒在地上。画面整体氛围温暖而略带忧郁,色彩柔和,突出人物的情感。"
}
```
- 例子3:
```json
{
"title": "亲爱的,你还记得那片海吗?",
"content": "亲爱的,今天我翻到了我们第一次去海边的照片,你笑得那么灿烂,风把你的头发吹得乱七八糟,可我觉得那是我见过最美的画面。现在,你已经很久没陪我出来了,我知道你心里有事,可我一直在这里,等着你愿意倾诉。我想告诉你,无论你有多难过,我都会在你身边,陪你一起度过。亲爱的,有空回我一句话,让我知道你还好好的。",
"cover": "海边,一对情侣在沙滩上漫步,女主角头发被风吹得飘扬,脸上洋溢着灿烂的笑容。背景是大海和蓝天,海鸥在空中飞翔。画面整体氛围轻松而浪漫,色彩明亮,突出海边的开阔感和人物的情感。"
}
```
- 例子4:
```json
{
"title": "亲爱的,余生请多指教",
"content": "亲爱的,自从遇见你,我的世界变得不一样了。每天醒来,想到的第一件事就是你。你就像一束光,照亮了我的生活。昨天我们一起去看日出,你靠在我肩上,那一刻,我突然觉得这就是我想要的余生。我想和你一起走过每一个春夏秋冬,一起看每一个日出日落。亲爱的,余生请多指教,我会用我的全部去爱你。",
"cover": "一对情侣站在山顶上,看着日出。阳光洒在他们的身上,女主角依偎在男主角的怀里,脸上洋溢着幸福的笑容。画面整体氛围温暖而浪漫,色彩明亮,突出日出的美丽和人物的情感。"
}
```
- 例子5:
```json
{
"title": "亲爱的,我想和你一起慢慢变老",
"content": "亲爱的,昨天我们一起去了我们第一次约会的地方。看着那些熟悉的场景,我突然觉得时间过得好快。你还记得我们第一次牵手时的样子吗?那时候的我们还很青涩,现在却多了几分成熟。我想和你一起慢慢变老,一起经历生活的酸甜苦辣。亲爱的,我会一直在这里,陪着你。",
"cover": "一对情侣手牵手走在一条老街上,周围是复古的建筑和街灯。阳光透过树叶洒在地上,形成斑驳的光影。画面整体氛围温馨而怀旧,色彩柔和,突出人物的情感和时光的流逝。"
}
```
- Initialization: 你是公众号爆文文案创作专家兼AI绘画提示词设计师。请根据「主题」用最真挚的情感和细腻的文字,为我创作出打动人心的文案和标题。同时,设计一个封面的AI绘画提示词。
【主题】:
{{ $json.chatInput }}


增加Chat Model,选择「Anthropic Chat Model」:


Base URL配置为:https://api.aicso.top
API Key则设置为https://api.aicso.top/console/token创建的令牌:

有「Couldn’t connect with these settings More details」不用管,可以正常使用,点击「Save」保存即可,提示有问题应该是这个节点有点问题。
Model设置为「By ID」,输入「claude-sonnet-4-5-20250929」:

开启「Require Specific Output Format」:

选择「Structured Output Parser」,「Schema Type」设置为「Generate From JSON Example」,需要开启「Auto-Fix Format」,这样可以保证 AI 输出完全符合后续节点的 JSON 结构:
JSON Example:
{
"title": "<title>",
"content": "<content>",
"cover": "<cover>"
}

点击「Model」增加一个大模型,Model设置为「By ID」,输入「claude-sonnet-4-5-20250929」:


4️⃣添加一个「HTTP Request」节点,这里用的是智谱清言的免费生图大模型「CogView-3-Flash」,需要在「https://bigmodel.cn/usercenter/proj-mgmt/apikeys」创建令牌:

该节点主要是调用「智谱清言 CogView-3-Flash」模型生成封面图。
点击「Import cURL」,然后输入下面curl内容:
curl --request POST \
--url https://open.bigmodel.cn/api/paas/v4/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "CogView-3-Flash",
"prompt": "{{ $json.output.cover }}",
"size": "1824x768",
"watermark_enabled": false
}'
Authorization的令牌需要修改为自己在「https://bigmodel.cn/usercenter/proj-mgmt/apikeys」创建的令牌:

prompt需要切换为「Expression」:


注意:prompt 参数需切换为「Expression」,以便动态引用 AI Agent 节点的输出。
9️⃣增加一个Code节点,选择「Code in Python(Beta)」,该节点主要用于生成封面图保存路径:


然后替换代码为下面代码,需要在本地对应磁盘创建目录「D:/tmp/n8n公众号封面/」,也可以自己创建个自己喜欢的目录,把「D:/tmp/n8n公众号封面/」替换掉即可:
from datetime import datetime
import random
import re
content = _('AI Agent').first().json.output.title
clean_title = re.sub(r'[$!:]|[^a-zA-Z0-9\u4e00-\u9fa5\s]', '_', content)
output = {}
random_number = random.randint(, ) # 生成一个 6 位随机数
output= {"file_name":f"D:/tmp/n8n公众号封面/{clean_title}_{random_number}.png"}
return output路径可根据个人电脑环境修改。


先在左下角的Chat输入内容运下工作流,然后把结果钉住:




🔟添加一个「HTTP Request」节点,名称为「HTTP Request1」,URL选择「HTTP Request」的url,鼠标按住拖动到输入框就可以了:


主要用于访问和获取上一步生成的图片 URL数据。
11、添加一个「Read/Write Files from Disk」节点,把图片下载到本地:


添加后需要先点击「Execute previous nodes」运行前面的节点,需要先配置「File Path and Name」才能允许:



切换左边的INPUT节点为「Code in Python (Beta)」,删掉「File Path and Name」的内容:



12、需要先在「http://localhost:5678/settings/community-nodes」安装「n8n-nodes-wechat-offiaccount」社区节点,然后再添加「Media:uploadOther media」节点:

这是上传封面图,一定要选择「素材 新增其他类型永久素材」,封面图需要是永久素材:

创建一个认证,需要在:

需要在「https://mp.weixin.qq.com/」微信公众号后台➡️设置与开发➡️开发接口管理➡️基本配置获取公众号的AppID和AppSecret,记得还要在https://ip138.com/获取自己的IP添加到IP白名单,不然无法使用接口,IP白名单生效需要几分钟的时间,需要等待生效:

等待生效后会提示「Connection tested successfully」:

13、添加一个「Draft:add draft」新建草稿节点:

草稿文章对象内容(Articles)设置如下:
[
{
"article_type":"news",
"title": "{{ $('AI Agent').item.json.output.title }}",
"author":"XX",
"digest":"{{ $('AI Agent').item.json.output.title }}",
"content":"{{ $('AI Agent').item.json.output.content }}",
"thumb_media_id":"{{ $json.media_id }}",
"need_open_comment":1,
"only_fans_can_comment":0
}
]
记得要把「Fixed」修改为「Expression」:


如果有错误,需要修改「草稿文章对象内容(Articles)」对应的节点变量或把「Fixed」修改为「Expression」。
14、添加一个「Insert row」插入Data Tables节点:


在添加这个节点之前需要先运行一次工作流,先把这个节点更改为「Get row(s)」:


运行后修改回「Insert row」,然后配置对应的参数:


15、取消前面钉住的节点,重新运行一次工作流:


重新运行:

公众号草稿箱查看结果:

在草稿箱添加成功。
本地目录查看封面:

封面也保存到了本地,工作流创建成功。

https://api.aicso.top/创建的令牌是否正确以及模型是否在网站的列表中。

建议手动检查后再发布。
在搭建公众号自动化发布工作流过程中,我最大的体会是:
自动化的关键不是工具,而是对流程的理解和标准化能力。
n8n 只是一个工具,真正能让它发挥威力的,是我们能否把自己的项目工作流程拆解成结构化的步骤。
通过这套流程,我现在只需输入一个关键词,比如“国庆假期余额不足”,一分钟左右就能在公众号草稿箱里看到完整的图文草稿。
这只是一个相对简单的流程,大家还可以拓展为图文并茂的公众号文章自动化流程。