name: email-agent description: 处理 Unite-Hub 的传入电子邮件。提取发件人数据,识别沟通意图,链接到 CRM 联系人,分析情绪,并用 AI 洞察更新联系记录。
电子邮件代理技能
概览
电子邮件代理负责:
- 处理未处理的电子邮件 从一个工作区
- 提取发件人信息 并链接到现有联系人
- 分析电子邮件内容 以识别意图和情绪
- 更新 CRM 联系人 与交互数据
- 创建审计日志 记录所有操作
如何使用此代理
触发
用户说:“处理 Duncan 的工作区电子邮件”或“分析未处理的电子邮件”
代理的操作
1. 获取未处理的电子邮件
调用:convex 查询 emails.getUnprocessed({
orgId: "k57akqzf14r07d9q3pbf9kebvn7v7929",
workspaceId: "kh72b1cng9h88691sx4x7krt2h7v7dehh",
限制:50
})
返回尚未处理的电子邮件数组(isProcessed: false)
2. 对于每封电子邮件
步骤 A: 提取发件人电子邮件
来自:"john@techstartup.com"
提取:sender_email = "john@techstartup.com"
步骤 B: 链接到联系人
调用:convex 查询 contacts.getByEmail({
orgId: "k57akqzf14r07d9q3pbf9kebvn7v7929",
workspaceId: "kh72b1cng9h88691sx4x7krt2h7v7dehh",
电子邮件:"john@techstartup.com"
})
如果存在 → contactId = found_contact._id
如果不存在 → 创建新联系人,包括:
- 电子邮件:sender_email
- 名称:从电子邮件中提取或“未知”
- 来源:“电子邮件”
- 状态:“线索”
步骤 C: 分析电子邮件内容
提取这些意图关键词:
- “interested” / “partnership” / “collaboration” → 意图:询问
- “proposal” / “quote” / “pricing” → 意图:提案
- “issue” / “problem” / “help” → 意图:投诉
- “?” / “how” / “what” / “when” → 意图:问题
- “follow up” / “re:” → 意图:跟进
- “meeting” / “call” / “sync” / “schedule” → 意图:会议
一封电子邮件可以适用多个意图。
步骤 D: 分析情绪
读取电子邮件语气:
- 积极指标:“excited”, “love”, “great”, “thank you”, “appreciate”
- 消极指标:“problem”, “issue”, “concerned”, “unhappy”, “urgent”
- 中性:标准商务语气
分类为:积极,中性,或消极
步骤 E: 生成摘要
创建 1-2 句电子邮件意图摘要:
示例:"John from TechStartup is inquiring about Q4 marketing services and partnership opportunities."
步骤 F: 标记为已处理
调用:convex 变异 emails.markProcessed({ orgId: “k57akqzf14r07d9q3pbf9kebvn7v7929”, emailId: “email_id_from_step_1”, contactId: “contact_id_from_step_b”, intents: [“inquiry”, “partnership”], sentiment: “positive”, summary: “John inquiring about Q4 partnership” })
步骤 G: 更新联系人
如果是新的互动,更新:
调用:convex 变异 contacts.updateAiScore({
orgId: "k57akqzf14r07d9q3pbf9kebvn7v7929",
contactId: "contact_id",
分数:75 // 根据参与度增加分数
})
调用:convex 变异 contacts.addNote({
orgId: "k57akqzf14r07d9q3pbf9kebvn7v7929",
contactId: "contact_id",
笔记:"Email from John: Inquiring about Q4 partnership. Sentiment: positive. Intents: inquiry, partnership"
})
步骤 H: 记录审计事件
调用:convex 变异 system.logAudit({ orgId: “k57akqzf14r07d9q3pbf9kebvn7v7929”, 行动:“email_processed”, 资源:“email”, resourceId: “email_id”, 代理:“email-agent”, 细节:JSON.stringify({ 来自:“john@techstartup.com”, intents: [“inquiry”, “partnership”], sentiment: “positive”, contactLinked: true }), 状态:“success” })
错误处理
如果出现问题:
调用:convex 变异 system.logAudit({
orgId: "k57akqzf14r07d9q3pbf9kebvn7v7929",
行动:"email_processing_error",
资源:"email",
resourceId: "email_id",
代理:"email-agent",
细节:JSON.stringify({ 错误:"error message" }),
状态:"error",
错误消息:"description"
})
然后继续处理下一封电子邮件(不要停止)。
总结输出
处理完所有电子邮件后,提供:
✅ 电子邮件处理完成
总共处理:X
成功链接:X
新建联系人:X
提取意图:X
平均情绪:X
联系人参与:
- John Smith (TechStartup) - 积极,询问
- Lisa Johnson (eCommerce) - 积极,提案
- Carlos Rodriguez (Agency) - 积极,合作
下一步行动:
1. 审查高优先级联系人(积极情绪 + 询问)
2. 为潜在客户生成跟进电子邮件
3. 安排与决策者的会议
关键点
- 组织隔离:所有操作限定在
orgId - 工作区范围:仅处理目标工作区的电子邮件
- 联系人链接:始终尝试将电子邮件链接到现有联系人
- AI 评分:当他们参与(收到电子邮件)时增加联系人分数
- 审计追踪:记录每一项操作以符合合规性
示例:处理一封电子邮件
输入电子邮件:
来自:john@techstartup.com
主题:对您的服务感兴趣
正文:嗨 Duncan,我们希望为 Q4 重整我们的营销策略。很想聊聊合作机会。
代理过程:
- ✅ 提取发件人:
john@techstartup.com - ✅ 查询联系人:在联系人中找到 “John Smith”
- ✅ 提取意图:
["inquiry", "partnership"] - ✅ 分析情绪:
"positive"(热情的语气) - ✅ 生成摘要:“John 询问关于 Q4 营销策略和合作”
- ✅ 标记电子邮件已处理并链接联系人
- ✅ 将联系人 AI 分数从 68 提高到 78
- ✅ 添加带有时间戳和详细信息的笔记
- ✅ 记录带有完整上下文的审计事件
结果:
- 联系人更新了最新的交互数据
- 审计追踪显示代理处理了电子邮件
- 联系人现在出现在 “高价值潜在客户” 中,因为分数增加