先讲一个我听来的真实教训。一位在某物流巨头做过数字化的朋友跟我说,他们曾经丢过一个大客户:销售签单时承诺了某条线路的时效和异常赔付标准,白纸黑字写在合同附件里。但这套承诺从来没有进过运营和售后的系统 —— 交付团队按通用 SOP 派单,时效标准对不上,出了几次异常也没按销售承诺的标准赔。三个月后客户怒而解约。产品没问题,销售没说谎,交付也尽力了,单子却死在了三者之间那道没人负责的缝里。
这不是个案。 销售到交付的断点,是企业里最贵、又最没人负责的一种成本 —— 它不在销售的 KPI 里(单子签了),不在交付的 KPI 里(工单做了),它只在客户续约时,以丢单的形式一次性结算。
回到 这个系列 的汽配分销单子。老周开篇那一单的死法一模一样:方案里承诺了「月结 T+1、对账准确率 99.5%」,交付团队只拿到一个工单「给客户 A 部署对账 Agent」,根本不知道有这些承诺。上线后月结要 T+3,客户续约打了低分。
这一篇讲售后,也给整个系列收口。核心判断: 履约 SOP 不该是交付团队从零写的一份新文档,而该从前两篇那个解决方案对象里「编译」出来。销售承诺、投标书 SLA、客户运维数据,本就该是同一个对象的不同视图。打通销售到交付,本质就是让承诺直接成为 SOP 的输入。
SOP 不是写出来的,是编译出来的
大多数企业里,售后 SOP 是交付/运维团队的事,跟销售两个团队、两套文档、两套语言。销售在 PPT 和合同里写承诺,交付在 Confluence 里写操作手册,两者从不对账。承诺和履约一旦割裂,就是上面那两个单子的死法。
换个做法:SOP 是方案对象的一个 编译产物,和给客户的 PPT、投标书摘要一样,都是从同一个 SolutionObject 渲染出来的视图。售前埋下的 commitments 字段(第一篇那个故意留的伏笔),到这里被编译成可执行、可监控的运维标准。
from dataclasses import dataclass, field
@dataclass
class SOPItem:
"""一条履约标准——直接由一条 SLA 承诺编译而来,可被运维数据校验。"""
source_commitment: str # 来自 SolutionObject.commitments 的哪条
standard: str # 可执行的运维标准
monitor_metric: str # 运维侧用哪个指标自动校验
threshold: str # 达标线
on_breach: str # 未达标时的动作(告警/补偿/升级)
@dataclass
class DeliverySOP:
"""售后履约 SOP——不是新写的,是从方案对象 commitments 字段编译出来的。"""
deal_id: str # 同一个解决方案对象的 deal_id
items: list[SOPItem] = field(default_factory=list)
def compile_sop(solution) -> DeliverySOP:
"""把方案对象里的每一条服务承诺,编译成一条可监控的履约标准。"""
sop = DeliverySOP(deal_id=solution.deal_id)
for sla in solution.commitments:
if not sla.measurable:
# 不可被运维数据校验的承诺,编译期就要暴露出来,而不是留到爆雷
raise ValueError(f"承诺「{sla.metric}」无法被运维校验,需在签单前澄清")
sop.items.append(SOPItem(
source_commitment=f"{sla.metric} = {sla.target}",
standard=f"运维保障 {sla.metric} 达到 {sla.target}",
monitor_metric=_metric_of(sla),
threshold=sla.target,
on_breach="自动告警 + 触发补偿流程 + 升级客户成功",
))
solution.delivery_sop_ref = sop.deal_id # 回写方案对象,闭环
return sop
# generated by hugo AI
对客户 A 来说,commitments 里那条「对账准确率 99.5%、可校验」编译出来就是:运维侧监控悟空 Agent 的对账复核通过率,低于 99.5% 自动告警并触发人工复核 + 通知客户成功。承诺不再是 PPT 里一句没人接的话,而是运维系统里一个有人盯、会报警的指标。
运维数据回流:让 SLA 可校验,让续约可预警
编译只是单向把承诺推给交付。真正闭环的是反向 —— 客户运维数据回流到方案对象。
SolutionObject.commitments ──编译──▶ DeliverySOP ──▶ 悟空 Agent 按标准运行
▲ │
│ ▼
└────────── 运维数据回流 ◀──── 对账通过率 / 月结时效 / 跑批成功率
│
▼
① 校验 SLA 是否达标(履约健康度)
② 预警续约风险(连续未达标 → 客户成功提前介入)
客户 A 上线后,运维数据持续回流:对账复核通过率 99.7%(达标)、月结报告平均 T+1.2(接近临界)、Agent 跑批成功率 99.9%(达标)。其中月结时效逼近承诺线,系统提前预警,客户成功在客户开口抱怨之前就介入优化 —— 这恰恰是老周开篇那一单缺的东西。续约风险从「续约评估时才暴露」提前到「履约过程中实时可见」。
这条「信号→动作」的回路,本质和我在 VOC 闭环:4 小时从报错到发版 里讲的是同构的。那篇是「用户报错信号 → AI 归因 → 修复」,这篇是「履约数据信号 → 校验承诺 → 预警续约」。两者都是让上下文连续流动,而不是在每个环节重新搭建。区别只在于:那篇的源头是用户的一句吐槽,这篇的源头是销售在售前埋下的一条承诺。
一个最强的反方
这是整个系列我最想正面回应的反驳,也是「打通」这件事最常被攻击的地方:
「销售承诺和实际交付,本来就该分开。销售为了签单天然会乱承诺、过度承诺,售后凭什么照单全收?你把销售到交付『打通』,无非是把销售拍脑袋的承诺直接灌进交付系统,最后变成交付团队背锅、爆雷的噩梦。隔离销售和交付,反而是对交付的保护。」
这个反方听起来很有道理,但它把因果搞反了。
爆雷的不是「打通」,恰恰是「没打通」。 上面物流那一单、老周那一单,都不是因为承诺被太早灌进了交付系统,而是因为承诺压根没进交付系统 —— 它在销售和交付之间的真空里飘着,谁都不知道,直到客户拿着合同来对质。隔离不是保护,隔离只是把爆雷时间从「履约期」推迟到「续约期」,而且推迟到那时已经无法挽回。
而真正的「打通」,做的恰恰是这个反方想要的事 —— 让过度承诺无处藏身:
- 第一道闸: 投标阶段固化。方案对象的
commitments在出投标书时被固化成正式 SLA,白纸黑字、可校验。模糊的、拍脑袋的承诺在这一步就要落到一个具体指标上,落不下来的(measurable=False)会在compile_sop编译时直接报错,逼你在签单前澄清,而不是留到交付爆雷。 - 第二道闸: 质检拦截口头超额。第二篇里小林那句「99.9%」的口头超额承诺,质检对照
commitments当场标了出来。它要么被正式补进对象、据此重新核算交付资源和成本,要么被退回去和客户澄清 —— 绝不允许它以「隐形承诺」的形式溜进交付。
所以打通不是放大销售的过度承诺,而是给它装上两道闸:固化 + 校验。隔离让过度承诺在黑暗里发酵,打通让它在签单前就暴露在阳光下。这才是对交付真正的保护。
整个系列,收口在一个对象上
把三篇连起来看,那个 SolutionObject 走完了全程:
| 阶段 | 对对象做了什么 | 人收敛成 |
|---|---|---|
| 售前 | 创建:装配行业理解、客户画像、竞对差异、可溯源案例、服务承诺 | 打磨表层包装 |
| 售中 | 读 + 写:对照对象校验拜访偏差、回流赢单话术、拦截口头超额承诺 | 判断与教练 |
| 售后 | 编译:把承诺编译成履约 SOP,运维数据回流校验 SLA、预警续约 | 处理异常、保续约 |
老周开篇那一单为什么死?不是因为哪个环节的 AI 工具不够好,而是因为方案在签单那一刻就死了 —— 它是一份 PPT,不是一个能活下去的对象,所以售中没东西可对照、售后没承诺可编译,断点必然发生。
第一篇 我说,销售流程 AI 化真正的胜负手不在单点做更好的工具,而在让解决方案变成贯穿三段的活对象。走到这里应该清楚了: 三个独立的 AI 工具,加起来也焊不上销售到交付的那道缝;只有一个从售前活到续约、持续累积上下文的对象,才能。
这也是 企业业务流程 AI 化决策框架 里那个判断的最终落点:「让 AI 帮忙做」是给销售流程的每一段各配一个助手,三段照样各管各的;「让 AI 来做」是围绕一个贯穿对象重新设计整条销售流程,让上下文自己流过三段,断点在结构上就不存在。
最后升一层:销售流程只是一个切面。任何「先有承诺、后有履约」的流程 —— 服务 SLA、客户成功、甚至内部的 OKR 承诺 —— 都有同一道缝:承诺方和履约方各执一套文档,中间靠人去搬运上下文,于是断点丛生。解法也同一个:让承诺成为一个可编译、可校验、可回流的对象,而不是一份交付即死的文档。
你的组织里,销售承诺的东西,交付团队读得到吗?履约的数据,又流回去预警续约了吗?欢迎留言聊聊那道缝。