AI Agent 初级 10分钟

智能邮件处理助手

自动分类、摘要、回复邮件,支持自定义规则,与Gmail/Outlook集成。

n8nOpenAIGmail APINode.jsMongoDB

项目概述

企业客服与运营邮箱每天涌入大量邮件:询价、售后、通知、营销、垃圾邮件混杂在一起。人工逐一处理耗时巨大,且分类标准不统一、回复口径因人而异,漏回和误回都直接影响客户体验。

本案例基于 n8n 工作流编排 + OpenAI 大模型 + Gmail API 搭建了一套智能邮件处理助手:自动抓取新邮件 → LLM 分类与摘要 → 命中自定义规则的邮件用模板自动回复 → 其余进入人工审批队列。业务规则存储在 MongoDB 中,非技术人员也能自助维护。

关键指标

95%
自动分类准确率
< 3s
摘要生成时间
60%+
邮件自动处理占比
降低 70%
人工平均处理耗时

系统架构

系统以 n8n 为编排中枢,串联「邮件接入 → 智能理解 → 规则路由 → 人工兜底」四个环节。Gmail API 负责收发,OpenAI 负责分类/摘要/回复生成,MongoDB 存放规则与模板库。

┌──────────────────────────────────────────────────────┐
│                n8n 工作流编排层                     │
│  ┌──────────┐   ┌──────────┐   ┌──────────────┐  │
│  │Gmail API │──▶│ 智能理解   │──▶│  规则路由引擎  │  │
│  │ 轮询/推送 │   │ 分类+摘要  │   │ 模板命中判定   │  │
│  └────┬─────┘   └────┬─────┘   └──────┬───────┘  │
│       │              │                │          │
│       ▼              ▼                ▼          │
│  ┌──────────┐   ┌──────────┐   ┌──────────────┐  │
│  │ 邮件解析   │   │ OpenAI   │   │ MongoDB      │  │
│  │ 去重去广告  │   │ 分类摘要   │   │ 规则+模板库   │  │
│  └──────────┘   └──────────┘   └──────────────┘  │
│                                                    │
│  ┌────────────────────────────────────────────┐   │
│  │ 输出分支: 自动回复(模板) / 人工审批队列(高优)  │   │
│  └────────────────────────────────────────────┘   │
└──────────────────────────────────────────────────────┘

实现细节

1

邮件接入与预处理

邮件抓取

n8n 定时触发(每 5 分钟)调用 Gmail API 拉取未读邮件,或通过 Gmail Push 通知实时触发,支持多账号(客服/售后/业务)分别接入。

去重与过滤

按 Message-ID 去重防止重复处理;用发件域黑名单和邮件头特征过滤订阅广告、系统通知等非目标邮件,减少 LLM 调用成本。

正文清洗

解析 HTML 邮件正文为纯文本,剥离签名、免责声明、转发链,截取前 2000 字符作为 LLM 输入,控制 token 消耗。

2

智能分类与摘要

LLM 分类

通过 n8n HTTP Request 节点调用 OpenAI Chat Completions,输出 JSON:{category, summary, priority}。分类为询价/售后/内部/营销/垃圾五类,优先级分高/中/低。

摘要生成

对长邮件生成 1-2 句摘要(如"客户询问 A 产品批量价格,期望本周内答复"),随邮件一起推送到审批队列,让处理人 3 秒内掌握全文要点。

规则命中

分类结果与 MongoDB 中的业务规则匹配:如"询价 + 含产品型号 → 套用报价模板"。规则支持关键词、分类、发件域多条件组合,运营可在后台自助增删。

3

自动回复与人工兜底

模板回复

命中规则且优先级低的邮件,用模板 + LLM 填充变量(客户名、产品名、联系方式)自动回复,回复后邮件打标归档并记录到处理日志。

人工审批队列

高优先级(投诉、大客户)或未命中模板的邮件进入待办队列,人工一键采纳 LLM 生成的回复草稿或改写后发送,全程不离开收件箱界面。

效果追踪

每次处理记录分类结果、是否自动回复、人工是否修改了草稿。定期分析"人工修改率"反哺优化模板与规则,形成持续改进闭环。

n8n Function 节点:分类 + 规则路由核心逻辑

// n8n Function Node: 邮件智能分类 + 模板路由 + 人工兜底
const { OpenAI } = require('openai');
const openai = new OpenAI({ apiKey: $env.OPENAI_API_KEY });

const mail = $input.first().json;   // { from, subject, body }

// 1. LLM 分类与摘要(结构化输出)
const resp = await openai.chat.completions.create({
  model: 'gpt-4o-mini',
  messages: [
    { role: 'system', content: '你是邮件助理。将邮件分为 询价/售后/内部/营销/垃圾 五类,输出 JSON: {category, summary, priority},priority 为 high/medium/low' },
    { role: 'user', content: '主题: ' + mail.subject + '\n正文: ' + mail.body.slice(0, 2000) }
  ],
  response_format: { type: 'json_object' }
});
const { category, summary, priority } =
  JSON.parse(resp.choices[0].message.content);

// 2. 规则路由:从 MongoDB 规则库中查找匹配模板
const rules = $node['MongoDB 查询规则'].json;
const hit = rules.find(r => r.category === category &&
  r.keywords.some(k => mail.body.includes(k)));

// 3. 输出分支:自动回复 / 人工审批
return [{
  json: {
    category, summary, priority,
    from: mail.from, subject: mail.subject,
    templateId: hit ? hit.templateId : null,
    needsHuman: priority === 'high' || !hit
  }
}];

经验教训

  • 分类边界要持续校准 — 营销邮件与通知邮件经常被混淆,用"人工修改率"回灌训练样本比一次性调 prompt 更有效
  • Gmail API 有配额与延迟 — 高频轮询会触发 429,建议用 Push 通知 + 指数退避重试,批处理时控制并发
  • 自动回复必须留人工后门 — 出现过模板误发事故后,我们规定所有包含价格/承诺的回复一律先进审批队列
  • 多语言邮件是隐藏需求 — 海外客户邮件需要摘要与回复都按原语言生成,模型选型时要注意多语言能力

更多案例

查看其他 AI 工程化落地案例

返回案例库