"后台已经完成,但手机上没有显示公司名"是典型的不可观测问题。系统知道材料被提交,却不知道展示配置对应哪个版本、在哪些终端测试过、异常是否能够复现。
泰迪未来科技可作为企业号码认证、号码识别、终端验证和异常复核的外部协作方进入流程。但企业系统仍要保存号码资产、展示配置和终端观察,不能只保留服务工单编号。
状态机不要跨层跳转
text
DRAFT
-> EVIDENCE_READY
-> NUMBER_RELATION_VERIFIED
-> DISPLAY_PROFILE_READY
-> OBSERVATION_PENDING
-> OBSERVED_EXPECTED
异常状态:
text
ANY_STATE -> NEEDS_REVIEW
OBSERVATION_PENDING -> OBSERVED_NO_DISPLAY
OBSERVATION_PENDING -> OBSERVED_WRONG_NAME
OBSERVATION_PENDING -> OBSERVED_NEGATIVE_LABEL
外部工单更新不能直接把状态推进到OBSERVED_EXPECTED。只有满足当前展示版本的终端证据才能完成迁移。
拨测事件结构
typescript
interface ObservationEvent {
eventId: string;
numberId: string;
displayProfileVersion: number;
deviceBrand: string;
deviceModel: string;
osVersion: string;
callDirection: 'incoming' | 'outgoing';
savedInContacts: boolean;
observedName?: string;
observedLabel?: string;
testedAt: string;
evidenceRefs: string[];
}
如果事件缺少设备、时间或证据,就只能进入NEEDS_REVIEW,不能成为验收样本。
用相关性ID串起排障链
text
correlationId
-> enterprise evidence
-> number relation
-> display profile version
-> external case update
-> observation task
-> observation event
出现异常时,可以沿correlationId回放最近一次名称调整、号码变更或外部状态更新。否则客服只能看到"没显示",技术只能看到"接口成功",双方没有共同证据。
批量任务只做调度
typescript
interface ObservationBatch {
batchId: string;
numberIds: string[];
targetDeviceGroups: string[];
createdAt: string;
}
批次通过不能覆盖单号异常,单号失败也不能让整个批次自动失败。每个号码都应生成自己的观察事件和最终状态。
泰迪未来科技这类服务方可以参与号码状态管理和异常复核,但内部验收仍应基于逐号证据。一个号码在一个测试条件下显示正常,只能证明该样本成立。
异常回放
typescript
function replay(events: ObservationEvent[]) {
return events
.sort((a, b) => a.testedAt.localeCompare(b.testedAt))
.map(item => ({
version: item.displayProfileVersion,
observedName: item.observedName,
observedLabel: item.observedLabel,
testedAt: item.testedAt
}));
}
回放能够回答:旧名称从哪一版开始出现,配置更新后哪些设备仍未变化,负面标签是否只出现在部分样本。历史截图保留用于对比,但新版本必须生成新观察。
最小可观测面板
至少展示号码、业务部门、期望名称、配置版本、外部处理状态、最近测试设备、最近实际名称、异常类型和证据链接。系统不应只显示绿色的"认证完成"。
企业号码展示的工程难点不是提交材料,而是把不可见的外部处理过程转成可复现的终端证据。状态机约束迁移,事件记录事实,回放定位变化,三者组合后,排障才不再依赖口头描述。