概述
n8n 是一款开源的工作流自动化工具,允许你通过可视化节点编排 API、数据库和 AI 服务。对于进阶读者而言,n8n 的真正价值在于将 AI 能力嵌入到复杂的业务流程中,实现“数据输入 → AI 处理 → 动作输出”的闭环。本教程将带你从零搭建一个“AI 客服邮件自动摘要 + 分类 + 回复建议”的工作流,涵盖 OpenAI API 集成、条件分支、Webhook 触发等核心技巧。
环境准备
部署 n8n
推荐使用 Docker 部署,确保你有稳定的运行环境。
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n
访问 http://localhost:5678,完成初始化设置。进阶读者建议开启 Credentials 加密和 Webhook 公网访问(使用 ngrok 或 Cloudflare Tunnel)。
获取 AI 凭据
你需要以下 API Key:
- OpenAI:用于 GPT-4 或 GPT-3.5 的文本生成。
- SendGrid 或 SMTP:用于发送邮件(可选)。
- Supabase 或 PostgreSQL:存储分类结果(可选)。
构建核心工作流
1. 触发节点:Webhook
使用 Webhook 节点接收外部邮件(通过 Zapier 或 Make 转发邮件到 Webhook URL)。
配置:
- Method:POST
- Path:/email-inbound
- Response:200 OK
测试时可用 curl 模拟:
curl -X POST http://localhost:5678/webhook/email-inbound \
-H "Content-Type: application/json" \
-d '{"subject":"退款申请","body":"我购买的商品出现质量问题,要求退款。","from":"user@example.com"}'
2. AI 处理节点:OpenAI
添加 OpenAI 节点,选择 Chat Completion 模型(如 gpt-4)。
Prompt 设计(使用 n8n 的表达式引用 Webhook 数据):
You are a customer service assistant. Analyze the email below and output a JSON object with three fields:
- "summary": a one-sentence summary of the issue.
- "category": one of ["billing", "technical", "general"].
- "suggested_reply": a professional reply draft.
Email subject: {{ $json.subject }}
Email body: {{ $json.body }}
在 Options 中设置 response_format = { "type": "json_object" },确保输出可解析。
3. 数据分支与动作
使用 IF 节点判断 category:
| 条件 | 动作 |
|---|---|
category == "billing" | 发送 Slack 通知到财务组 |
category == "technical" | 创建 Jira Ticket(使用 Jira 节点) |
default | 仅记录到数据库 |
4. 存储结果(可选)
使用 Postgres 节点将原始邮件 + AI 输出写入表 email_log:
INSERT INTO email_log (subject, body, summary, category, suggested_reply, created_at)
VALUES ('{{ $json.subject }}', '{{ $json.body }}', '{{ $json.summary }}', '{{ $json.category }}', '{{ $json.suggested_reply }}', NOW());
关键参数对比
| 参数 | GPT-3.5-turbo | GPT-4 | 推荐场景 |
|---|---|---|---|
| 输入 Token 限制 | 16K | 8K / 32K | 长邮件选 32K |
| 输出 JSON 稳定性 | 需明确 instruct | 原生支持 json_object | 结构化输出选 GPT-4 |
| 成本(每 1K token) | $0.0015 / $0.002 | $0.03 / $0.06 | 高频场景选 GPT-3.5 |
| 延迟 | 1-3s | 3-8s | 实时响应选 GPT-3.5 |
对于本工作流,建议在开发测试阶段使用 GPT-4 确保输出格式正确,生产环境切换到 GPT-3.5-turbo 以降低成本。
进阶技巧
错误处理与重试
在 OpenAI 节点后添加 Error Trigger 节点,当 API 返回 429 或 500 时,等待 5 秒后重试(使用 Wait 节点 + Loop 节点)。
动态 Prompt 模板
使用 Code 节点(JavaScript)拼接复杂 Prompt:
const subject = $input.first().json.subject;
const body = $input.first().json.body;
const history = await $input.all(); // 获取前序节点数据
return You are a senior support agent. Previous conversation: ${history[0].json.response}. Now handle: ${subject}: ${body};
多模型路由
在 IF 节点前添加 Switch 节点,根据邮件语言(检测 body 中是否含中文)选择不同模型(中文用 GPT-4,英文用 GPT-3.5)。
小结
本教程展示了如何在 n8n 中集成 AI 能力构建无代码自动化工作流。核心要点包括:通过 Webhook 触发外部事件,使用 OpenAI 的 Chat Completion 进行结构化数据抽取,利用 IF 和 Switch 节点实现智能路由,以及通过 Postgres 节点持久化结果。进阶读者可以进一步探索 n8n 的 Sub-workflow 复用、Execution Data 调试以及 Workflow Sharing 团队协作。记住,AI 工作流的价值不在于模型本身,而在于如何将 AI 输出精准地映射到业务动作上。