Mindket

把 Gmail 里的发票和收据记成收支账目

新上架第 1 版 · 更新于

概览

一个 n8n 工作流:盯着 Gmail 里的发票和收据。Mistral AI 读取附件,GPT-4.1 mini 判断这笔钱是收入还是支出,再往 Google Sheets 账目里写一行,附上文件在 Drive 里的链接。

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

速览

用在
  • n8n Cloud:在那里新建一个工作流,把文件导入进去
  • 你自己的 n8n 服务器:同一个文件,同样的步骤
  • Google Sheets:Transactions 标签页就是账目,每笔款项一行,旁边是 Drive 链接
  • Google Drive:它读过的每个附件都在你 Drive 的根目录里

平台

连接 5 个应用

运行方式

触发

新邮件

有新邮件到达你的 Gmail 收件箱时开始运行,每分钟检查一次:

  • 主题、正文和发件人
  • 附件,只读第一个

动作

  1. 第一个附件存到 Google Drive,再取回来
  2. Mistral AI 读出文件里的文字
  3. GPT-4.1 mini 判断这封邮件是不是跟付款有关
  4. 第二次判断把这笔款项分成收入或支出
  5. 一个智能体提取编号、日期、金额、币种和备注
  6. 一行记录追加到 Transactions 标签页,附上文件链接

结果

一份 Google 表格账目,记下收件箱里的每笔款项,标明收入或支出,并链接到 Drive 里的文件

集成

开始之前要准备好这些。

Gmail

收件箱

每分钟检查一次新邮件,把每封邮件连同附件交给下一步。

需要一个用来登录的 Google 账号

Google Drive

文件存储

保存每封邮件的第一个附件,并给出写进表格的链接。

需要一个用来登录的 Google 账号

Mistral AI

文档读取

用它的 OCR 模型读取附件,返回文字。

需要Mistral AI API 密钥

OpenAI

语言模型

用 gpt-4.1-mini 做两次判断,并由智能体提取每笔款项的细节。

需要OpenAI API 密钥

Google Sheets

账目

提供科目表,并为每笔款项写一行。

需要一个用来登录的 Google 账号,以及一个有两个标签页的表格

工作流检查

由 Mindket 于 2026年11月13日检查

步骤
13 个步骤,由 Gmail 事件启动
AI
5 个步骤调用 AI 模型:Extract text、Check for Transaction Email、Check if it’s revenue or expense、Expense AI Agent、Income AI Agent
登录
需要登录:Google Drive、Google Sheets、OpenAI、Gmail
API 密钥
文件里没有留下 API 密钥
步骤类型
Mindket 的检查器能读懂它 8 种步骤类型中的 7 种,读不懂的是:Mistral AI

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

关于

它是什么

这个 n8n 工作流从你的收件箱里整理出一份简单的收支账目。它每分钟检查一次 Gmail。邮件带着附件时,第一个文件存到 Google Drive,由 Mistral AI 读出里面的文字。接着 GPT-4.1 mini 判断这封邮件是不是跟付款有关,如果是,再判断是收入还是支出。一个智能体提取日期、金额、币种和编号。然后 Google Sheets 的 Transactions 标签页里多出一行,附上文件链接。干活的节点一共十九个。它不付款,也不发信。

适合谁

发票和收据以 PDF 形式通过邮件送来的自由职业者和小企业。它给记账员或会计一份随时更新的清单去核对。每一行你仍然要核对。如果你的付款通知都是不带文件的纯文字邮件,就别选它:文件原样导入时,这类运行会报错停下,注意事项里给了修法。

谁在用,怎么用
行业谁在用怎么用例子
自由职业和咨询个体经营者把每笔客户付款和软件账单记在同一张表里一位设计师的 Stripe 收款和 Adobe 收据落在同一个 Transactions 标签页。
代理公司行政经理把供应商发票和客户收据放在一起交给会计代理公司的名字写进第 5 条规则,自己开出的发票就算作收入。
电商店主随到随记供应商账单和平台费用一位店主在付款给供应商之前,先核对本月的支出行。
会计记账员当作初步整理,再手动改正一位记账员录入前,把每一行和 Drive 里的文件对一遍。

你需要会一点 n8n:导入文件、添加五个凭据、建一张有两个标签页的表格,再改提示词里的一行。

用在哪里

任何能访问 Gmail、Google Drive、Google Sheets、OpenAI 和 Mistral AI 的 n8n 都能运行它。

  • n8n Cloud:在那里新建一个工作流,把文件导入进去
  • 你自己的 n8n 服务器:同一个文件,同样的步骤
  • Google Sheets:Transactions 标签页就是账目,每笔款项一行,旁边是 Drive 链接
  • Google Drive:它读过的每个附件都在你 Drive 的根目录里

设置

点“获取”会把一个压缩包存到你的下载文件夹,里面有 workflow.json 和 Mindket 写的设置说明。先建好表格。

先准备好这些
需要说明
n8nn8n Cloud 或你自己的服务器
GoogleGmail、Drive 和 Sheets,同一个账号或几个账号都行
OpenAI一个能用 gpt-4.1-mini 的 API 密钥
Mistral AI一个 API 密钥,用来读取附件
一张表格一个放科目的 Chart of Accounts 标签页,以及一个 Transactions 标签页,表头是 TransactionID、Date、Type、Category、Invoice Link、Amount(后面带一个空格)和 Description
  1. 在 n8n 里新建一个工作流,打开它的菜单,选 Import from File,选中 workflow.json。
  2. 添加 Gmail、Google Drive 和 Google Sheets 凭据,分别在各自的节点里选中。
  3. 把三个表格节点里的 YOUR_SHEET_ID 换成你表格的 ID。
  4. 为四个聊天模型节点添加 OpenAI 凭据,为 Extract text 添加 Mistral Cloud 凭据。
  5. 在 Check if it’s revenue or expense 的第 5 条规则里,把 YOUR_COMPANY_NAME 换成你公司的名字。
  6. 按注意事项里说的,修好没有附件的邮件那条路径。
  7. 给自己发一封带 PDF 的发票,在编辑器里运行一次,然后点 Publish。

如何使用

不需要手动启动。发布之后,每封新邮件一分钟之内就会被检查。时不时打开 Transactions 标签页,读一读新增的行。每一行都链接到它的文件,核对一个数字只要几秒。

想要不同的效果,改这里
要改的在哪里改
什么算付款Check for Transaction Email 里的两个类别
收入还是支出Check if it’s revenue or expense 里的规则和例子
每行记什么每个智能体的字段列表、它的 Structured Output Parser 和它的 Add 节点
多久检查一次Gmail Trigger 里的 Poll Times

示例

一家软件公司给你发来一封带 PDF 的收据。Mistral 读了 PDF,第一次判断认定这是一封交易邮件,第二次判断认定是支出。支出智能体按下面的格式作答,这里省略了具体值:

{ "TransactionID": "…", "Date": "DD/MM/YYYY", "Description": "…", "Amount": "…", "Currency": "…", "Comment": "…" }

随后 Transactions 里多出一行,Type 是 Expense,金额前面带一个负号。描述写进 Category,备注写进 Description,Drive 链接写进 Invoice Link。

新手与专家

新手:n8n 把工作流画成用线连起来的方框,每个方框是一个节点,只做一件事。两个分类节点每种答案各有一条线,没有接线的答案就让运行到此为止。在 Executions 里打开一次已完成的运行,就能看到每封邮件走了哪条路。

专家:两个智能体都用 GPT-4.1 mini,并接了结构化输出解析器,所以回答是固定格式的 JSON。科目表聚合成一个条目,交给两个分类器和两个智能体。文件里的金额表头末尾带一个空格,Amount ,要么照着写,要么改名。

注意事项

它读的每封邮件都可能在两家服务商那里产生费用,文件里还有几处细节需要留意。

  • 没有附件就没有记录:这条路径跳过了 Extract text 和 Upload file,后面的节点却还要读它们,所以 n8n 会停下这次运行。把这些读取包在 isExecuted 里就能修好
  • 类别:科目表交给了模型,但没有任何地方要求它们从中挑选,所以 Category 里是智能体自己起的名字
  • 每个附件都会在检查邮件之前存进 Drive,文件名都是 attachment_0,而且一封邮件只读第一个文件
  • 金额是文本,币种符号在前,支出前面带负号
  • 费用:每封新邮件至少一次 GPT-4.1 mini 调用,Mistral 读的每个附件都要计费
  • GPT-4.1 mini:OpenAI 将在 2027 年 1 月 14 日移除 gpt-4.1-mini 背后的快照,推荐改用 gpt-6-luna
  • 重复:写入前不会先查表格,所以同一封邮件来两次就是两行
  • 你的数据:邮件文字和附件会发给 OpenAI 和 Mistral。账目依赖某一行之前,先把它和文件对一遍
  • 凭据:JSON 里没有任何凭据,也没有作者表格里的东西

README 和文件

README

把 Gmail 里的发票和收据记成收支账目

一个给小企业记账用的 n8n 工作流。它盯着你的 Gmail 收件箱,有带附件的邮件到达时,把第一个附件存到 Google Drive,再让 Mistral AI 读出里面的文字。接着 GPT-4.1 mini 判断这封邮件是不是跟钱有关,如果是,再判断钱是进来还是出去。一个智能体提取日期、金额、币种和编号,工作流往 Google Sheets 的 Transactions 标签页里加一行,附上文件在 Drive 里的链接。

包里有什么

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

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

  • 作者的表格已删掉。Read Chart of Accounts、Add Expense to Transactions Sheet 和 Add Income to Transactions Sheet 改为要 YOUR_SHEET_ID,并按名称找标签页:Chart of Accounts 和 Transactions。
  • Check if it’s revenue or expense 里判断收入或支出的规则把一家公司称作“我的公司”。这个名字现在写的是 YOUR_COMPANY_NAME,好让模型知道哪些发票是你开出的,哪些是你收到的。
  • 其他都没有改。原来的副本不需要修复反斜杠。

开始之前

  • 一个 n8n 实例,n8n Cloud 或自己的服务器都行。
  • 一个接收发票和收据的 Gmail 账号。
  • 一个能用 Google Drive 和 Google Sheets 的 Google 账号(同一个账号就行)。
  • 一个能用 gpt-4.1-mini 的 OpenAI API 密钥。
  • 一个 Mistral AI API 密钥,用来读取附件。

设置

  1. 在 n8n 里新建一个工作流,打开它的菜单,选 Import from File,选中 workflow.json。
  2. 添加 Gmail OAuth2 凭据,在 Gmail Trigger 里选中它。
  3. 添加 Google Drive OAuth2 凭据,在 Upload file 和 Download file 里选中它。
  4. 建好表格(见下文),复制它的 ID,也就是地址里 /d/ 和 /edit 之间那一长串。添加 Google Sheets OAuth2 凭据,在三个表格节点里选中它,再把每个节点里的 YOUR_SHEET_ID 换成这个 ID。
  5. 添加 OpenAI 凭据,在 OpenAI Chat Model、OpenAI Chat Model1、OpenAI Chat Model2 和 OpenAI Chat Model3 里选中它。
  6. 用你的 Mistral AI 密钥添加 Mistral Cloud 凭据,在 Extract text 里选中它。
  7. 打开 Check if it’s revenue or expense,找到系统提示词里的第 5 条规则,把 YOUR_COMPANY_NAME 换成你公司的名字。
  8. 发布之前先读注意事项。文件原样导入时,没有附件的邮件会报错停下,修法写在那里。
  9. 保存,给自己发一封带 PDF 的发票,在编辑器里运行一次,然后点 Publish。

表格

一张 Google 表格,两个标签页:

  • Chart of Accounts:你的科目,每行一个,列随你定(比如名称,以及属于收入还是支出)。每一行都会作为背景交给模型。
  • Transactions:表头是 TransactionID、Date、Type、Category、Invoice Link、Amount 和 Description。文件里的金额表头末尾带一个空格。照样写,或者在两个 Add 节点里把这一列改名。

一次运行的过程

  1. Gmail Trigger 每分钟检查一次收件箱,完整取回每封新邮件和它的附件。
  2. If Email Contains Document 把带附件的邮件和其他邮件分到两条路上。
  3. 带附件时:Upload file 把第一个附件存到 Drive 根目录,Download file 再把它取回来,Extract text 把它交给 Mistral 的 OCR 模型,返回里面的文字。
  4. Check for Transaction Email 读取提取出的文字、主题、正文和发件人。GPT-4.1 mini 判断这封邮件算不算交易。不算的到此为止。
  5. Read Chart of Accounts 和 Aggregate Categories 把科目标签页合成一份清单。
  6. Check if it’s revenue or expense 按提示词里的规则和例子,把这笔交易分成 Expense 或 Income。
  7. Expense AI Agent 或 Income AI Agent 以 JSON 提取交易编号、DD/MM/YYYY 格式的日期、类型、金额、币种符号和一段备注。
  8. Add Expense to Transactions Sheet 或 Add Income to Transactions Sheet 追加一行:类型写进 Category,备注写进 Description,币种和金额合在一起写进 Amount ,Drive 链接写进 Invoice Link。

改变风格

  • 什么算交易:Check for Transaction Email 里的两个类别和它们的说明。
  • 收入还是支出:Check if it’s revenue or expense 系统提示词里的规则和例子。
  • 记录什么:每个智能体系统消息里的字段列表,以及每个 Structured Output Parser 里的示例。两处都加上一个字段,再在对应的 Add 节点里映射它。
  • 多久检查一次:Gmail Trigger 里的 Poll Times。

注意事项

  • 没有附件的邮件会失败:这条路径跳过了 Extract text 和 Upload file,但后面的节点还在读 $('Extract text').item 和 $('Upload file').item。n8n 会以 "Node 'Extract text' hasn't been executed" 停下这样的运行。修法是把每处读取包在 isExecuted 里,例如 {{ $('Extract text').isExecuted ? $('Extract text').item.json.extractedText : '' }}。它们在 Check if it’s revenue or expense、两个智能体的提示词,以及两个 Add 节点的 Invoice Link 里。
  • 类别:科目表交给了模型,但没有任何地方要求它们从中挑选。Category 里是智能体描述的类型,比如 "Subscription Renewal"。想用你自己的名称,就让两个智能体从科目表里挑。
  • 每个附件都会存下来:上传发生在检查邮件之前,所以新闻简报和票据也会进你的 Drive。每个文件都叫 attachment_0,因为这是 Upload file 里写死的名字。一封邮件只读第一个附件。
  • 金额是文本:支出写成负号、币种符号加数字(-₹140.00),收入写成币种符号加数字。表格可能把它们当文本,求和需要一个辅助列。
  • 费用:每封新邮件至少一次 GPT-4.1 mini 调用,一笔交易最多三次。Mistral 读的每个附件都要计费,不管最后算不算交易。
  • GPT-4.1 mini:OpenAI 的弃用页面(2026 年 11 月 2 日查阅)写明,gpt-4.1-mini 背后的 gpt-4.1-mini-2025-04-14 将在 2027 年 1 月 14 日移除,推荐改用 gpt-6-luna。在那之前把四个聊天模型节点都换掉。
  • 两个智能体的系统消息开头都多了一个 =。模型不会理会它。
  • 重复:写入前不会先查表格,所以同一封邮件到达两次就会记两次。
  • 你的数据:邮件文字和附件会发给 OpenAI 和 Mistral,附件留在你的 Drive 里。账目依赖某一行之前,先把它和对应的文件对一遍,因为模型可能读错数字或日期。
文件
README.md  7 KB
workflow.json  22 KB

2 个文件,共 29 KB,以 zip 压缩包下载。

更新内容

  • 第 1 版 · 2026-11-03

评价

还没有评分

写评价

还没有评价。

Mindket 的更多商品

查看 Mindket 的全部商品

Bonsai-27B-GGUF

lmstudio-community · 工具包

面向 LM Studio 的 27B Bonsai 模型 GGUF 转换版,含 3.80 GB 的 Q1_0 语言文件和 0.93 GB 的 BF16 视觉投影器。已测试文本、视觉和并行工具调用。

新上架

以每权重 2.9 位的 EXL3 量化运行 DeepSeek-V4.1-Flash-1017,这是一份 196 GiB 的副本,适合在自己硬件上部署大模型的人。困惑度与原模型相差不大。

新上架

MusicGen Small

facebook · 工具包

根据文字描述或音频提示生成短音乐片段,是 facebook MusicGen 的 small 检查点。适合想在自己电脑上试用文字生成音乐的开发者和音乐爱好者。

新上架

商务类的相似商品

查看商务类的全部商品

pplx-decider-v1.1-27b

perplexity-ai · 工具包

根据文字和图片为一个决策挑出最合适的选项,比如哪个团队应该处理一条请求,并给出每个选项的概率,适合构建分流和审核工作流的开发者。

新上架

NuExtract3

numind · 工具包

以文本或图像读取文档,按你要的字段填写 JSON 模板,或把页面转成 Markdown。这是一个 4B 模型,适合处理扫描件、表单和发票的团队。

新上架

Drex DLM

nace-ai · 工具包

一次推理就对一份文档的是非题、选择题和打分题给出每个选项的概率。这是 Nace.AI 的 8B 决策模型,你可以自己运行,许可证为非商业。

新上架