Mindket

用 LlamaParse 和 OpenAI 读取 Gmail 里的发票 PDF

新上架第 1 版 · 更新于

概览

一个 n8n 工作流,用 LlamaParse 读取 Gmail 里的发票 PDF,让 OpenAI 模型提取字段,并在 Google Sheets 里加一行数据。然后把邮件标为已处理。

用 LlamaParse 和 OpenAI 读取 Gmail 里的发票 PDF 是一款 n8n 工作流,属于财务类,由 Mindket 上架。可免费获取。当前为第 1 版,最近更新于 。在本页下载,或复制它的 JSON,再导入 n8n 画布。在 n8n 里启用之前,它不会运行。

速览

用在
  • Gmail 收件箱:共用的发票邮箱最合适,并收窄到一个发件人
  • LlamaParse:它读取 PDF,每页都会花积分
  • OpenAI 模型:它读取 markdown 并返回字段
  • Google Sheets:每张发票一行数据,明细行放在一个单元格里

平台

连接 4 个应用

运行方式

触发

一封新的发票邮件

它每分钟查看一次 Gmail,对每封来自所选发件人且带附件的新邮件开始运行,读取:

  • 这封邮件和它的标签名称
  • 它的第一个附件,必须是 PDF

动作

  1. 除非第一个附件是 PDF 且邮件没有 “invoice synced” 标签,否则跳过这封邮件
  2. 把 PDF 上传到 LlamaParse,由它转成 markdown
  3. 每秒检查一次任务,直到结束,任务失败或被取消就以错误停止运行
  4. 把 markdown 作为一整段文字取回
  5. 一个 OpenAI 模型提取发票字段,由结构化输出解析器规整格式
  6. 把这些字段作为一行加到 Google Sheets
  7. 给这封邮件加上 “invoice synced” 标签

结果

Google Sheets 里每张发票一行数据,邮件被标为已处理

集成

开始之前要准备好这些。

Gmail

发票来源

送来带 PDF 的发票邮件,然后接收标记它们已处理的标签。

需要一个连到 n8n 的 Gmail 账户和一个叫 “invoice synced” 的标签

LlamaParse

读取 PDF

把 PDF 转成 markdown,包括表格。

需要LlamaCloud 账户和 API 密钥,每页都要花积分

OpenAI

提取字段

读取 markdown,并以固定格式返回发票字段。

需要OpenAI 账户和 API 密钥

Google Sheets

保存行数据

为每张发票加一行数据。

需要一个 Google 账户和一个列标题匹配的电子表格

工作流检查

由 Mindket 于 2026年11月13日检查

步骤
16 个步骤,由 Gmail 事件启动
AI
1 个步骤调用 AI 模型:Apply Data Extraction Rules
登录
需要登录:Gmail、api.cloud.llamaindex.ai、Google Sheets、OpenAI
API 密钥
文件里没有留下 API 密钥
步骤类型
Mindket 的检查器能读懂它 13 种步骤类型中的 12 种,读不懂的是:Gmail

以上内容读自工作流文件,并非实际运行的结果。

关于

它是什么

这个 n8n 工作流把 Gmail 里的发票 PDF 变成电子表格里的行。它盯着你选定发件人发来的带附件的邮件,把 PDF 发给 LlamaParse 转成 markdown。然后一个 OpenAI 模型提取发票字段,比如供应商、日期、明细行和合计。工作流把它们加到 Google Sheets,并给邮件打上标签,这样同一封邮件不会被处理两次。十八个节点完成整个流程。

适合谁

从几个固定供应商那里收到 PDF 附件发票、想把明细放进表格的财务和应付账款团队。它适合带明细行表格的发票,因为简单的文字提取常常会把表格压扁。如果发票是以图片形式放在邮件正文里,就别选它,因为只会读第一个附件。

谁在用,怎么用
行业谁在用怎么用例子
会计记账人员把供应商发票连同明细行记下来,用于过账记账人员在过账前把每一新行和发票核对一遍。
运营后台团队保留一份每个供应商开了什么账的清单组长按供应商筛选表格,查看这个月的费用。
采购采购人员把发票和采购订单号对上采购员在表格里找到每个采购订单号。
软件自动化搭建者把它当作文档提取的起点搭建者把表格换成一个会计工具。

You need solid n8n for this one: 四个凭据、一个 Gmail 标签、一个列标题能对上的表格,以及一个会循环到任务结束的任务检查。文件没有给出设置时长。

用在哪里

n8n Cloud 或自托管的 n8n 都能运行它,需要有 LlamaParse、OpenAI、Gmail 和 Google 的账户。

  • Gmail 收件箱:共用的发票邮箱最合适,并收窄到一个发件人
  • LlamaParse:它读取 PDF,每页都会花积分
  • OpenAI 模型:它读取 markdown 并返回字段
  • Google Sheets:每张发票一行数据,明细行放在一个单元格里
  • 别的去处:把 Sheets 节点换成会计工具或数据库的节点

设置

点“下载”会把一个压缩包存到你的下载文件夹,里面有 workflow.json 和 Mindket 的设置说明。四个凭据和一个准备好的表格就能让它跑起来。

先准备好这些
需要说明
n8n一台服务器或一个 n8n Cloud 账户
LlamaParse一个 LlamaCloud 账户和 API 密钥
OpenAI一个账户和 API 密钥
Gmail一个有 invoice synced 标签的 Gmail 账户
Google一个第一行是 14 个字段名的电子表格
  1. 在 Gmail 里新建标签 invoice synced。
  2. 在 n8n 里新建一个工作流,打开它的菜单,选 Import from File,选中 workflow.json。
  3. 为 LlamaParse 创建一个 Header Auth 凭据,名称填 Authorization,值填 Bearer 加上你的密钥。在三个 LlamaParse 节点里选中它。
  4. 打开 OpenAI Model,连上你的 OpenAI 账户。
  5. 打开 Receiving Invoices,连上 Gmail,把 <SUPPLIER_EMAIL_ADDRESS> 换成发件人的地址。
  6. 在 Add "invoice synced" Label 里选你的标签。
  7. 在 Append to Reconciliation Sheet 里连上你的 Google 账户,选好电子表格和工作表。
  8. 拿一张真实的发票跑一遍,检查每个节点的输出。然后保存,点画布顶部的 Publish(或按 Shift+P)。

如何使用

等这个发件人的下一封发票邮件,或者拿一封最近的邮件来运行工作流。一分钟内 n8n 会取到它,把 PDF 发给 LlamaParse 并等待任务。随后模型读取 markdown,表格里出现一行数据,邮件被打上标签。在信任这个流程之前,先把最初的几行和发票对一下。

想要不同的效果,改这里
要改的在哪里改
读取哪些邮件Receiving Invoices 里的筛选条件
提取哪些字段Apply Data Extraction Rules 里的提示词、Structured Output Parser 里的结构,以及表格的列标题
哪个模型读发票OpenAI Model
怎么解析 PDFUpload to LlamaParse 里的 configuration 字段
行数据去哪里Append to Reconciliation Sheet

示例

一家供应商把发票 4471 作为 PDF 邮件发来,里面有五个明细行和一个采购订单号。

一分钟内,工作流把 PDF 发给 LlamaParse,等到任务完成。模型读取 markdown,返回供应商、日期、采购订单号和合计。表格里加了一行数据,五个明细行放在一个单元格里,邮件也被打上标签 invoice synced。

新手与专家

新手:n8n 把工作流画成用线连起来的方框,每个方框是一个节点,只做一件事。这个工作流先读 Gmail,把 PDF 发给一个读取服务,并不断检查,直到任务完成。然后它向 AI 模型要字段,再写进表格。用一封邮件运行一次,再打开每个方框的输出,看数据是怎么走的。

专家:它用普通的 HTTP Request 节点调用 LlamaParse 的 v2 API,AI 这一步是带结构化输出解析器的基础链,而不是智能体。

值得细看的地方
节点做什么要知道的
Receiving Invoices每分钟轮询一次,找来自一个发件人的带附件的新邮件它把附件下载为 attachment_0、attachment_1 等
Email with Label Names把每封邮件和它的标签名称连起来Combine Label Names 会把这次轮询里所有邮件的名称汇成一个列表
Upload to LlamaParse把第一个附件发到 /api/v2/parse/uploadconfiguration 字段是一个带 tier 和 version 的 JSON 字符串
Is Job Ready?根据 job.status 分流COMPLETED 继续往下走,FAILED 和 CANCELLED 以错误停止,PENDING 和 RUNNING 等一秒再问
Get Parsed Invoice Data用 expand=markdown_full 取回任务回答里是一整段的完整文档
Apply Data Extraction Rules带结构化输出解析器的基础 LLM 链提示词里有字段清单,模型是 gpt-6-luna
Append to Reconciliation Sheet按字段名对应列标题追加一行像明细行这样的对象会以 JSON 文字写进它的单元格

注意事项

这个工作流会为每个 PDF 花 LlamaParse 的积分,并把发票发到两个外部服务。

  • 未运行:Mindket 没有调用过 LlamaParse、OpenAI、Gmail 或 Google。它读了 LlamaParse 的文档、OpenAI 的页面和 n8n 的节点代码
  • 只读第一个附件:如果邮件里 PDF 之前有一张 logo 图片,Should Process Email? 就会跳过它
  • 失败的任务:LlamaParse 任务失败或被取消,运行会以错误停止,邮件也不会得到标签
  • 无限循环:状态检查每秒重复一次,直到任务结束,没有次数上限
  • 积分:LlamaParse 的价格页把这里用的档位列为每页 3 积分,它的档位页说 48 小时内再次解析同一个文件不花积分
  • 共用列表:一次轮询里的两封或更多邮件共用一个标签名称列表,所以一封带标签的邮件可能让其他邮件被跳过
  • 你的数据:每个 PDF 发到 LlamaParse,提取出的文字发到 OpenAI,行数据发到 Google,发票里可能有姓名、地址和银行信息
  • 凭据:JSON 里没有任何凭据

README 和文件

README

用 LlamaParse 和 OpenAI 读取 Gmail 里的发票 PDF

一个 n8n 工作流,它在 Gmail 里盯着带 PDF 的发票邮件,用 LlamaParse 把 PDF 转成 markdown,让一个 OpenAI 模型提取发票字段,并把它们作为一行加到 Google Sheets。然后给邮件打上标签,这样同一封邮件不会被处理两次。

包里有什么

  • workflow.json:n8n 导出的工作流,27 个节点,其中 18 个会运行,九个是便签。里面没有任何凭据。
  • README.md:这份设置说明,压缩包里的是英文版。

我们相对原来的副本改了什么

  • 原来调用的是 LlamaParse 的 v1 API。现在上传、任务检查和取结果都用 v2 API,档位是 cost_effective。LlamaParse 的迁移页说 v1 在可预见的将来仍然可用,而新功能只在 v2 里。
  • 任务检查读取 job.status,并认识 v2 的状态。RUNNING 和 PENDING 一起走等待分支。FAILED 和 CANCELLED 现在进入一个新节点 Stop on parse failure,这样失败的任务会显示为错误。以前它们哪儿也不去。
  • 取结果时用 expand=markdown_full,提示词读的就是这个字段。
  • 原来用的是 OpenAI 的文本补全节点和 gpt-3.5-turbo-1106。OpenAI 的弃用页(2026 年 11 月 12 日查阅)列出这个模型已在 2026 年 9 月 28 日停用。现在这个节点是 OpenAI Chat Model,模型是 gpt-6-luna。
  • 固定的温度 0 去掉了,因为 OpenAI 关于 gpt-6-luna 的页面没有提到温度设置。
  • 发件人筛选条件、标签 ID 和电子表格原来属于原作者,现在是 <SUPPLIER_EMAIL_ADDRESS>、<YOUR_INVOICE_SYNCED_LABEL_ID> 和 <YOUR_SPREADSHEET_ID>。
  • 提示词里的一处笔误改正了,便签不再带外部链接,关于每天 1,000 个免费 PDF 的旧说明换成了 LlamaParse 现在的价格。
  • 别的都没改。标签检查、结构化输出解析器和表格映射都和原来一样。

开始之前

  • 一个 n8n,n8n Cloud 或你自己的服务器都行。
  • 一个 LlamaCloud 账户和 API 密钥。LlamaParse 的计费页列出一个每月 0 美元、每月含 10,000 免费积分的 Pay as you go 方案。它的价格页把 cost_effective 档位列为每页 3 积分,所以大约是 3,300 页。
  • 一个带 API 密钥的 OpenAI 账户。
  • 一个有 invoice synced 标签的 Gmail 账户,和一个 Google 电子表格。
  • 表格的第一行有 14 个列标题。它们必须和 Structured Output Parser 里的 14 个字段名完全一致,所以请打开那个节点,从它的结构里复制过来。

设置

  1. 在 Gmail 里新建标签 invoice synced。
  2. 在 n8n 里新建一个工作流,打开它的菜单,选 Import from File,选中 workflow.json。
  3. 为 LlamaParse 创建一个 Header Auth 凭据。名称填 Authorization,值填 Bearer 加上你的密钥。在 Upload to LlamaParse、Get Processing Status 和 Get Parsed Invoice Data 里选中它。
  4. 打开 OpenAI Model,连上你的 OpenAI 账户。保留 gpt-6-luna,或者选别的聊天模型。
  5. 打开 Receiving Invoices,连上你的 Gmail 账户,把 <SUPPLIER_EMAIL_ADDRESS> 换成发件人的地址。在 Get Labels Names 和 Add "invoice synced" Label 里用同一个账户。
  6. 在 Add "invoice synced" Label 里选你的 invoice synced 标签。
  7. 在 Append to Reconciliation Sheet 里连上你的 Google 账户,选好电子表格和工作表。
  8. 拿一张真实的发票跑一遍,检查每个节点的输出。然后保存,点画布顶部的 Publish(或按 Shift+P)。

一次运行的过程

  1. Receiving Invoices 每分钟检查一次那个发件人发来的、带附件的新邮件,并下载附件。
  2. Split Out Labels、Get Labels Names、Combine Label Names 和 Email with Label Names 查出邮件的标签名称,并附到邮件上。
  3. 当邮件的第一个附件是 PDF,且它的标签里没有 invoice synced 时,Should Process Email? 才放行。
  4. Upload to LlamaParse 带着档位 cost_effective 发送那个附件,并拿到一个任务 ID。
  5. Get Processing Status 查询任务,Is Job Ready? 来分流。完成的往下走,失败或被取消的停下,等待中或运行中的去 Wait to stay within service limits,等一秒再问。
  6. Get Parsed Invoice Data 把整份文档作为一整段 markdown 取回。
  7. Apply Data Extraction Rules 把 markdown 和字段清单交给模型,Structured Output Parser 规整回答的格式。
  8. Map Output 留下解析出的对象。Append to Reconciliation Sheet 加一行数据,Add "invoice synced" Label 给邮件打上标签。

改变样子

  • 读取哪些邮件:Receiving Invoices 里的筛选条件。
  • 提取哪些字段:Apply Data Extraction Rules 里的提示词、Structured Output Parser 里的结构,以及你表格里的列标题。
  • 哪个模型读发票:OpenAI Model。
  • 怎么解析 PDF:Upload to LlamaParse 里的 configuration 字段。LlamaParse 的档位页列出 fast、cost_effective、agentic 和 agentic_plus,并建议在生产环境里固定一个带日期的版本。
  • 行数据去哪里:Append to Reconciliation Sheet。你可以把它换成会计工具或数据库。

值得知道的

  • 未运行:Mindket 没有调用过 LlamaParse、OpenAI、Gmail 或 Google。它在 2026 年 11 月 12 日读了 LlamaParse 的文档、OpenAI 的页面和 n8n 的节点代码。
  • 只读第一个附件。如果邮件里 PDF 之前有一张 logo 图片,Should Process Email? 就会跳过它。
  • LlamaParse 任务失败或被取消,运行会以错误停止,邮件也不会得到标签。请在 Executions 里检查这些。
  • 状态检查每秒重复一次,直到任务结束,没有任何东西限制重复的次数。
  • 每页都会花积分。LlamaParse 的档位页说,48 小时内再次解析同一个文件不花积分。
  • 一次轮询里的两封或更多邮件共用一个标签名称列表,所以一封已经有标签的邮件可能让其他邮件被跳过。这是从接线上读出来的,不是跑出来的。
  • 你的数据:每个 PDF 发到 LlamaParse,提取出的文字发到 OpenAI,行数据发到 Google。发票里可能有姓名、地址和银行信息。
  • 凭据:JSON 里没有任何凭据。LlamaParse、OpenAI、Gmail 和 Google Sheets 各自需要一个 n8n 凭据。
文件
NOTICE.md  642 B
README.md  6 KB
workflow.json  29 KB

3 个文件,共 36 KB,以 zip 压缩包下载。

更新内容

  • 第 1 版 · 2026-11-12

评价

还没有评分

写评价

还没有评价。

Mindket 的更多商品

查看 Mindket 的全部商品

Huashu Design

alchaincyf · 技能

把你在 AI 智能体里写的一句话需求,变成一份完成的设计:发布动画、可点击的应用原型、可编辑的幻灯片、信息图,或一组小红书图片。可在多种智能体中使用。

新上架29.4k

Guizang PPT Skill

op7418 · 技能

能生成单文件 HTML 幻灯片、幻灯片配图和多平台封面的技能,有两套视觉风格,还带演讲者模式用于排练。适合使用 Claude Code 或 Codex 的演讲者。

新上架29.8k

Claude Code Skills & Plugins

alirezarezvani · 技能

为 Claude Code 和其他编程智能体提供 411 个现成技能,按角色分组,从工程、产品到营销、财务和合规。以插件方式安装。适合开发者和业务团队。

新上架29.8k

财务类的相似商品

查看财务类的全部商品

Kronos-mini

NeoQuasar · 工具包

用一个 4.1M 参数、基于 45 多家交易所数据训练的基础模型来预测金融 K 线序列。适合想用小模型做价格预测实验的量化研究人员和开发者。

新上架

一个归档发票的 n8n 工作流。它盯着一个 Google Drive 文件夹,把每个新文件交给 LlamaParse 读取,再由 OpenAI 模型取出明细行,Airtable 里得到一条发票记录和每个明细行各一条记录。

新上架免费