1 添加客户
接口说明:使用此接口可以进行客户资料的添加,请求参数可以参考下面的字段及示例。如需进行修改删除,请务必保留客户创建成功后提供的_id。如需有自定义字段,可先调用,查询客户字段配置列表接口,去获取自定义字段。
1.1 URL
POST /openapi/crm/add
1.2 请求参数
字段 | 名称 | 类型 | 是否必填 | 备注 |
customerName | 客户名字 | String | Y | |
assignTime | 归属时间 | String | N | |
owner | 可传所属人id或公海id | String | N | |
createMethod | 创建方式 | String | N | |
mobile | 手机 | List<PhoneProperty> | N | |
邮箱 | List<EmailProperty> | N | ||
List<QqProperty> | N | |||
微信 | List<WechatProperty> | N | ||
visitorId | 访客进线id | String | N | 网页渠道访客进线时所传的visitorId,若能对应上,那么访客对话将会自动匹配上客户资料 |
mobileDecrypt | 手机号解密方式 | String | N | 目前仅支持:Haier |
PhoneProperty、EmailProperty、QqProperty、WechatProperty
字段 | 名称 | 类型 |
value | 值 | String |
memo | 备注 | String |
1.3 返回参数
字段名称 | 字段类型 | 是否必填 | 字段描述 |
success | bol | 是 | 成功标识 |
message | String | 是 | 接口信息 |
code | String | 是 | 状态码 “200”-成功 |
traceId | String | 是 | 请求唯一标识 |
data | Object | 是 | 返回结果 |
-count | Int | 是 | 结果数量 |
-list | array | 是 | 结果数组 |
--_id | String | 是 | id |
--accountId | String | 是 | 账号 |
--customerName | String | 否 | 客户名称 |
--owner | String | 否 | 归属人 |
--assignTime | String | 否 | 归属时间 |
--createMethod | String | 否 | 创建方式 |
--mobile | array | 否 | 手机 |
---value | String | 否 | 手机号 |
---memo | String | 否 | 备注 |
array | 否 | 邮箱 | |
---value | String | 否 | 邮箱 |
---memo | String | 否 | 备注 |
array | 否 | ||
---value | String | 否 | qq号 |
---memo | String | 否 | 备注 |
array | 否 | 微信 | |
---value | String | 否 | 微信号 |
---memo | String | 否 | 备注 |
firstOwner | String | 否 | 首次归属人 |
firstAssignTime | String | 否 | 首次归属时间 |
importBatchNumber | String | 否 | 导入批次号 |
lastCallTime | String | 否 | 最后一次呼叫时间 |
lastCallUser | String | 否 | 最后一次呼叫用户 |
firstCallTime | String | 否 | 第一次呼叫时间 |
firstCallUser | String | 否 | 第一次呼叫用户 |
lastChatTime | String | 否 | 最后一次聊天时间 |
lastChatUser | String | 否 | 最后一次聊天用户 |
createAgent | String | 否 | 创建人 |
createTime | String | 否 | 创建时间 |
updateAgent | String | 否 | 更新人 |
updateTime | String | 否 | 更新时间 |
openSeaIds | String[] | 否 | 公海**ids |
callingNumber | int | 否 | 呼叫次数 |
imNumber | int | 否 | 会话次数 |
sumBridgeDuration | int | 否 | 通话总时长 |
visitorId | String | 否 | 访客**id |
wxAddState | String | 否 | 企微添加状态 1**已添加 |
自定义字段 | String | 否 | 自定义字段 |
1.4 请求示例
{
"customerName": "test",
"mobile": [
{
"value": "333222111",
"memo": "王哈"
}
],
"customerSource": [
"试用申请"
],
"owner": "8310",
"assignTime": "2024-11-14 09:46:17"
}
1.5 请求成功响应示例
{
"success": true,
"message": "200 ok!",
"code": "200",
"data": {
"accountId": "1090",
"createTime": "2023-06-26 23:18:43",
"createMethod": "",
"updateAgent": "openApi",
"updateTime": "2023-06-26 23:18:43",
"_id": "685775343058800640",
"customerName": "testCustomer",
"createAgent": "openApi"
}
}
1.6 客户资料重复响应示例
{
"success": false,
"message": "客户手机号码已存在",
"code": "03001004",
"data": {
"repeatId": [
"909996031015174144",
"912231910318624768",
"928033771912073216"
]
},
"traceId": "8d02d300b50c42a39dd4e29a183daf55"
}
2 修改客户
接口说明:使用此接口可以进行客户资料的修改,需要用添加客户资料生成的_id进行修改,请求参数可以参考下面的字段及示例。
2.1 URL
POST /openapi/crm/update
2.2 请求参数
参考1.2的请求及下列示例。_id必传,修改客户资料需要用到
字段 | 名称 | 类型 | 是否必填 | 备注 |
_id | id | String | Y | |
customerName | 客户名字 | String | N | |
assignTime | 归属时间 | String | N | |
owner | 可传所属人id或公海id | String | N | |
createMethod | 创建方式 | String | N | |
mobile | 手机 | List<PhoneProperty> | N | |
邮箱 | List<EmailProperty> | N | ||
List<QqProperty> | N | |||
微信 | List<WechatProperty> | N | ||
visitorId | 访客进线id | String | N | 网页渠道访客进线时所传的visitorId,若能对应上,那么访客对话将会自动匹配上客户资料 |
2.3 请求示例
curl --location 'http://47.99.32.215:8081/openapi/crm/update' \
--header 'appid: 1090' \
--header 'nonce: 123456' \
--header 'timestamp: 1687792901' \
--header 'signature: osiJIMEZRFzQPJDH/3hsYe3BGhk/0aouXGyhX2Af2mc=' \
--header 'Content-Type: application/json' \
--data '{
"_id": "685775898716000256",
"customerName": "testCustomer"
}'
{
"success": true,
"message": "200 ok!",
"code": "200",
"data": {
"accountId": "1090",
"createTime": "2023-06-26 23:20:56",
"createMethod": "",
"updateAgent": "openApi",
"updateTime": "2023-06-26 23:21:56",
"_id": "685775898716000256",
"customerName": "testCustomer",
"createAgent": "openApi"
}
}
2.4 返回值
返回和新增客户资料接口一致,code 多一个 “00000400” 参数错误,表示参数传递错误
字段名称 | 字段类型 | 是否必填 | 字段描述 |
success | bol | 是 | 成功标识 |
message | String | 是 | 接口信息 |
code | String | 是 | 状态码 “200”-成功 |
traceId | String | 是 | 请求唯一标识 |
data | Object | 是 | 返回结果 |
-count | Int | 是 | 结果数量 |
-list | array | 是 | 结果数组 |
--_id | String | 是 | id |
--accountId | String | 是 | 账号 |
--customerName | String | 否 | 客户名称 |
--owner | String | 否 | 归属人 |
--assignTime | String | 否 | 归属时间 |
--createMethod | String | 否 | 创建方式 |
--mobile | array | 否 | 手机 |
---value | String | 否 | 手机号 |
---memo | String | 否 | 备注 |
array | 否 | 邮箱 | |
---value | String | 否 | 邮箱 |
---memo | String | 否 | 备注 |
array | 否 | ||
---value | String | 否 | qq号 |
---memo | String | 否 | 备注 |
array | 否 | 微信 | |
---value | String | 否 | 微信号 |
---memo | String | 否 | 备注 |
firstOwner | String | 否 | 首次归属人 |
firstAssignTime | String | 否 | 首次归属时间 |
importBatchNumber | String | 否 | 导入批次号 |
lastCallTime | String | 否 | 最后一次呼叫时间 |
lastCallUser | String | 否 | 最后一次呼叫用户 |
firstCallTime | String | 否 | 第一次呼叫时间 |
firstCallUser | String | 否 | 第一次呼叫用户 |
lastChatTime | String | 否 | 最后一次聊天时间 |
lastChatUser | String | 否 | 最后一次聊天用户 |
createAgent | String | 否 | 创建人 |
createTime | String | 否 | 创建时间 |
updateAgent | String | 否 | 更新人 |
updateTime | String | 否 | 更新时间 |
openSeaIds | String[] | 否 | 公海**ids |
callingNumber | int | 否 | 呼叫次数 |
imNumber | int | 否 | 会话次数 |
sumBridgeDuration | int | 否 | 通话总时长 |
visitorId | String | 否 | 访客**id |
wxAddState | String | 否 | 企微添加状态 1**已添加 |
自定义字段 | String | 否 | 自定义字段 |
3 查询客户列表
接口说明:可以查询当前账号下所有客户列表。
3.1 URL
POST /openapi/crm/list
3.2 请求体
字段名称 | 字段类型 | 是否必填 | 字段描述 |
search | array | 是 | 查询条件 |
-field | String | 是 | 字段名 |
-value | array | 是 | 字段值 |
-operator | String | 是 | 操作符 eq:等于 neq:不等于 empty:为空 nempty:不为空 in:包含 nin:不包含 gt:大于 gte:大于等于 lt:小于 lte:小于等于 between:之间 |
sortList | array | 是 | 排序条件 |
-field | String | 是 | 排序字段名 |
-orderBy | String | 是 | 排序方式 asc/desc |
3.3 请求参数示例
{
"search":[{"operator":"eq","value":["13231307283"],"field":"mobile"}]
}
curl --location 'http: //47.99.32.215:8081/openapi/crm/list' \
--header 'appid: 1090' \
--header 'nonce: 123456' \
--header 'timestamp: 1687792454' \
--header 'signature: 0gJctlWNzEIPu/A17MI //xV/5WwTcqp9c1cEkXwL/1Q=' \
--header 'Content-Type: application/json' \
--data '{
"limit": 1,
"page": 1,
"search": [
{
"field": "openSeaIds",
"value": [],
"operator": "empty"
}
]
}'
{
"success": true,
"message": "200 ok!",
"code": "200",
"data": {
"list": [
{
"owner": "662821403012902912",
"firstAssignTime": "2023-06-26 22:57:30",
"accountId": "1090",
"createTime": "2023-06-26 22:57:30",
"createMethod": "API",
"firstOwner": "662821403012902912",
"updateAgent": "openApi",
"updateTime": "2023-06-26 22:57:30",
"_id": "685770000643772416",
"assignTime": "2023-06-26 22:57:30",
"customerName": "testCustomer",
"createAgent": "openApi"
}
],
"count": 20
}
}
3.4 返回参数
字段名称 | 字段类型 | 是否必填 | 字段描述 |
success | bol | 是 | 成功标识 |
message | String | 是 | 接口信息 |
code | String | 是 | 状态码 “200”-成功 |
traceId | String | 是 | 请求唯一标识 |
data | Object | 是 | 返回结果 |
-count | Int | 是 | 结果数量 |
-list | array | 是 | 结果数组 |
--_id | String | 是 | id |
--accountId | String | 是 | 账号 |
--customerName | String | 否 | 客户名称 |
--owner | String | 否 | 归属人 |
--assignTime | String | 否 | 归属时间 |
--createMethod | String | 否 | 创建方式 |
--mobile | array | 否 | 手机 |
---value | String | 否 | 手机号 |
---memo | String | 否 | 备注 |
array | 否 | 邮箱 | |
---value | String | 否 | 邮箱 |
---memo | String | 否 | 备注 |
array | 否 | ||
---value | String | 否 | qq号 |
---memo | String | 否 | 备注 |
array | 否 | 微信 | |
---value | String | 否 | 微信号 |
---memo | String | 否 | 备注 |
firstOwner | String | 否 | 首次归属人 |
firstAssignTime | String | 否 | 首次归属时间 |
importBatchNumber | String | 否 | 导入批次号 |
lastCallTime | String | 否 | 最后一次呼叫时间 |
lastCallUser | String | 否 | 最后一次呼叫用户 |
firstCallTime | String | 否 | 第一次呼叫时间 |
firstCallUser | String | 否 | 第一次呼叫用户 |
lastChatTime | String | 否 | 最后一次聊天时间 |
lastChatUser | String | 否 | 最后一次聊天用户 |
createAgent | String | 否 | 创建人 |
createTime | String | 否 | 创建时间 |
updateAgent | String | 否 | 更新人 |
updateTime | String | 否 | 更新时间 |
openSeaIds | String[] | 否 | 公海**ids |
callingNumber | int | 否 | 呼叫次数 |
imNumber | int | 否 | 会话次数 |
sumBridgeDuration | int | 否 | 通话总时长 |
visitorId | String | 否 | 访客**id |
wxAddState | String | 否 | 企微添加状态 1**已添加 |
自定义字段 | String | 否 | 自定义字段 |
4、根据id查询客户
接口说明:可用此接口查询单独某个客户在系统的详细信息。
4.1、URL
GET /openapi/crm/{id}
4.2、请求示例
curl --location 'http://47.99.32.215:8081/openapi/crm/findById/685736803322032128' \
--header 'appid: 1090' \
--header 'nonce: 123456' \
--header 'timestamp: 1687792454' \
--header 'signature: 0gJctlWNzEIPu/A17MI//xV/5WwTcqp9c1cEkXwL/1Q=' \
--header 'Content-Type: application/json' \
--data '{}'
5、根据id删除客户
接口说明:删除客户资料接口,提供id即可进行删除。
5.1、URL
POST /openapi/crm/delete
5.2、请求示例
curl --location 'http://47.99.32.215:8081/openapi/crm/delete' \
--header 'appid: 1090' \
--header 'nonce: 123456' \
--header 'timestamp: 1687792102' \
--header 'signature: k/0nGQXTld3Te5wCIHtWFBYaZZdJOm/uesKTU4E1AjM=' \
--header 'Content-Type: application/json' \
--data '{
"id": "685736803368169472"
}'
{
"success": true,
"message": "200 ok!",
"code": "200",
"data": null
}
6、查询客户字段配置列表
接口:查询账号下的字段信息,主要是自定义字段的类型。方便进行新增。
6.1、URL
POST /openapi/crm/config/field/list
6.2、请求参数
字段 | 名称 | 类型 |
name | 字段名称 | String |
category | 字段分类 | List<String> |
type | 字段类型 | List<String> |
enabled | 停用/启用状态 | Boolean |
editable | 是否可编辑(自动生成的字段不可编辑) | Boolean |
6.3、请求示例
curl --location 'http: //47.99.32.215:8081/openapi/crm/config/field/list' \
--header 'appid: 1090' \
--header 'nonce: 123456' \
--header 'timestamp: 1687792102' \
--header 'signature: k/0nGQXTld3Te5wCIHtWFBYaZZdJOm/uesKTU4E1AjM=' \
--header 'Content-Type: application/json' \
--data '{}'
{
"success": true,
"message": "200 ok!",
"code": "200",
"data": [
{
"accountId": "1090",
"glFieldId": "text_6ts9_1687316347239",
"field": "text_6ts9_1687316347239",
"name": "详细地址",
"param": "text_6ts9_1687316347239",
"type": "text",
"status": 1,
"searchable": false,
"oplog": false,
"choices": null,
"options": null,
"createTime": "2023-06-21 11:02:18",
"updateTime": "2023-06-21 11:02:18",
"createAgent": "662772464553308160",
"updateAgent": "662772464553308160",
"scenes": null,
"sort": 42,
"isSystem": false,
"required": false
}
]
}
6.4、返回参数
data为List<CustomerFieldVO>CustomerFieldVO:
字段 | 名称 | 类型 |
accountId | 账户id | String |
glFieldId | 全局字段id | String |
field | 字段id | String |
name | 字段名称 | String |
param | 字段参数 | String |
type | 字段类型 | String |
status | 状态, 0: 停用; 1: 启用; -1: 删除 | int |
searchable | 是否可查询 | Boolean |
oplog | 是否记录操作日志 | Boolean |
choices | 下拉选项 | List<ChoicesDubbo> |
options | 级联选项 | CascadeOptionsDubbo |
scenes | 应用场景 | List<String> |
sort | 排序 | int |
isSystem | 是否是预置字段 | Boolean |
required | 是否必填 | Boolean |
ChoicesDubbo
字段 | 名称 | 类型 |
key | 选项key | String |
value | 选项value | String |
isDefault | 是否为默认值 | Boolean |
CascadeOptionsDubbo
字段 | 名称 | 类型 |
level | 层级 | int |
fillLevel | 几级必填 | int |
children | 次级选项列表 | List<ChildOptionDubbo> |
ChildOptionDubbo
字段 | 名称 | 类型 |
key | 选项key | String |
value | 选项value | String |
children | 次级选项 | List<ChildOptionDubbo> |
6.5、返回示例
{
"success": true,
"message": "string",
"code": "string",
"data": [
{
"accountId": "string",
"glFieldId": "string",
"field": "string",
"name": "string",
"param": "string",
"type": "string",
"status": 0,
"searchable": true,
"oplog": true,
"choices": [
{
"key": "string",
"value": "string",
"isDefault": true
}
],
"options": {
"level": 0,
"fillLevel": 0,
"children": [
{
"key": "string",
"value": "string"
}
]
},
"createTime": "string",
"updateTime": "string",
"createAgent": "string",
"updateAgent": "string",
"scenes": [
"string"
],
"sort": 0,
"isSystem": true,
"required": true
}
]
}