去年帮一个运维团队做系统改造,他们的问题很典型:客户在客服系统提了工单,运维人员看不到,得客服手动复制粘贴到运维工单系统。一个工单两个系统三波人跟,客户等得抓狂。工单系统API对接就是来解决这个问题的。
工单创建:建立跨系统的唯一标识
对接的第一步是解决工单在多系统间的身份问题。客服系统创建工单后,通过API在运维系统也创建一条关联工单。两条工单各自的ID不同,但要用一个统一的关联ID串起来。
具体做法:在客服系统创建工单时生成一个UUID作为trace_id,调运维系统创建工单API时把这个trace_id带上。运维系统在自己的工单表里存这个trace_id作为外部关联字段。后续任何方向的状态同步,都靠trace_id来定位对应工单。
字段映射这个环节别偷懒。客服系统的“问题描述“字段可能叫content,运维系统可能叫description,建一张字段映射表统一管理。工单系统API对接最容易出问题的地方就是字段对不上,工单内容到了目标系统变成了乱码或空值。
状态同步:双向回调比轮询靠谱
工单状态变更是双向的:客服侧标记“已解决“,运维侧也要同步关闭;运维侧更新处理进度,客服侧要能看到最新状态。
方案是双向Webhook。两个系统都配置状态变更回调URL,A系统状态变了推给B系统,B系统收到后更新本地状态。注意处理循环回调的问题:A推B更新后,B的状态变更回调又推回A,形成死循环。解决办法是在回调数据里加一个source字段,收到自己发出去的回调直接忽略。
状态映射也要定义清楚。客服系统的“待处理“对应运维系统的“新建“,“处理中“对应“进行中“。两边状态不完全对等很正常,在接收端做一层转换就行。
自动派单:按技能组路由
工单从客服系统流转到运维系统后,怎么分配给具体的人?靠手动指定效率太低。建议在运维系统里配置自动派单规则。
派单规则可以按这几个维度设计:工单类型(网络故障派给网络组,数据库问题派给DBA)、优先级(P0工单直接派给值班负责人)、客户等级(VIP客户工单派给高级工程师)。大多数工单系统都支持规则引擎配置,不用写代码。
如果对接的系统比较多,超过三个,建议引入一个工单中转层。所有系统的工单都先到中转层做路由分发,而不是两两对接。N个系统两两对接需要N×(N-1)条链路,加中转层只需要N条。工单系统API对接的复杂度不是线性增长的,系统一多就得考虑架构优化。