wecrm-churn-autolog
SKILL.md
WeCRM 客户流失自动录入
概览
按固定 3 步执行:
- 用客加客户ID查询客户状态与客户CID(CID 使用
name字段); - 用客户CID检索商机ID;
- 组装并提交
ActiveRecordObj/action/Add完成流失跟进录入。
必须严格执行失败分支,避免写入错误记录。
输入与输出
输入
customerId:客加客户ID(必须)churnReasonLabel或churnReasonValue:流失原因(二选一,必须)detailReason:详细流失原因(写入field_cRKog__c,必须)techSupportContext:技术支持补充说明(可选,用于辅助判断)chatSummary:群聊摘要(可选,用于辅助判断)
输出(汇报格式)
- customerId
- customerStatus (
deal_status__c__r) - customerCid (
name) - opportunityIdList
- selectedChurnReason (
value + label) - recordSubmitResult (
success/fail + message)
固定流程
第 1 步:客户信息查询(WeCustomerCid__c)
请求:/FHH/EM1HFUNC/event/func/service/controller
- 自动读取当前会话
fs_token(cookie) - 自动生成
traceId - payload:
{
"api_name": "WeCustomerCid__c",
"parameters": [{ "type": "String", "name": "customerId", "value": "<customerId>" }],
"callType": "FxUI_PWC",
"callApiName": ""
}
提取:
- 客户状态:
cidList[0].deal_status__c__r - 客户CID:
cidList[0].name← 注意:不是field_2P2vj__c
若 cidList 为空:中止并返回“未查到客户CID/状态,请核对客户ID”。
第 2 步:商机检索(search_data)
请求:/FHH/EM1HNCRM/API/v1/object/search/service/search_data
payload 的 keyword 使用第 1 步拿到的客户CID(name)。
从返回 Value 中查找 displayName: "商机",提取对应 idList。
若不存在“商机”或 idList 为空:
- 直接中止
- 返回:
查不到商机ID,请技术支持先补充商机后再继续。
第 3 步:录入流失跟进(ActiveRecordObj Add)
请求:/FHH/EM1HNCRM/API/v1/object/ActiveRecordObj/action/Add
写入关键字段:
business_opportunity__c= 选定商机ID(默认取idList[0],除非用户指定)field_Qcvg9__c= 客户CIDchurn_reason__c= 流失原因枚举值数组,如["18"]field_cRKog__c= 详细流失原因
若 detailReason 缺失且无法从上下文可靠提取:中止并提示技术支持补充。
流失原因枚举
先读 references/churn-reason-mapping.md。
匹配规则:
- 用户显式给
churnReasonValue时直接用。 - 仅给文字时,按 label 精确/语义匹配到唯一 value。
- 匹配到多个候选或无法匹配时,停止并让技术支持明确指定。
traceId 与 token 规则
_fs_token/fs_token:每次从当前登录态实时读取,不写死。traceId:请求级动态值,不复用历史固定值。
安全与稳健性
- 不打印完整 cookie/token 到群聊,只可掩码展示。
- 写入前回显关键字段(customerId、customerCid、opportunityId、churnReason)供确认。
- 接口返回非 200 或业务失败时,输出简洁错误并停止后续写入。
参考资料
- 枚举映射:
references/churn-reason-mapping.md - 请求体模板:
references/payload-template-active-record.json