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

2026-09-18 · 原文发布日

清洁服务询价自动报价并邮件回复

n8n免费模板:JotForm收到清洁服务询价表单后触发,Google Gemini从备注里提取厨卫数量、特殊要求和服务类型并给出复杂度系数,结合面积算出预估工时和内部报价区间,过滤不符合条件的线索后由Gemini起草报价邮件,质量分达标才写入Google Sheets并通过Gmail发给客户。

原文要点

该免费n8n模板以JotForm询价提交为入口,先标准化姓名、邮箱、电话与物业字段并剔除缺项;再用Google Gemini从备注抽取厨卫数量、特殊要求、服务类型与复杂度系数;按面积、物业类型和系数估算工时与内部低/高报价;过滤面积或工时不合格线索;质量分过阈才追加/更新Google Sheets并经Gmail发报价邮件。配置需JotForm表单ID、Gemini/Google PaLM凭据、Gmail OAuth2、Sheets服务账号及列名匹配。

这次做成什么

在本站做一个可演练的清洁询价分流方案:收到表单后产出结构化需求JSON、内部报价区间、质量分与一封可发送邮件草稿;不把原模板当作已导入文件,而是用相同触发器→处理→分支→输出逻辑自行搭建小流程。

准备什么

  • 一个可新建表单的JotForm账号或等价表单收集入口,并能拿到测试提交
  • n8n实例与邮件、表格、AI模型三类测试凭据,全部使用隔离账号而非客户真实邮箱
  • 一张练习用Google Sheet,列含email、status、low_quote、high_quote、quality_score、last_note
  • 一份虚构询价备注,包含面积、厨卫数量、服务类型和特殊要求,便于核对抽取结果

具体怎么做

  1. 准备触发与字段

    在n8n新建工作流,第一节点用JotForm触发器或手动测试节点模拟提交;把表单字段统一映射成name、email、phone、square_feet、property_type、notes,缺email或square_feet的进入废件分支并只记录不发送。

  2. 抽取需求并算价

    把notes交给Gemini,使用下方提示词强制返回JSON;随后在代码节点按本站练习公式计算:base_hours=square_feet/900,labor_hours=base_hours*complexity_multiplier+bathrooms*0.35+kitchens*0.5,内部区间low=round(labor_hours*32), high=round(labor_hours*46),金额单位为演示美元。

  3. 质量分支与落表

    设置IF节点:square_feet在800至12000且labor_hours>0才继续;再让Gemini输出subject、html_body、urgency、next_step、quality_score;quality_score>=70用Sheets按email追加或更新,低于70只把status写成needs_review。

  4. 发送与回查

    Gmail节点仅在质量分支为true且dry_run=false时发送,收件人用email,主题用subject,正文用html_body;发送后回写sent_at与status=sent,若dry_run=true则只把邮件草稿写入Sheet不发信。

可直接复制的材料

Gemini需求抽取提示词

本站独立编写;{{$json.notes}}需替换成你的n8n表达式,输出需再用JSON解析节点校验。

你是商业清洁询价录入助手。只读取【备注】文本,不要编造未出现的字段。输出且只输出一个JSON对象,键固定为:bathrooms(数字,未知用0)、kitchens(数字,未知用0)、special_requirements(字符串数组)、service_type(只能为office|retail|medical|school|other)、complexity_multiplier(0.8到1.8的数字,按污渍、玻璃、高空、夜间、医疗消毒等风险上调)。不要输出解释、markdown或代码块。
【备注】
{{$json.notes}}

估价员邮件生成提示词

本站独立编写;quality_score阈值70是本站练习设定,可在模板中改。

根据给定JSON生成对外报价草稿,只能输出JSON:subject、html_body、urgency(low|normal|high)、next_step、quality_score(0-100)。规则:不要承诺确切成交价,只给预估区间;必须说明需现场复核;如果special_requirements含医疗、高空或危险品,urgency=high且quality_score不超过60;语气专业、简短、适合Gmail HTML;不得包含内部工时公式。
输入JSON:{{$json.quote_json}}

字段映射与分支配置示例

仅为本站演练配置,不是可导入n8n工作流;表单ID、表格ID和币种必须替换。

{"form_id":"REPLACE_WITH_JOTFORM_FORM_ID","required":["email","square_feet"],"sheet":{"spreadsheet":"REPLACE_WITH_SHEET_ID","worksheet":"Leads","match_column":"email","columns":["name","email","phone","square_feet","property_type","service_type","labor_hours","low_quote","high_quote","quality_score","status","sent_at","last_note"]},"fit_rule":{"min_square_feet":800,"max_square_feet":12000,"min_labor_hours":0},"quality_threshold":70,"dry_run":true,"currency":"USD_demo"}

输入与输出示例

本站虚构演示,未调用Gemini/Gmail,数字按上方练习公式手算,非原作者结果。

输入

name=演示公司行政部;email=lead@example.invalid;phone=000-0000;square_feet=3200;property_type=office;notes=两层办公室,4个卫生间2个茶水间,周五夜间清洁,需地毯除渍和玻璃内擦,不要医疗消毒。

对应输出

抽取JSON:{"bathrooms":4,"kitchens":2,"special_requirements":["夜间清洁","地毯除渍","玻璃内擦"],"service_type":"office","complexity_multiplier":1.2};labor_hours≈3200/900*1.2+4*0.35+2*0.5=6.67;low_quote≈213,high_quote≈307 USD_demo;quality_score=78;status=sent(dry_run时不发),subject含“3200平方英尺办公室清洁预估”。

做完检查这些

  • 缺email或square_feet的测试提交不进入发送分支,只在Sheet标记invalid
  • 备注中的4卫2厨、夜间与地毯要求必须出现在抽取JSON,不允许新增原文没有的项目
  • quality_score为69时不发送Gmail,status必须为needs_review且没有sent_at
  • dry_run=true时Sheet有完整邮件草稿字段,但Gmail侧不应出现已发邮件
  • Sheet按email匹配更新同一线索,重复测试提交不应制造重复行

容易卡住的地方

  • JotForm字段名与模板不一致会导致抽取不到面积或邮箱,先做一次手动提交再固定映射
  • Gemini返回多余文字或markdown会使JSON解析失败,需要在解析后校验键与类型
  • Google Sheets列名含空格或缺match_column会追加失败,服务账号还要被共享该表格
  • Gmail OAuth2作用域不足或客户邮箱进垃圾箱会表现为流程成功但未送达
  • 面积单位若混用平方米与平方英尺,报价区间会整体偏移,需在表单端强制单位

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Score and email cleaning quotes from JotForm with Gemini and Google Sheets
原作者
iamvaar
原始发布日期
2026-09-17T19:52:40.208Z
来源
https://n8n.io/workflows/19693