Name Trust — 名字写入规则
Source of truth:
callytics-common/src/db/schema/name-trust.ts对齐日期: 2026-05-28
多个来源会写同一个 contact 的名字(webhook caller ID、RC Call Log API、AI 从转录提取、lead form、员工手动改)。Name Trust 是决定哪个来源赢的机制:给每个来源一个信任分,UPSERT 时高分覆盖低分。
存在 contacts.first_name_trust_score(smallint)里。用整数比较而非字符串枚举——SQL 里更快也更简单(设计见 callytics-common#160)。
NAME_TRUST 6 级
所有写入方(transcribe-processor、ai-analysis-processor、message-processor、contacts-analyzer、studio-api)写 first_name 时都带上对应的 trust score。
ON CONFLICT 覆盖逻辑
UPSERT 时按以下规则决定保留哪个 first_name:
- 高分覆盖低分:新来源 trust score 更高 → 用新名字。
- 同分新值胜:分数相等时(
>=),用新写入的非空值(让同级来源的最新数据生效)。 - 低分不动:新来源分数更低 → 保留原名字(例如 webhook 的 caller ID 不会覆盖员工手填的名字)。