2026-10-02 · 原文发布日
定时抓取竞品网站并邮件推送PDF情报报告
这个n8n免费模板按设定周期从Google Sheets读取竞品URL列表,逐个用Firecrawl抓取网站内容,交给OpenAI按固定schema生成结构化的竞品情报分析,结果摘要追加回Sheet留档,同时渲染成HTML报告、经html2pdf.app转成PDF,最后通过Gmail把报告和PDF附件发到指定邮箱。全流程循环处理每个竞品,抓取、分析、存档、投递各环节都可换凭据或改间隔。
原文要点
该n8n模板定时触发,从Google Sheets读取含URL列的竞品清单,循环每个竞品:用Firecrawl API抓取站点内容,交OpenAI按既定schema生成结构化竞品情报,把摘要追加回Sheet留档,再渲染成带样式的HTML报告,经html2pdf.app API转PDF,最后用Gmail把报告正文和PDF附件发给指定邮箱,处理完一个继续下一个。需要分别配置Google Sheets OAuth、Firecrawl Bearer、OpenAI、html2pdf.app Header Auth和Gmail OAuth五组凭据。
这次做成什么
把该免费模板跑通成一套「每周自动竞品情报」流程:以两个虚构竞品做端到端演练,确认抓取、结构化分析、Sheet留档、PDF生成、邮件投递五环都通,再替换为真实竞品清单。
准备什么
- 一个可登录的n8n实例(自托管或云版均可),能导入模板
- Google账号:一个Sheet,含Competitors表(至少有Url列)和Results表
- Firecrawl API密钥、OpenAI API密钥、html2pdf.app API密钥
- Gmail账号并完成OAuth授权,准备一个测试收件邮箱
具体怎么做
准备Sheet与导入模板
新建Google Sheet:第一个标签命名Competitors,首行写Url;第二个标签命名Results,首行写competitor_url、summary、analyzed_at三列。在n8n导入该模板后,在两个Google Sheets节点里选择这份表格和对应标签,确保Competitors的列名就叫Url,与抓取请求读取的字段一致。
设定定时与抓取
打开Schedule Trigger节点,把间隔改为每7天一次(练习期可先改每分钟方便观察)。在Firecrawl抓取节点配置HTTP Bearer Auth凭据,确认请求体里的url字段引用当前循环项的Url列,抓取模式保持模板默认。
配置AI结构化分析
在OpenAI节点填入凭据,把系统提示词替换为本页材料里的竞品情报提示词,保持schema要求的JSON输出格式,让模型只依据抓取文本输出定位变化、新动作、风险信号等固定字段。
打通报告与投递
确认HTML渲染节点把AI输出的各字段拼进报告模板;html2pdf.app节点配置Header Auth密钥,并按你的套餐文档核对请求格式;Gmail节点把收件人改成你的测试邮箱,主题保留竞品名变量,附件引用上一步生成的PDF二进制。
单条演练后激活
先在Competitors表只放一行虚构URL,手动执行一次工作流,检查Results新增一行、收到带PDF的邮件;确认无误后补全清单并激活定时器。
可直接复制的材料
OpenAI竞品情报结构化分析提示词
本站独立编写示例,{{抓取结果}}替换为Firecrawl节点输出字段,schema字段需与模板格式化节点读取的键名对应,具体键名以原模板为准。
你是竞品情报分析师。以下是竞品网站的抓取文本,可能包含导航噪声。只依据文本内容,输出严格JSON,不要输出其他文字:{"positioning":"一句话目标用户与核心卖点","changes":"与常规内容相比的新页面/新活动/定价线索,没有就写无","signals":"值得警惕的2至3条信号,每条不超过40字","recommended_action":"我方建议采取的一个动作"}。规则:信息不足时对应字段写「抓取内容不足,无法判断」,不要编造;忽略cookie提示与页脚法律文本。抓取文本:{{抓取结果}}Competitors表测试数据
本站虚构的两个练习URL,演示时可换成真实可访问站点,否则Firecrawl会抓取失败。
Url
https://example-acme-tools.com
https://example-brightly.iohtml2pdf.app请求配置要点
本站按模板描述整理的配置骨架,非原模板导出文件,具体参数名需在你的html2pdf.app后台核对。
{
"method": "POST",
"authentication": "headerAuth",
"sendBody": true,
"bodyParameters": {
"html": "={{ HTML渲染节点输出 }}",
"name": "competitor-report.pdf"
},
"note": "字段名与是否支持HTML直传以你的html2pdf.app套餐文档为准"
}输入与输出示例
本站虚构演示输入与示意输出,非真实调用结果,未实际运行该工作流。
输入
Competitors表一行:Url=https://example-acme-tools.com,抓取到首页宣传「新增团队协作版,月付29美元起」对应输出
Results追加行:competitor_url=https://example-acme-tools.com|summary=定位中小团队的协作工具,新推29美元/月团队版,信号:低价切入、按席位计费,建议:对比我方团队版定价页|analyzed_at=2026-10-05 09:00;同时收到主题「竞品情报:example-acme-tools.com」的邮件并附PDF做完检查这些
- 手动执行一次后,Results表新增一行且summary非空、时间戳为本次运行时间
- 收件邮箱收到Gmail发出的邮件,主题含竞品名,附件为可打开的PDF
- 把Schedule Trigger改为短间隔观察两轮,每个竞品都被各处理一次,无漏处理或重复投递
- Competitors表某行URL失效时该行报错但流程不整体崩溃,或按模板错误路径处理
容易卡住的地方
- 列名必须叫Url并与抓取节点读取字段一致,改名会导致抓取请求拿到空值
- html2pdf.app不同套餐的请求格式可能不同,PDF节点报400时先核对官方文档
- 抓取失败或内容过少时,提示词应让模型写「无法判断」而非编造情报
- 模板免费,但Firecrawl、OpenAI、html2pdf.app按各自用量计费,需自行确认额度
- 本页为按模板说明整理的实操方案,未在n8n中导入实测,节点细节以原模板画布为准
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Track competitor website changes with Firecrawl, OpenAI, Google Sheets and Gmail
- 原作者
- Bhaskar Gorati
- 原始发布日期
- 2026-10-02T06:17:07.196Z
- 来源
- https://n8n.io/workflows/20325