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

2026-10-12 · 原文发布日

请假申请自动审批流

小公司可以直接套用的请假管理n8n模板:员工在n8n表单里提交请假类型、日期和事由,流程自动查Google Sheets里的员工余额,不够就直接发拒信;够的话让Gemini拟一封审批邮件发给主管,并把申请记入台账。主管只要在邮件里回复APPROVED或REJECTED,流程就会轮询Gmail抓到回复、更新状态,批准时自动从对应假种余额里扣天数。附带的故障排查表列了字段大小写、文本型数字、线程ID未保存等常见坑。模板免费。

原文要点

WeblineIndia发布的免费n8n模板:n8n表单收集请假申请,查Google Sheets员工余额,不足直接经Gmail发拒信;足够则由Gemini起草审批邮件发主管,台账写入Request ID、Pending状态和Gmail线程ID;随后轮询Gmail回复提取APPROVED/REJECTED,按线程ID找回申请并更新状态,批准时按假种扣减余额。原文附故障排查表,点名字段大小写(From/Subject)、文本型数字需Number()、线程ID未保存等坑。

这次做成什么

在自己的n8n实例里跑通『表单提交→余额校验→主管邮件审批→自动扣假』完整闭环。先用下方合成数据在测试表格里演练余额判断和扣减逻辑,再接真实表单。

准备什么

  • 可登录的n8n实例(云端或自托管)并能发布Form
  • 一个Google账号,开通Gmail与Google Sheets的n8n凭据
  • Google AI Studio的Gemini API密钥,并在n8n建好PaLM/Gemini凭据
  • 两张测试用Google Sheets:员工余额表与请假台账表,列结构见下方材料

具体怎么做

  1. 建好两张测试表并填入合成数据

    新建『Employee Data』表,列依次为Employee ID、Employee Name、Employee Email、Manager Name、Manager Email、Casual Leave、Sick Leave、Earned Leave,粘入下方CSV的前三行测试员工。再建『Leave Requests』表,列依次为Request ID、Employee ID、Start Date、End Date、Leave Type、Requested Days、Reason、Status、Gmail Thread ID、Manager Reply、Approval Date,先留空。

  2. 下载模板并替换凭据与表格ID

    在n8n模板库打开该工作流(n8n.io/workflows/20784)导入自己的实例。逐个节点操作:Gmail节点选你的Gmail凭据;两个Google Sheets节点分别指向上面两张表的文档ID和工作表标签;Gemini节点选你的API凭据和模型。注意这是官方免费模板,不需要购买。

  3. 手动演练余额分支与扣减表达式

    先用Execute Workflow手动跑一次:用E001(年假余额5天)提交3天Earned Leave,应走『余额足够』分支,台账新增一行Status为Pending。再用E002(病假余额1天)提交4天Sick Leave,应走拒信分支。在计算天数的表达式里确认用Number()包住余额字段,否则会出现7-2算出5之外的文本拼接错误(原文故障表第2条)。

  4. 跑通邮件审批回环

    发布n8n Form,用E001提交2天Casual Leave,主管邮箱收到Gemini起草的审批邮件后,回复正文第一行只写APPROVED(或REJECTED)。等Gmail Trigger轮询到回复,检查台账:该行Status变为Approved,Employee Data里E001的Casual Leave从8减为6,Approval Date写入当天日期。若台账找不到记录,先查Gmail Thread ID列是否真的写入了值。

可直接复制的材料

员工余额表(合成测试数据)

本站编写的合成数据,邮箱为占位符,演练时换成你自己的测试邮箱;列名需与模板字段映射逐字一致。

Employee ID,Employee Name,Employee Email,Manager Name,Manager Email,Casual Leave,Sick Leave,Earned Leave
E001,测试员工甲,e001.demo@example.com,测试主管,manager.demo@example.com,8,6,5
E002,测试员工乙,e002.demo@example.com,测试主管,manager.demo@example.com,3,1,10
E003,测试员工丙,e003.demo@example.com,测试主管,manager.demo@example.com,0,12,2

请假台账表头(空表结构)

作为Leave Requests表第一行;模板靠Request ID和Gmail Thread ID回查记录,两列缺一不可。

Request ID,Employee ID,Start Date,End Date,Leave Type,Requested Days,Reason,Status,Gmail Thread ID,Manager Reply,Approval Date

Gemini审批邮件起草提示词(本站设计示例)

本站独立编写的示例提示词,用于理解模板中AI步骤的角色;原模板内嵌提示词以模板节点实际内容为准,花括号字段需在n8n表达式里替换为真实变量。

你是公司人事自动化助手。根据以下请假申请信息,起草一封发给主管的审批邮件。要求:
1. 邮件主题格式为:请假审批请求 - {员工姓名} - {请假类型}
2. 正文用中文,先列出员工姓名、工号、请假类型、起止日期、申请天数、请假事由、该假种当前剩余天数;
3. 然后明确指示:请直接回复本邮件,正文第一行只写 APPROVED 表示批准,或 REJECTED 表示拒绝,不要添加其他内容;
4. 语气正式简洁,总长不超过200字,不要编造未提供的公司制度信息。
申请信息:{在此处注入表单字段}

输入与输出示例

本站虚构演示,线程ID与日期为示意值,非实际运行结果。

输入

员工E001通过表单提交:请假类型Earned Leave,起止日期2026-11-03至2026-11-05,事由『家中维修需到场』,其Earned Leave余额为5天。

对应输出

余额判断通过(5≥3),Gemini起草审批邮件发往manager.demo@example.com,主题『请假审批请求 - 测试员工甲 - Earned Leave』;Leave Requests新增一行:Request ID=LR-20261012-001,Status=Pending,Requested Days=3,Gmail Thread ID=18f2ab...。主管回复APPROVED后,该行Status更新为Approved,Employee Data中E001的Earned Leave由5扣减为2,Approval Date=2026-10-12。

做完检查这些

  • E002提交4天Sick Leave(余额1天)时收到拒信,且台账不产生Pending记录
  • E001获批后Employee Data对应假种余额精确减少申请天数,未出现文本拼接或负数
  • 台账每行都保存了Gmail Thread ID,主管回复后能按线程ID找回正确申请并更新Status
  • 主管回复REJECTED时状态变为Rejected且余额不被扣减

容易卡住的地方

  • Sheets里余额若被识别为文本,减法会得到错误结果,表达式必须套Number()
  • Gmail Trigger输出字段大小写敏感:发件人要用email.From、主题用email.Subject,正文取不到时改用snippet字段
  • 主管回复必须以APPROVED或REJECTED开头,多写寒暄词会导致识别不到,需提前在邮件里写清规则
  • 审批放行条件必须是余额大于等于申请天数,否则余额会被扣成负数
  • 两张表的列名与模板映射不一致时,会出现更新了错误的请假记录

原文与作者资料 ↗

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

原文标题
Manage employee leave requests with Google Forms, Sheets, Gmail and Gemini
原作者
WeblineIndia
原始发布日期
2026-10-12T05:12:01.803Z
来源
https://n8n.io/workflows/20784