POST 创建跟进记录
POST 新增。body 为 JSON 对象。客户/商机跟进必填:customerId(客户ID)、typeId(跟进方式ID,取自跟进方式配置)、content(跟进内容)。可选:bizType(CUSTOMER=客户,OPPORTUNITY=商机,LEAD=线索;不传按 opportunityId/leadId 推断)、opportunityId(商机ID,须属于该客户)、contactId(联系人ID,须属于该客户)、resultCode(跟进结果编码,取自跟进结果配置)、followUpAt(实际跟进时间 yyyy-MM-dd HH:mm:ss,默认当前)、nextFollowDate(下次跟进时间)、nextFollowAction(下次跟进计划)、visitPlanId(引用的拜访计划ID)+ completeVisitPlan(true=同时将该拜访计划标记为已完成)、assigneeId(跟进人,默认当前用户)、customFieldDataList(自定义字段)。线索跟进(bizType=LEAD)必填:bizId 或 leadId(线索ID)、typeId、content(≤2000字)、resultCode、followUpAt(不可晚于当前),可选 leadStatusId、scoreAdjustment、intentionLevelId。
| 接口编码 | 所需范围 | 后端接口 |
|---|---|---|
sales.follow-up.create | sales:write | POST /v1/follow-up/create(comap-sales) |
必填字段
| 字段 | 依据 |
|---|---|
customerId | 参数说明、接口规格 |
typeId | 参数说明、接口规格 |
content | 参数说明、接口规格 |
bizId 或 leadId | 参数说明 |
resultCode | 参数说明 |
followUpAt | 参数说明 |
attachments[].fileId | 接口规格 |
条件必填(如「某状态时必填」)不在此表,以上方参数说明为准。 判定规则见必填字段的判定。
请求体字段(body)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
bizType | string | — | 关联业务类型:CUSTOMER/OPPORTUNITY/LEAD |
bizId | integer(int64) | — | 关联业务 ID |
leadId | integer(int64) | — | 关联线索 ID,兼容字段 |
customerId | integer(int64) | 是 | 客户ID(必填) |
contactId | integer(int64) | — | 联系人ID |
opportunityId | integer(int64) | — | 商机ID |
visitPlanId | integer(int64) | — | 引用的拜访计划ID |
completeVisitPlan | boolean | — | 保存跟进后是否将拜访计划标记为已完成 |
typeId | integer(int64) | 是 | 跟进方式ID(必填) |
content | string | 是 | 跟进内容(必填) |
result | string | — | 跟进结果 |
resultCode | string | — | 跟进结果编码 |
resultName | string | — | 跟进结果名称快照 |
followUpAt | string | — | 实际跟进时间 |
participantNames | string[] | — | 参与人名称快照 |
leadStatusId | integer(int64) | — | 线索跟进后的状态 ID |
leadStatusName | string | — | 线索跟进后的状态名称 |
scoreAdjustment | integer(int32) | — | 线索评分调整值 |
intentionLevelId | integer(int64) | — | 意向等级配置ID |
attachments4 | FollowUpAttachmentDTO[] | — | 已上传到 comap-file 的附件引用 |
nextFollowDate | string | — | 下次跟进日期(yyyy-MM-dd HH:mm:ss) |
nextFollowAction | string | — | 下次跟进计划行动 |
assigneeId | integer(int64) | — | 跟进人ID |
customFieldDataList3 | FieldDataItem[] | — | 自定义字段数据列表 |
「必填」仅反映接口规格声明的部分。服务内还有未体现在规格里的校验, 标「—」不等于可以不传;租户在主站配置的字段必填不约束本接口。 详见必填字段的判定与字段清单与自定义字段。
请求示例
curl -X POST https://open.risemap.cn/v1/api/invoke \
-H "Authorization: Bearer <访问令牌>" \
-H "Content-Type: application/json" \
-d '{
"apiCode": "sales.follow-up.create",
"body": {
"customerId": "1961000000000000001",
"typeId": "1961000000000000001",
"content": "string"
}
}'
错误处理
响应统一信封 { code, message, data },code == 200 为成功。以下是本接口可能返回的开放平台层错误:
| 错误码 | 说明 | 可重试 |
|---|---|---|
| 92101 | 访问凭证无效 | 否 |
| 92201 | 接口未登记或已停用 | 否 |
| 92202 | 超出凭证授权范围——本接口需 sales:write | 否 |
| 92204 | 绑定员工无此接口的功能权限 | 否 |
| 92203 | 上游服务调用失败 | 先查询处理结果,禁止盲目重试 |
| 92301 | 请求过于频繁 | 是 |
| 92205 | 写操作处理超时,结果未知(下游可能仍在执行) | 否,先查询确认结果 |
| 92302 | 有参数相同的写请求正在处理中 | 等待并确认前一次结果,勿重复提交 |
除此之外,comap-sales 自身的业务校验失败会原样透传其业务码与提示
(如字段校验、状态不允许、数据不存在),这类码不在开放平台的号段内,
以响应里的 message 为准。完整的平台层错误码见错误码说明。
← 返回follow-up