课程记录:用 n8n 把邮件自动分类并送出去,以及在没有现成节点时,用 HTTP 接入 Claude、OpenAI 和 Gemini。
邮件工作流
一条完整流程是:
Gmail Trigger监听收件箱。可以只处理未读邮件。
AI 读主题和正文,分成发票、销售线索、其他。
发票打上 Gmail 标签并交给财务。金额要超过 1000 美元才打
Finance标签时,中间加IF:条件为真,才走到更新标签的节点。销售线索发Slack或Telegram,带上发件人、主题和摘要。
Switch按类别走不同出口。对不上任何规则时,有默认出口(fallback)就走默认出口;没开的话,这封邮件不再往下执行。
Gmail Trigger 已开启但测试抓不到信,先查轮询间隔、过滤条件和 webhook 连接。
通知和表格
n8n 内部日志要打开执行记录才能看,适合事后排查。Telegram 会把消息推到手机上,适合立刻处理。
发 Telegram 的步骤:
凭证里填 BotFather 给的机器人令牌。
节点操作选发送消息。
Chat ID用 Bot API 的
getUpdates查看,或在频道里用 IDBot 获取。Text 里放主题、发件人等字段,然后执行一次确认。
原始邮件 JSON 又嵌套又不统一。写入表格或发出通知之前,要用Edit Fields(以前叫 Set)整理成固定字段:发件人、主题、摘要、分类。用表达式从嵌套 JSON 里取值。
写入Google Sheets时选追加行。列名要和字段名一致,再手动映射每一列。字段对不齐就会空行或进错列。
正式激活前,用一封真实邮件跑通 Telegram 和表格,检查凭证与过滤条件,并加上失败告警。确认后再打开激活开关。
接入 Gemini
模型能力来自Advanced AI节点,例如 Basic LLM Chain 或 AI Agent,再接一个模型节点。Gemini 用Google Gemini Chat Model。
语音、图片、PDF 都要传二进制数据,不能只传文字:
语音转写:上游节点先取出 MP3 或 WAV,再把这个文件对象交给 Gemini。
图片和 PDF:上游读出二进制,模型节点把它和文字提示词一起提交。
接入 Claude
凭证要有有效的 Anthropic API 密钥,而且账号里要有 API 额度。
没有现成节点时,用HTTP Request,按 Anthropic 文档填写:
方法:
POST地址:
https://api.anthropic.com/v1/messages请求头:
x-api-key、anthropic-version: 2023-06-01、Content-Type: application/json请求体:
model、max_tokens、messages
messages里放一条role为user的消息。邮件内容用表达式放进content,例如{{ $json.subject }}和{{ $json.text }}。
验证邮件总结:用一封样例邮件跑一次,确认输出里的summary是简短总结。
换成 OpenAI
地址改为
https://api.openai.com/v1/chat/completions请求头改为
Authorization: Bearer <API 密钥>,不再用x-api-key和anthropic-versionmodel填gpt-4o也可以改用OpenAI Chat Model,接到 Basic LLM Chain 或 AI Agent 上
让输出变成固定 JSON
提示词里要规定:只返回 JSON,不要解释,也不要 Markdown。给出字段例子,例如summary和sentiment。n8n 收到后再做 JSON 解析。
排查 HTTP 错误
401:认证失败。检查密钥有没有填错,以及请求头是否用对。Claude 用
x-api-key,OpenAI 用Authorization: Bearer。400:请求格式不对。检查网址、模型名、
max_tokens,以及messages是不是合法 JSON。先把邮件表达式换成一段固定文字。固定文字能通过,问题就在表达式;仍然报错,就对照文档改请求体。