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

2026-09-02 · 原文发布日

订单邮件自动提取成CSV并登记入表

每分钟监听Gmail订单邮件:带附件的订单先上传到OpenAI Files并建向量库,用GPT-4o-mini结合文件检索提取订单头和明细行为JSON,转CSV传到Google Drive,再向Google Sheets追加订单日志;AI提取失败时走Chat Completions兜底解析。另有第二条管线解析转发的iPaper订单邮件。适合把邮件订单流结构化的贸易或电商团队。

原文要点

原模板流程是:Gmail每分钟触发,按MIME把带附件订单与其他邮件分流;附件先下载、上传OpenAI Files、建向量库并挂文件,轮询处理完成后用GPT-4o-mini做file search抽取订单头与明细JSON;拆行转CSV上传Google Drive,抽取报错时改走Chat Completions兜底,再把CSV链接与客户/订单字段追加到Google Sheets。另有转发iPaper文本订单的第二条解析管线。

这次做成什么

在n8n搭一条“订单邮件→结构化JSON→CSV→Drive→Sheets日志”的可演示流程;本站提供独立练习方案,用合成订单邮件和隔离测试凭据复刻主干,不声称已运行原模板。

准备什么

  • 一个可收发测试邮件的Gmail账号及n8n Gmail OAuth2凭据
  • OpenAI API key,且账号可用Files/vector stores/Chat Completions
  • Google Drive测试文件夹ID与Google Sheets测试表ID
  • n8n可访问Gmail、OpenAI、Drive、Sheets四类凭据权限
  • 仅供练习的合成订单PDF/文本,不含真实客户隐私或密钥

具体怎么做

  1. 建触发与分流

    在n8n新建Workflow,放Gmail Trigger,轮询间隔设1分钟,过滤主题如ORDER/PO;后接Switch按message.mimeType或attachments是否存在分两路:带附件进AI抽取,无附件但主题含iPaper进文本解析。

  2. 处理附件订单

    带附件分支用Gmail Download Attachment取文件,HTTP Request走OpenAI Files上传;再调vector stores创建库并attach file,随后设Wait/Loop轮询file status直到completed,失败超过次数进人工异常表。

  3. AI抽取并兜底

    用OpenAI节点/Responses风格请求GPT-4o-mini,启用file search,输出严格JSON:header与items数组;若返回error字段或JSON校验失败,路由到Chat Completions,用邮件正文+附件文本重抽,仍失败写入Sheets的ERRORS标签。

  4. 生成CSV并登记

    用Code节点把items展开成行,字段映射orderRef,poNumber,orderDate,customerName,email,phone,address,sku,qty,unitPrice;Convert to CSV后上传Google Drive到测试文件夹,取webViewLink;Sheets Append Row写入name,email,phone,address,Order REF,PO Number,Order Date,Google File Link,status。

可直接复制的材料

GPT-4o-mini订单抽取提示词

本站独立编写示例;模型名来自原导读,向量库file search需在n8n/OpenAI侧核对可用参数。

你是订单结构化抽取器。只允许使用已挂载向量库文件和当前邮件内容,禁止推测。输出必须为合法JSON,不要Markdown。结构:{"header":{"orderRef":"","poNumber":"","orderDate":"YYYY-MM-DD","customer":{"name":"","email":"","phone":"","address":"","county":""}},"items":[{"sku":"","description":"","qty":0,"unitPrice":0,"currency":"USD"}],"error":null}。规则:缺字段留空字符串或0;qty与unitPrice必须是数字;若无法可靠抽取,返回{"header":null,"items":[],"error":"无法抽取:原因"}。

测试订单邮件正文

合成练习输入;邮箱、电话、地址均为虚构,勿放入真实客户数据。

Subject: ORDER PO-8842 ACME RETAIL
Hello Sales,
Please process order REF ORD-2026-0917, PO Number PO-8842, order date 2026-09-02.
Customer: Acme Retail LLC, buyer@example.test, +1-555-0100, 12 Harbor Rd, Travis County.
Lines:
SKU IPA-6PK, Hoppy IPA 6 pack, qty 20, unit price 11.50 USD
SKU LAGER-24, Classic Lager case, qty 8, unit price 24.00 USD
Thanks.

n8n字段映射配置

需替换两个REPLACE_ID;为本站独立方案,不是原工作流可导入JSON。

{"driveFolderId":"REPLACE_TEST_DRIVE_FOLDER_ID","sheetId":"REPLACE_TEST_SHEET_ID","sheetTab":"Order Log","appendColumns":["name","email","phone","address","Order REF","PO Number","Order Date","Google File Link","status"],"csvHeader":["orderRef","poNumber","orderDate","customerName","email","phone","address","sku","qty","unitPrice","currency"],"gmailFilter":"subject:(ORDER OR PO OR iPaper) newer_than:1d","errorTab":"ERRORS"}

输入与输出示例

本站虚构演示,未运行原模板;逗号地址在CSV内需按RFC加引号。

输入

用上方测试订单正文作为无附件邮件,主题为ORDER PO-8842 ACME RETAIL,触发后应抽出2条明细并生成CSV。

对应输出

CSV关键行:orderRef,poNumber,orderDate,customerName,email,phone,address,sku,qty,unitPrice,currency\nORD-2026-0917,PO-8842,2026-09-02,Acme Retail LLC,buyer@example.test,+1-555-0100,"12 Harbor Rd, Travis County",IPA-6PK,20,11.50,USD\nORD-2026-0917,PO-8842,2026-09-02,Acme Retail LLC,buyer@example.test,+1-555-0100,"12 Harbor Rd, Travis County",LAGER-24,8,24.00,USD;Sheets追加status=OK且Google File Link指向Drive测试CSV。

做完检查这些

  • Gmail Trigger只捕获测试主题,不误抓取真实收件箱其他邮件
  • AI输出通过JSON.parse且items为数组,qty/unitPrice为数字
  • Drive中出现同名订单CSV且Sheets新增同一orderRef日志
  • error非空时进入兜底,兜底失败写入ERRORS而非静默丢单
  • 测试结束后删除OpenAI Files/向量库与Drive CSV,隔离凭据未用于生产

容易卡住的地方

  • Gmail触发过滤器过宽会抽错发票、营销邮件,应先限定标签和测试时段
  • OpenAI Files与向量库可能产生费用,且处理完成前必须轮询而非立即查询
  • Google Sheets列名不一致会导致Append Row错位或空字段
  • 原模板没有提供下载文件时,本站不伪造可导入n8n JSON,仅给可照做映射
  • CSV含逗号、换行、多币种时要做转义,否则下游表格会串列

原文与作者资料 ↗

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

原文标题
Extract and log email orders with Gmail, GPT-4o-mini, and Google Drive/Sheets
原作者
Rahul Joshi
原始发布日期
2026-09-02T15:31:31.846Z
来源
https://n8n.io/workflows/19084