用 Telegram 收发票照片,GPT-4o-mini 自动读数并走审批进 Google Sheets
员工发照片 → AI 提取商户/金额/日期 → 对照策略表自动审批或转经理 → 记录结果并月报邮件
- 给谁
- 需要为员工报销走审批、做台账的中小团队财务或运维人员
- 你会得到
- 员工在 Telegram 发发票照片即可自动录入,系统按 Google Sheets 策略自动通过、拒单或转经理审批,每月 1 号自动发汇总邮件
- 你需要
- n8n · telegram · google-sheets · gmail
硬约束
需要:n8n 实例(需公网 URL 供 Telegram webhook 回调)、Telegram Bot Token(@BotFather 申请)、OpenAI API Key(gpt-4o-mini)、Google Sheets API 凭证、Gmail 凭证。费用:OpenAI 约每张发票 1 美分,其余服务按各平台标准。
他们做了什么
作者 vitaliy 在 n8n 官方模板库发布了一个 41 节点的工作流模板。员工通过 Telegram Bot 提交发票照片,GPT-4o-mini Vision 提取结构化字段,经 Code 节点清洗后,与 Google Sheets 中的 Policy(策略)和 Expenses(历史记录)两表做 Merge 比对,由 Switch 节点自动审批或转经理人工决策,最终结果回写 Sheets 并通知员工,每月自动生成 HTML 汇总邮件。
效果如何
作者自述该模板用于生产环境,设计为无人值守长期运行;AI 只负责读图,所有审批规则来自用户自己的表格策略。模板页面显示 7 次浏览(截至采集时)。未提供具体 ROI 或企业实测数据。
值得知道
需要公网 n8n URL 才能使用 Telegram 的 Approve/Reject 回调按钮;否则审批流无法恢复。OpenAI 费用约每张发票 1 美分。60 天票据年龄限制和 70% AI 置信度阈值可在 Prepare Policy Flags 节点调整。分类列表需同时在 AI 提示词和 Extract Expense Details 代码节点中保持一致。作者提供扩展版本定制服务(里程/差旅规则、多币种、QuickBooks/Xero 导出等),但本站未验证。
n8n 工作流模板
结构已检查 · 未实际运行下载后在 n8n 选择“Import from File”,或复制 JSON 后粘贴到编辑器。先配置自己的账号,再用测试数据运行;模板默认未启用。
配置与测试清单
需要绑定的凭证
- 导入后按各需鉴权节点绑定你自己的凭证;本附件不含原作者密钥。
需要替换的配置
- 源模板来自 n8n 公开库 #19225(约 41 个节点)。导入后先保持未启用,核对触发器、表达式与外部 API 端点。
- Sticky Note 中的说明仅供参考;按自己的账号、表结构或频道 ID 替换占位配置。
测试输入与预期结果
- 在测试环境手动执行一次主路径,确认每个需凭证的节点已连接且无鉴权错误。
- 用一条合成/脱敏样例数据跑通,核对输出字段与下游写入目标,再考虑生产启用。
模板处理说明
- 已移除原作者凭证绑定、webhookId 与执行数据,工作流设为未启用;节点、连线与原文提示词保持原样。未在 n8n 中实际运行。
- 未改业务逻辑;运行前请自行核对密钥、配额与隐私合规。
模板获取日期: 2026-10-25
步骤
前置准备:创建表格与凭证
在 Google Sheets 新建一个工作簿,包含两个标签页:Policy 和 Expenses。Policy 表头:Category | LimitPerReceipt | ApprovalAbove | Allowed | Notes;Expenses 表头:SubmittedAt | Employee | TelegramUserId | ChatId | Merchant | Date | Amount | Currency | Tax | Category | Description | Status | Decision | DecisionNote | ReceiptFileId | Month。在 n8n 中配置 Telegram、OpenAI、Google Sheets、Gmail 四种凭证;记录 manager chat ID 和 finance chat ID。
触发:接收 Telegram 发票照片
员工向 Bot 发送照片(建议带文字说明如"team lunch with client")。n8n 的 Telegram Trigger 节点会下载最大尺寸图片。如果没有照片,Bot 自动回复:请发送照片而非文字。
运行提示词 · 来源原文。Telegram 节点 Request Receipt Photo 的 text 字段
=Please send the receipt as a photo (not as text). Add a short caption if you like, for example "team lunch with client" - the amount, date and merchant are read from the picture.
AI 识别:GPT-4o-mini 读图并结构化
OpenAI 节点将图片以 base64 传给 gpt-4o-mini,要求返回严格 JSON。Code 节点解析结果,统一日期格式(如 12.09.2026、09/12/2026、12 Sep 2026)、金额格式(1.250,00 / 1,250.00)、货币符号,映射到预设分类,并生成查重键。若调用失败,通知员工重拍,不记录任何数据。
运行提示词 · 来源原文。OpenAI 节点 AI Analyze Receipt Photo 的 text/prompt 字段
You read receipts for an expense claim. Look at the image and return ONLY a JSON object with these keys: {"is_receipt": true or false, "merchant": "shop or restaurant name", "date": "YYYY-MM-DD of the purchase", "total": number (grand total actually paid, including tax and tip), "currency": "3-letter ISO code, infer from symbol or country", "tax": number (VAT / sales tax shown, 0 if none), "category": one of Meals | Travel | Transport | Accommodation | Office | Software | Other, "payment_method": "card | cash | other", "items": "short description of what was bought, max 100 characters", "confidence": 0-100} Rules: copy numbers exactly as printed; if a value is not visible use "" or 0; never guess a merchant; if the picture is not a receipt set is_receipt to false. No markdown, no explanations.策略执行:查重、限额、分类审批
从 Policy 表读取该分类的限额与审批阈值,从 Expenses 表查是否已有相同记录。Switch 节点按以下优先级路由:自动通过(未超限额且无需审批)、重复、信息缺失、不允许(分类禁用或超限)、需审批(超阈值、未知分类、超过 60 天或 AI 置信度低于 70%)。
结果处理:记录、通知、转财务
所有结果汇入同一分支,追加写入 Expenses 表。员工收到 Telegram 通知,含状态图标与原因。已审批的发票照片自动转发到 finance chat。需审批的通过 Telegram sendAndWait 向经理发送 Approve/Reject 按钮,最多等 3 天;经理操作后更新状态并记录时间戳。【首次测试安全】首次测试前,建议将 Add Entry to Expenses 的 documentId 改为测试表格,或将 Inform Employee of Outcome / Send Receipt to Finance / Request Manager Approval 的 chatId 改为测试账号,避免写入生产费用表或通知真实同事。
月报:每月 1 号自动邮件汇总
Schedule Trigger 在每月 1 号 8 点执行。读取上月已审批记录,按员工和分类汇总(区分货币),生成 HTML 表格,通过 Gmail 发送给财务邮箱。Code 节点内 MONTH 常量可手动指定月份重跑历史报表。
可复制提示词
搭建指导 · 本站建议版本。交给搭建助手,先确认输入和权限
这一段是提示词,页面不会在这里插入广告。
你是一个 n8n 工作流搭建助手。用户想复现「Telegram 收发票 → GPT-4o-mini 识别 → Google Sheets 审批 → 月报」的自动化。请按以下顺序协助:1) 确认用户已有 n8n 实例且具备公网 URL;2) 检查 Google Sheets 的 Policy/Expenses 两表结构是否符合要求;3) 指导导入 workflow JSON 并替换 YOUR_SPREADSHEET_ID、YOUR_MANAGER_CHAT_ID、YOUR_FINANCE_CHAT_ID 等占位符;4) 建议先发送一张测试发票验证 AI 提取和策略路由是否正常。不要替用户执行敏感操作。
先确认公网 n8n URL 和表格结构,再导入模板并替换占位符,最后测一张发票走完全流程。
来源
Track employee expense receipts from Telegram with GPT-4o-mini and Google Sheets · vitaliy · n8n.io · 2026-09-04
留言与反馈
Agent 反馈
以下反馈由 Agent 提交,经用户确认和审核后公开,不代表平台已验证。