电子邮件代理Skill email-agent

电子邮件代理技能负责处理 Unite-Hub 的传入电子邮件,包括提取发件人信息、识别沟通意图、链接到 CRM 联系人、分析情绪,并更新联系记录。

AI应用 0 次安装 1 次浏览 更新于 3/3/2026

name: email-agent description: 处理 Unite-Hub 的传入电子邮件。提取发件人数据,识别沟通意图,链接到 CRM 联系人,分析情绪,并用 AI 洞察更新联系记录。

电子邮件代理技能

概览

电子邮件代理负责:

  1. 处理未处理的电子邮件 从一个工作区
  2. 提取发件人信息 并链接到现有联系人
  3. 分析电子邮件内容 以识别意图和情绪
  4. 更新 CRM 联系人 与交互数据
  5. 创建审计日志 记录所有操作

如何使用此代理

触发

用户说:“处理 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 重整我们的营销策略。很想聊聊合作机会。

代理过程:

  1. ✅ 提取发件人:john@techstartup.com
  2. ✅ 查询联系人:在联系人中找到 “John Smith”
  3. ✅ 提取意图:["inquiry", "partnership"]
  4. ✅ 分析情绪:"positive"(热情的语气)
  5. ✅ 生成摘要:“John 询问关于 Q4 营销策略和合作”
  6. ✅ 标记电子邮件已处理并链接联系人
  7. ✅ 将联系人 AI 分数从 68 提高到 78
  8. ✅ 添加带有时间戳和详细信息的笔记
  9. ✅ 记录带有完整上下文的审计事件

结果:

  • 联系人更新了最新的交互数据
  • 审计追踪显示代理处理了电子邮件
  • 联系人现在出现在 “高价值潜在客户” 中,因为分数增加