今天分享一个n8n工作流,让AI帮你逐篇分析每篇文章,自动给出爆款评分、用户画像、核心关键词。
分析完成后,结果直接写入飞书表格。
1.工作流的整体流程
image.png
简单来说,工作流分三步:
从飞书表格读取所有文章
将每篇文章交给AI分析爆款潜力
将AI的分析结果自动更新回飞书表格
整个过程全自动,你只需点击一次运行按钮。
2.准备工作
开始之前,你需要准备两样东西:
2.1 获取DeepSeek的API密钥
访问DeepSeek官网的开放平台管理后台,创建并获取API密钥(API key)。
访问地址:https://platform.deepseek.com/api_keys
按照页面提示生成你的API密钥,用于后续的身份验证和服务调用。
image.png
2.2 创建飞书多维表格并绑定应用
1、新建多维表格
image.png
2、获取表格token与表格id
image.png
3、点右上角“...”,选择“更多”->“添加文档应用”。
image.png
4、选择“n8n助手”,权限是可编辑。
image.png
3.工作流节点拆解
3.1 Edit Fields节点:配置中心
这个节点存放所有配置参数,方便后续节点调用。
添加一个Edit Fields节点,配置以下3个参数:
表格Token:粘贴你的飞书表格Token
表格ID:粘贴你的飞书表格ID
配置完成后,点击"Execute step"测试一下。
image.png
3.2 Feishu Lite节点:读取所有文章
这一步,从飞书表格中读取所有文章。
添加Feishu Node节点,按以下步骤配置:
Credentials:选择你的飞书机器人
Resource:多维表格
Operation:查询记录
多维表格Token:用表达式引用 $json['表格token']
多维表格ID:用表达式引用 $json['表格id']
请求体JSON:切换到表达式模式,填入:
{
"page_size": 100
}
运行一下,OUTPUT显示飞书表格的原始数据。
image.png
3.3 Code节点:提取文章列表数组
这一步的作用是:把飞书返回的数据中,提取出文章列表部分,转成数组格式,方便后续循环处理。
添加一个Code节点,语言选JavaScript,粘贴以下代码:
return $input.first().json.data.items;
image.png
3.3 Loop Over Items节点:启动循环
为了逐篇分析文章,需要使用循环节点。
添加Loop Over Items节点,无需配置,直接关闭窗口即可。
image.png
3.4 Code节点:合并公众号文章数据
这一步的作用是:把循环中当前这篇文章的所有信息(标题、链接、阅读数等等),整理成一个完整的字符串,方便后面交给AI分析。
简单来说,就是把分散的数据字段整合在一起,让AI能够完整地读取和分析。
在循环内部,提取当前文章的信息并打包成字符串。
添加Code节点,语言选择JavaScript,粘贴以下代码:
const items = $input.all();
// 假设目标数组在 items[0].json.data.items 或者 items[0].json.fieldsArray
const arr = items[0].json?.data?.items ?? items[0].json?.fields ?? items.map(i => i.json);
// 将其序列化为字符串(漂亮格式,便于调试)
const str = JSON.stringify(arr, null, 2);
// 返回一个字段 stringified 供下游引用
return [{ json: { stringifiedArray: str } }];
运行一下,OUTPUT为合并后的公众号文章数据。
image.png
3.5 Basic LLM Chain节点:调用AI分析
这是核心步骤,把文章数据"喂"给AI。
添加Basic LLM Chain节点,配置如下:
Source for Prompt (User Message):define below
Prompt (User Message):粘贴以下内容:
你现在的任务是:
给定一组数据包含 ID、标题、正文、发布时间、分类、点赞数等信息,分析爆款潜力、用户画像、文章目标、关键词。
你的输出要求:
为每条文章打一个 爆款评分(0–100,越高越容易成为爆款)。
给出一句话的 爆款理由。
给出用户画像和文章目标。
提取文章的核心关键词。
输出格式:
必须是一个 JSON ,字段为:{ 爆款指数: 0~100数字 , 爆款理由:'XXXXX', 用户画像:'XXXX',文章目标:'XXXX',关键词:'XX XX XX' }
约束条件:
只输出纯 JSON,不要解释文字。
缺失信息时用合理缺省值(比如分数为 0,理由留空)。
文章如下:
{{ $json.stringifiedArray }}