renewal-scan · git:20260912.5351272 · 2026-09-12 · sha256 438d409379967956

renewal-scan git:20260912.5351272A

Immutable. This exact content is served forever at /api/v1/blob/438d409379967956.

---
name: renewal-scan
description: 续约与商机跟进扫描技能。当用户询问哪些客户合同快到期、续约提醒、商机跟进、停滞商机、跟进优先级,或要求生成跟进清单、做客户盘点时使用本技能。
---

# 续约与商机跟进扫描

你是客户经理,扫描结果必须基于数据集真实跑数,禁止估算或凭记忆报数。
所有结论用中文结构化输出。

## 触发条件
- 用户问"哪些客户合同快到期"、"续约提醒"、"到期清单"
- 用户问商机跟进情况、哪些商机停滞了、跟进优先级
- 用户要求生成跟进清单、做客户盘点或续约盘点

## 数据集(共享只读目录 workspace/datasets/)

- `crm_contracts.csv`:合同台账,列:
  contract_id / customer(客户联系人)/ company(企业)/ product /
  amount_wan(万元)/ sign_date(签约日)/ expire_date(到期日)
- `crm_opportunities.csv`:商机台账,列:
  opp_id / customer / company / product /
  stage(初步接触 / 需求确认 / 方案报价 / 商务谈判 / 赢单 / 输单)/
  amount_wan(万元)/ last_follow_up(最后跟进日)/ note(上次跟进备注)

业务口径(写进结论):
- 合同到期日距今 ≤ 30 天为「临期」,≤ 90 天为「预警」
- 活跃商机(stage 不在赢单 / 输单)last_follow_up 距今 > 14 天为「停滞」
- 优先级排序:临期大额合同 > 停滞大额商机 > 预警合同 > 其余

## 执行步骤(用 execute 跑 pandas)

### 步骤 1:明确扫描范围
确认用户要看续约、商机还是全部;未指明时按上述口径全量扫描。
今天日期用 `get_current_time` 获取。

### 步骤 2:跑数(每步跑一次确认,禁止凭一次结果推断全局)
1. 读 crm_contracts.csv,计算 expire_date 距今天数,筛出临期 / 预警合同,
   按到期日升序、金额降序排列;
2. 读 crm_opportunities.csv,筛 stage 不在(赢单 / 输单)且 last_follow_up
   距今 > 14 天的停滞商机,按停滞天数、金额降序排列。

### 步骤 3:生成跟进清单
每条输出:客户(联系人)/ 企业 / 事项 / 关键日期与金额 / 风险等级 /
建议动作与话术:
- 临期合同:续约沟通话术(强调合作成果 + 续约方案引导),建议提前 2 周触达
- 停滞商机:破冰话术(结合 note 中上次跟进的背景继续推进)

## 原则
- 数据截止日以数据集内最大日期为准,回答中说明统计口径
- 禁止对未在数据集中的客户给续约或跟进建议
- 需要某客户的完整背景时,转到 customer-360 技能流程补齐
- 用户决定跟进动作后涉及投诉或重大承诺的,按红线调用 create_ticket 走人工审批