AI PLAY玩法更新持续收录
← 回到更新流

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用的聊天模型)
  • 一个可公开访问的供应商产品页用于测试

具体怎么做

  1. 建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。

  2. 导入模板并接凭据

    在n8n模板页(workflows/20702)导入此免费模板。连接Google Sheets凭据并在成功、失败两个更新节点选同一张表;把Gemini凭据接到Information Extractor的聊天模型上。节点名以导入版本为准,本站未逐节点核对内部配置。

  3. 确认webhook入参契约

    webhook接收JSON,需含:productUrl(产品页)、category(类目)、sheet行上下文、automationId(唯一,对应表中Automation ID列)。用材料中的测试负载POST到webhook测试地址验证解析。

  4. 验证URL校验与失败分支

    先发一个格式非法的URL,应在抓取前被拦截;再发一个会403/404的页面URL,确认流程走失败分支并把AUTO-0001行的Status写为Failed - Page fetch error,其余字段不动。

  5. 验证成功抽取分支

    发一个可公开访问的产品页URL。流程HTTP取页后剔除script/style等非内容元素,尝试取og:image作产品图,再把清洗后的正文交Gemini按固定schema抽取。页面没有的字段必须留空。

  6. 核对回写结果

    检查表中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