Task 字段设计
Historical research / Superseded(2026-07-15):本文的字段数量和 enums 已过时,不得用于实现。Current/Target fields 与 values 统一见 Task System Design。
本文档定义 Task 表的字段结构,供开发者实现时参考。任务的业务规则详见 Tasks Overview。
写入者说明
一、字段定义
Schema 对齐说明(2026-03-25):
phone→contactPhone:与 schemacontact_phone列名对齐dueAtChangelog已移除:改用contact_timeline表记录task.due_at_changed事件。Postpone UI 读 API computed fieldpostponeCount(COUNT(*)from timeline)- 新增
contactAnalysisRunId:P2 idempotency 用,spec 详见.claude/specs/2026-03-25-task-pipeline-write-flow.md- 类型标注更精确:
uuid、text (enum)、jsonb、timestamp with tz(与 Drizzle schema 一致)
二、typeCategory 枚举
typeCategory 标识任务的业务场景,帮助员工一眼识别任务性质。Lead Outreach 固定为 lead_outreach;Follow-up 由 Cross-Call AI 综合多通通话分析后判定。
2.1 typeCategory 定义
2.2 数据来源与前置条件
Follow-up 任务由 Contact Analysis(Cross-Call AI)每日批量分析客户的完整通话 + SMS 历史后直接创建。当 AI 判定客户需要跟进时,直接 INSERT 一条 Task 记录,写入:
typeCategory:任务业务场景(见 §2.1)suggestedActions:具体建议的行动列表(含 action + reason)priority:任务优先级(high / medium / low)
注:
actionNeeded、actionNeededReason、suggestedActions同时存在于 Contacts 和 Tasks 两张表——Contact Analysis 写 contacts(客户状态留存),同时写 tasks(驱动员工行动)。Tasks 表还有 task-only 字段(priority、dueAt等)。Contact Analysis 也负责 AI-driven task decisions(close/create/update ongoing tasks)。
2.3 典型的 Task 创建原因
以下是 Task 创建的典型原因,按 typeCategory 归类:
2.3.1 新 Lead 首次联系(LEAD OUTREACH)
新 Lead 到达系统,需要在 SLA 窗口内首次联系。由 lead-tracking Lambda 在 Lead 到达时直接创建,不经过 Contact Analysis。
2.3.2 Lead 持续跟进(LEAD FOLLOW-UP)
分两种情况:
未接通(leadStatus = new / attempted):前提是 Lead 尚未进入 terminal 状态(unreachable 或 neglected)。Contact Analysis 综合通话历史和时间衰减判定是否仍需跟进。
已接通但未预约(leadStatus = connected):
2.3.3 预约后促进成交(BOOKED NOT CONVERTED)
条件:leadStatus 为 booked / showed / trialed(已预约),且已过预约时间,且 lifecycleState 不是 terminal 或 paused,且未 converted。
2.3.4 促进升级(UPGRADE)
2.3.5 投诉挽留(COMPLAINT RETENTION)
2.3.6 支付恢复(PAYMENT RECOVERY)
2.3.7 避免流失(CANCELLATION RISK)
2.3.8 冻结恢复(FREEZE RECOVERY)
2.3.9 挽回客户(WIN-BACK)
2.3.10 活动推广(EVENT PROMOTION)
2.3.11 特别推广(SPECIAL PROMOTION)
2.4 typeCategory 判定逻辑
Lead Outreach 固定为 lead_outreach(由 SLA 规则触发)。Follow-up 由 Contact Analysis AI 根据客户状态判定:
typeCategory 与 Per-Call Analysis 没有直接关联。Per-Call Analysis 分析单通通话,Contact Analysis 综合所有通话后写入 Contacts 结构化字段并直接创建/关闭/更新 Tasks。
三、关闭结果枚举
closeResult 枚举
任务关闭时写入。manual_closed:员工在 Close Task 弹窗中选择;auto_closed:Contact Analysis AI 从枚举中智能选择(基于通话/SMS 历史分析)。用于营收归因(见 任务与营收归因)。