2026-10-09 · 原文发布日
供应商网页自动填入FF&E表
webhook带入产品URL、类目、表格行和唯一Automation ID;先校验URL,HTTP取页失败就写回Failed,成功则剔除脚本样式并抓og:image,再让Gemini按固定schema抽出SKU、饰面颜色、供应商、描述和备注,最后按Automation ID更新Sheets状态。
原文要点
这是n8n官方模板库的免费模板,面向FF&E(家具、固定装置与设备)采购团队。webhook带入产品URL、类目、表格行上下文和唯一Automation ID;先校验URL格式,非法输入直接拦截;HTTP取页失败(被拦截、不可用、无内容)走失败分支写回“Failed - Page fetch error”;成功则剔除脚本样式等非内容元素并抓取og:image,再由Gemini按固定schema抽出SKU、饰面/颜色、供应商、供应商描述和备注,页面没有的字段留空不编造;最后按Automation ID匹配行更新Sheets,成功标Completed。
这次做成什么
把供应商产品网页自动转成FF&E进度表里的结构化记录:外部系统(或手工表单)带URL调webhook,流程抓页、Gemini抽取五个字段、按Automation ID回写对应Google Sheets行并标记状态。模板可免费导入。
准备什么
- 一个n8n实例和可接收外部POST的webhook入口
- Google账号,可访问目标Google Sheets
- Google Gemini API凭据(接入Information Extractor用的聊天模型)
- 一个可公开访问的供应商产品页用于测试
具体怎么做
建FF&E进度表
新建Google Sheet,列依次为:Image、Category、SKU、Finish/Colour、Supplier、Vendor Description、Notes、Product Website、Location、Automation ID、Status。Automation ID必须每行唯一,它是全流程的行匹配键。预填一行测试数据:Category=座椅,Automation ID=AUTO-0001,Status=Pending。
导入模板并接凭据
在n8n模板页(workflows/20702)导入此免费模板。连接Google Sheets凭据并在成功、失败两个更新节点选同一张表;把Gemini凭据接到Information Extractor的聊天模型上。节点名以导入版本为准,本站未逐节点核对内部配置。
确认webhook入参契约
webhook接收JSON,需含:productUrl(产品页)、category(类目)、sheet行上下文、automationId(唯一,对应表中Automation ID列)。用材料中的测试负载POST到webhook测试地址验证解析。
验证URL校验与失败分支
先发一个格式非法的URL,应在抓取前被拦截;再发一个会403/404的页面URL,确认流程走失败分支并把AUTO-0001行的Status写为Failed - Page fetch error,其余字段不动。
验证成功抽取分支
发一个可公开访问的产品页URL。流程HTTP取页后剔除script/style等非内容元素,尝试取og:image作产品图,再把清洗后的正文交Gemini按固定schema抽取。页面没有的字段必须留空。
核对回写结果
检查表中AUTO-0001行:SKU、Finish/Colour、Supplier、Vendor Description、Notes已填入,Image列为og:image地址,Product Website为原URL,Status变为Completed。采购或规格决策前仍需人工复核抽取内容。
可直接复制的材料
webhook测试负载
本站虚构测试数据,域名与Automation ID均为示例;字段名以你导入模板的webhook实际解析为准
{
"automationId": "AUTO-0001",
"productUrl": "https://supplier-example.com/products/oak-lounge-chair-2042",
"category": "座椅",
"sheetReference": "FF&E进度表/Sheet1",
"rowContext": {"rowNumber": 2, "location": "三层客房走廊"}
}Gemini抽取schema(本站整理版)
按原文列出的五个字段整理的本站示例schema,缺值留空不编造;模板内实际schema以导入为准
{
"type": "object",
"properties": {
"sku": {"type": "string", "description": "产品SKU或货号,页面没有则为空字符串"},
"finishColour": {"type": "string", "description": "饰面或颜色描述"},
"supplier": {"type": "string", "description": "供应商或制造商名称"},
"vendorDescription": {"type": "string", "description": "供应商给出的产品描述原文摘取"},
"notes": {"type": "string", "description": "与FF&E排期相关的产品备注,如尺寸、材质、交期"}
},
"required": ["sku", "finishColour", "supplier", "vendorDescription", "notes"]
}状态值约定
Completed与Failed - Page fetch error为原文明确的状态值;Pending是本站为测试流程加的预设值
Status列取值约定:
Pending — 已建行、等待抓取(本站在测试数据中预设,非模板原生)
Completed — 抽取并回写成功
Failed - Page fetch error — 页面被拦截、不可用或返回无可用内容输入与输出示例
本站虚构演示,非模板实际运行结果;抽取内容取决于真实页面与Gemini输出
输入
POST材料中的测试负载(AUTO-0001,橡木休闲椅产品页,可公开访问)到webhook测试地址对应输出
表中Automation ID为AUTO-0001的行被更新:Image=https://supplier-example.com/og/chair-2042.jpg(取自og:image),SKU=OAK-2042,Finish/Colour=橡木原色哑光,Supplier=Supplier Example Co.,Vendor Description=北欧风橡木休闲椅,座高45cm,Notes=承重120kg;Product Website=原URL,Status=Completed。若该页返回403,同一行只把Status改为Failed - Page fetch error,其余列保持原值。(本站虚构示意)做完检查这些
- 非法URL的请求在HTTP抓取前被拦截,不产生任何Sheets写入
- 不可访问页面使对应Automation ID行的Status变为Failed - Page fetch error且其它列不被清空
- 成功页面回写后,SKU等五字段、og:image图、原URL和Completed状态齐全
- 页面未提供的信息(如无货号)对应字段为空字符串而不是编造值
- 并发处理多条产品时,每条都凭Automation ID写回各自正确的行,不串行
容易卡住的地方
- 部分供应商站点封锁常规HTTP抓取,失败会显著增多;原文建议可扩展专用抓取服务,但模板本身不含
- Automation ID重复或缺行会导致错写或无行可写,建行时必须保证唯一
- Gemini抽取结果可能出错,原文明确要求采购或规格决策前人工复核
- 网页正文清洗依赖剔除脚本样式,严重依赖JavaScript渲染的页面可能取不到有效正文
- 两个更新节点必须指向同一张表,否则成功和失败记录会分散到不同表
- Webhook是外部可访问入口,建议加来源校验(模板契约以外的加固需自行实现)
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Extract FF&E product details from supplier URLs with Google Gemini and Google Sheets
- 原作者
- Ebad Ullah
- 原始发布日期
- 2026-10-09T13:55:45.776Z
- 来源
- https://n8n.io/workflows/20702