智能终端对接文档

接入openapi准备(接口鉴权)

调用接口准备

此项目主要用于主动调取接口进行操作鉴权

第一步:生成clientIdclientSecret

接入openapi服务,首先需要在管理后台生成clientIdclientSecret

image-20191216114615656

提醒: 请牢记clientIdclientSecret,以及生成的accessTokenrefreshToken

参数timestamp表示1970年1月1日至今的毫秒数

请求传递的数据格式为JOSN

响应值code=1表示成功,0表示失败

请求协议为https

单页数量最大为500

获取企业微信消息信息接口限制:每分钟调用20次;

获取客户列表接口限制:每分钟调用20次

获取通话记录接口限制:每分钟调用20次

获取短信记录接口限制:每分钟调用20次

注意

  1. 接口返回statusCode字段代表状态码,对应接口响应的具体情况,在异常的时候参照调用的接口可以查看具体的信息,下面是statusCode值和信息的对照表:
statusCode值(int类型) 对应信息
4004 员工不存在
4001 智能终端未联网或版本过低
4005 参数错误
4006 参数解密失败
4007 参数加密失败
4008 ip不在访问白名单
4009 接入错误,可能:未配置或者找不到配置
4015 响应解析错误
4016 响应加密错误
4017 时间格式错误
4018 时间跨度过大
4019 拉取数据量过大
  1. 加密和解密问题:

如果后台调用数据开启加密, 请求参数除了oauth相关接口不加密,其他请求一律要加密;响应返回一律都加密。具体实例可参考 接入步骤

  1. cfTs字段分页问题:

分页使用cfTs字段实现,具体是:获取第一页数据之后,用第一页的最后一条数据的cfTs字段作为参数,比如:获取一个时间段的数据,单页数量为10,获取第二页的数据,cfTs参数以第一页数据的最后一条数据的cfTs字段作为参数,即获取大于当前cfTs值的10条数据也就是第二页

第一步:获取accessToken和refreshToken

请求方式: POST

请求地址: https://wpapi.7moor.com/oauth/token/getToken

请求参数:

字段 类型 描述 是否必须
clientId string 管理后台生成 true
clientSecret string 管理后台生成 true

请求示例:

curl -X POST https://wpapi.7moor.com/oauth/token/getToken?timestamp=1562734640000 -H "Content-Type:application/json" -d '{"clientId":"0f30a37f1adca729","clientSecret":"af9cb1d2acf88264ab8477e3b8b34353"}'

成功响应(未设置加密):

{
    "code": 1,
    "msg": "",
    "data": {
        "accessToken": "70C5F5F19942DF9378422B649D3E14BD",
        "refreshToken": "F8A3F1DB4EF4DECFB3526E11C5D9C90A"
    }
}

成功响应(设置加密):

{
    "code": 1,
    "msg": "",
    "data": "FlXDoezQGhQ2s7cqG9XIwrXzNh6TJipRjzj4kDUd/eKxcsq3aCDgh98Hk6jYi3FyrihmzJoLzFfOZvjCIJgE4AQGads4oPGfgtGkLts3KRdg13oWpEV3oL5TxUaP8olykUoA3lPJOO3wbFuWBr7egntYMY6UMaMmM+1+7UQsrb4="
}

字段说明:

字段 类型 描述 是否必须
accessToken string 获取数据的令牌 true
refreshToken string 刷新accessToken的令牌 true

第二步:使用accessToken调用接口

注意:在请求params参数中带上accessToken,以下使用请求通话数据列表为例

请求示例(未设置加密):

curl -X POST https://wpapi.7moor.com/api/device/call?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"page":"1","pageSize":"10"}'

请求示例(设置加密):

curl -X POST https://wpapi.7moor.com/api/device/call?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"param":"Ub9zzRtPjebKVZ1rMerRnE932/sRT70rdHv/YA1LsQ7XFZcX/GlYZ7H4ra7iaQwuEEEVMQc3TVB4G1k8XYT6exdYK8MJECkens2ZW+bY9AZgmobdshdG85V1ZpsHEQUS"}'

成功响应(未设置加密):

{
    "code": 1,
    "msg": "",
    "data": {
            // count表示当前条件下的数据总数,而非list的数量
        "count" : 1,
        "list" : [{
                // ...
        }]
    }
}

成功响应(设置加密):

{
    "code": 1,
    "msg": "",
    "data": "LuaHTYSBSETP9q9jsiyIb1RvWL2k7C8j6qt/GKrNz6v6yYDnNNwbWXJ5V3Q/ee0bvrGPFOh6SD9dkhxCzRVlt9KxDW2GL6XGxfAs5LgK04CpK8l2vFVJ46OoD0w3/QfiIge+oTuMQEGDGDGD+3QXqVuGaXZmXVfI+tb4lXBcOSrt7RqNOM1ZWwv2V4bFPqPnjqzLiLR2hknpl3dGqWXgxE9zlg0Y3p0g1ADlrw6jap9zG8YKmSGWCxxqKqXuuVjLW7/DoTHqkxxxxxx"
}

相关说明

accessToken有效期为2个小时,当accessToken超时后,可以使用refreshToken进行刷新,accessToken刷新结果有两种:

  1. 若accessToken已超时,那么进行refreshToken会获取一个新的accessToken;

  2. 若accessToken未超时,那么进行refreshToken不会改变accessToken,但超时时间会刷新,相当于续期accessToken。

refreshToken的有效期为30天,当refreshToken失效的后,需要用户重新获取token,所以,请开发者在refreshToken即将过期时(如第29天时),进行定时的自动获取token并保存好它。

刷新accessToken

请求方式: POST

请求地址: https://wpapi.7moor.com/oauth/token/reToken

请求示例:

curl -X POST https://wpapi.7moor.com/oauth/token/reToken?timestamp=1562734640000&refreshToken=F8A3F1DB4EF4DECFB3526E11C5D9C90A

成功响应:

{
    "code": 1,
    "msg": "",
    "data": {
         // 注意:accessToken已超时才会重新生成accessToken,否则只刷新超时时间,详见相关说明
        "accessToken": "70C5F5F19942DF9378422B649D3E14BD"
    }
}

数据推送准备

此项目主要用于接收智能终端推送数据的鉴权

加解密SDK包地址

  • sdk包的获取请联系群内对接同事

说明

  • 推送方式为POST,数据传递使用JSON格式(请求头:Content-Type: application/json)

  • body为加密的字符串,加密的key为openapi颁发的clientSecret

  • 推送的数据结构如下:

字段 类型 说明 是否必须
event string 事件名 true
body string 事件内容,方式加密详见SDK true

示例:

{
    "event": "wxUser",
    // 注意,加密后的数据难以阅读,因此以下接口文档body参数以JSON方式展示
    "body": "neD0iV1eFLpIy4/F1XHFEomEfx2kV/EPMg+edO9TU/8="
}
  • 响应数据结构(第三方接收到推送数据后请按照下面的json结构响应结果)
字段 类型 说明 是否必须
code int 状态码 0 失败,1 成功 true
msg string 状态信息 false

示例:

{
    "code": 1,
    "msg": "成功!"
}
  • 失败重试:

在推送不成功的情况下,总共会发起15次重试,重试频率为15s/15s/30s/3m/10m/20m/30m/30m/30m/60m/3h/3h/3h/6h/6h - 总计 24h4m

event 字段(字符串类型)表示数据类型,说明当前推送的data属于哪类数据,以下是所有event的值:

event 说明
call 通话记录
record 通话录音
sms 短信记录
wxUser 企业微信用户
wxContact 企业微信联系人
wxChatRoom 企业微信群
wxChatRoomMember 群成员
wxChat 企业微信会话
wxMessage 企业微信消息
wxMedia 企业微信多媒体消息
updateUserInfo 更新员工登录手机号
customer 客户信息推送
  • 建议接受推送后校验数据的完整性即响应推送服务,避免请求一直挂起

员工和设备对接

员工和设备对接包括:获取设备信息、员工信息同步和获取员工外出轨迹

获取设备信息

接入前请确认已完成接入openapi准备(接口鉴权)

应用场景:查询已购买手机的当前使用情况

请求方式: POST

请求地址: https://wpapi.7moor.com/api/device/devices

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求Body:

字段 类型 描述 是否必须
page int 页码 true
pageSize int 单页数量 true
isFree bool 是否空闲(登出)设备:true空闲,false非空闲 false
status string 设备状态:online在线,offline离线 false
imeiOrMemo string IMEI或备注 false

请求示例:

curl -X POST https://wpapi.7moor.com/api/device/devices?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"page":1,"pageSize":10,"imeiOrMemo":"张三的手机","isFree": false,"status":"online"}'

成功响应:

{
    "code": 1,
    "msg": "",
    "data": {
        "count": 7,
        "list": [
            {
                "id": "a919e0bf-90e3-11e9-9b59-0242ac110005",
                "no": 1,
                "imei": "860113046800736",
                "brand": "xiaomi",
                "model": "Redmi 7",
                "phone1": "133xxxx4075",
                "status": "offline",
                "wechat": "yo小号",
                "wechatHead": "http://wx.qlogo.cn/mmhead/ver_1/qp31OPiahuiaZ3hZD2QRHGU8wT0lDI1nfu8bVq16dy8FyuN4zicicfLCDZMPUJWBKtAvk0CiaKm9mEFpiaCLSkq3UM3WJ2KyxnefY0SiaHQ0xa4EQI/96",
                "firstTime": "2019-06-20 11:39:44",
                "department": "无部门"
            }
        ]
    }
}

字段说明:

字段 类型 说明 是否必须
id string 设备的唯一id true
no int64 设备编号 true
imei string 设备IMEI码 true
brand string 手机品牌 true
model string 设备型号 true
phone string 卡槽1号码 false
phone1 string 卡槽2号码 false
memo string 设备备注 false
status string 设备状态 true
wechat string 企业微信昵称 false
wechatHead string 企业微信头像 false
uid string 员工id false
uName string 员工名称 false
firstTime string 激活时间 false
logoutTime string 最近一次登出时间 false
department string 当前登录员工所属部门 false

员工信息同步

接入前请确认已完成接入openapi准备(接口鉴权)

主要用于查询和同步员工信息

  • 通过“1、获取员工信息列表”接口查询智能终端员工信息,员工ID在调用接口时会频繁使用,需提前做好双方员工映射关系;

  • 为及时同步智能终端已有员工信息变更,需使用“2、员工信息更新推送”同步信息给第三方系统

1、获取员工信息列表

请求方式: POST

请求地址: https://wpapi.7moor.com/api/crm/getUsers

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求示例:

curl -X POST https://wpapi.7moor.com/api/crm/getUsers?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD 

成功响应:

{
    "code": 1,
    "msg": "",
    "data": {
        "list":[
            {
                "_id": "agiew74717516969",
                "name": "张三",
                "phone": "138xxxx9999"
            }
        ]
    }
}

字段说明:

字段 类型 描述
_id string 员工id编号
name string 员工姓名
phone string 员工手机

2、获取单个员工信息

请求方式: POST

请求地址: https://wpapi.7moor.com/api/v2/crm/getUserInfo

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求body:

{
    "phone": "13212345678" 
}

字段说明:

字段 类型 描述 是否必须
phone string 员工电话 true

请求示例:

curl -X POST https://wpapi.7moor.com/api/v2/crm/getUserInfo?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"phone":"13212345678"}'

成功响应:

{
    "code": 1,
    "msg": "",
    "data":  {
        "_id" : "297",
        "name" : "张三",
        "phone" : "13212345678"
    }
}

字段说明:

字段 类型 描述
_id string 员工id编号
name string 员工姓名
phone string 员工手机

3、员工信息更新推送

要使用此推送需前往智能终端管理后台—设置—高级设置—系统对接中配置推送地址

event: "updateUserInfo"

image-20191216192722319

字段说明:

字段 类型 说明 是否必须
_id string 员工的唯一id true
name string 员工的姓名 true
phone string 员工的登录手机号 true

推送示例:

{
  "event" : "updateUserInfo",
  "body" : {
    "_id" : "0e4ccc60-8b6e-4693-87d4-f7d84bf57bf5",
    "name" : "张三",
    "phone" : "136xxxx3333"
    }
}

获取员工外出轨迹

接入前请确认已完成接入openapi准备(接口鉴权)

应用场景:主要用于统计智能终端的外出轨迹信息

接入准备:此功能需向对接人员申请开通,开通后在智能终端管理后台启用并配置相关信息

image-20191217101028895

请求方式:POST

请求地址:http://wpapi.7moor.com/api/device/getLocationMovingTrackData

参数说明:

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

JSON :

字段 类型 描述 是否必须
page int 页码 true
pageSize int 单页数量 true
uids []string 查询轨迹的员工ID列表,空值时查询全部员工 false
start string 记录开始日期,格式:2019-12-11 false
end string 记录结束日期:格式:2019-12-11 false

请求示例:

curl -X POST http://wpapi.7moor.com/api/device/getLocationMovingTrackData?timestamp=1596061711241&accessToken=42100C216728DFD60AF172E16E3402EA20191211191321 -H "Content-Type:application/json" -d '{"page":1,"pageSize":10,"uids":null,"start":"2019-12-04","end":"2019-12-04"}'

成功响应:

{
    "code":1,
    "msg":"",
    "data":{
        "count": 2,
        "list":[
            {
                "uid":"76591e8d-a9cb-11e9-9a95-0242ac110009",
                "day":"2019-12-04",
                "movingTrack":[
                    {
                        "longitude":104.063256,
                        "latitude":30.554429,
                        "datetime":"2019-12-04 01:06:34"
                    },
                    {
                        "longitude":104.063256,
                        "latitude":30.554429,
                        "datetime":"2019-12-04 01:06:43"
                    }
                ]
            }
        ]
    }
}

字段说明:

字段 类型 说明 是否必须
count int 查询到的记录总数量
list array 查询到的记录详情数组
uid string 员工唯一ID true
day string 轨迹记录日期,格式:2019-12-11 true
movingTrack array 移动轨迹数组 true
movingTrack.longitude float64 轨迹点经度 true
movingTrack.latitude float64 轨迹点纬度 true
movingTrack.datetime string 轨迹点时间,格式:2019-12-11 00:00:00 true

轨迹绘制说明

我们的经纬度使用高德地图采集,使用其他地图服务商请自行转换经纬度,如需在页面中展示轨迹地图,请查看高德地图轨迹线绘制参考文档

客户数据同步

接入前请确认已完成接入openapi准备(接口鉴权)

客户数据对接需要将第三方系统数据同步到智能终端,同步时请按照下方接口顺序调用

1、获取客户字段模版

2、获取公海列表

3、获取客户列表

4、批量添加客户

5、批量删除客户

6、修改客户信息(支持自动新增客户和传输客户字段所有数据自动修改)

7、智能终端客户数据变更推送(若不在智能终端操作客户数据,可忽略此步)

1、获取客户字段模版

应用场景:同步数据前需要调用此接口查询客户字段类型

请求方式: POST

请求地址: https://wpapi.7moor.com/api/crm/customerTmp

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求示例:

curl -X POST https://wpapi.7moor.com/api/crm/customerTmp?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD 

成功响应:

{
    "code": 1,
    "msg": "",
    "data": {
        "fieldMap":{
            "name":"姓名",
            "companyName":"公司",  
            "job":"职务",
            "phone":"电话",
            "sourceId":"来源",   //可通过来源列表获取id
            "customerStatus":"客户状态", //见字段说明  
            "tags":"标签",   //可通过标签模版获取标签id
            "pool":"公海",   //可通过公海列表获取id
            "sex":"性别",   //"1":男,"2":女,"0":未知
            "prov_city":"省市",
            "email":"邮箱",
            "birthday":"生日",
            "addressfull":"详细地址",
            "remark":"备注",
            "owner":"跟进人",       //可通过员工列表获取id
            "shareIds":"共享成员",  //可通过员工列表获取id
            "wxNo":"企业微信号",  
            "filed1":"自定义字段1", 
            "filed2":"自定义字段2" 
         }
    }
}

字段说明:

customerStatus:{
        "effective":    "有效客户",
        "invalid":      "无效客户",
        "signatureing": "待签客户",
        "lost":         "丢单客户",
        "success":      "成单客户",
        "repeat":       "复购客户",
        "potential":    "潜在客户",
        "clue":         "线索客户"
}

sex:  {
        "0": "未知",
        "1": "男",
        "2": "女"
}   

字段说明:

字段 类型 描述
name string 姓名
companyName string 公司
job string 职务
phone string 电话
sourceId string 来源
customerStatus string 客户状态
tags string 标签
pool string 公海
sex string 性别
prov_city string 省市
email string 邮箱
birthday string 生日
addressfull string 详细地址
remark string 备注
owner string 跟进人
shareIds []string 共享成员
wxNo string 企业微信号
filed1 string 自定义字段1(自定义字段均以filed开头)
filed2 string 自定义字段2

获取客户来源key-value模版

请求方式: POST

请求地址: https://wpapi.7moor.com/api/crm/customerSource

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求示例:

curl -X POST https://wpapi.7moor.com/api/crm/customerSource?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD 

成功响应:

{
    "code": 1,
    "msg": "",
    "data": {
        "marketActivity":"市场活动",
        "socialPromotion":"社交推广",
        "personalDevelopment":"个人开发",
        "searchEngines":"搜索引擎",
        "customerIntroduction":"客户介绍",
        "other":"其他",
        "7c452c1c-17fc-11ea-874e-542696cd507f":"自定义来源1"
    }
}

获取客户标签key-value模版

请求方式: POST

请求地址: https://wpapi.7moor.com/api/crm/customertags

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求示例:

curl -X POST https://wpapi.7moor.com/api/crm/customertags?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD 

成功响应:

{
    "code": 1,
    "msg": "",
    "data": {
          "uuid1":"热门",
          "uuid2":"重要"             
    }
}

2、获取公海列表

应用场景:添加客户时支持通过接口直接将客户添加到公海,调用此接口可获取系统已有公海信息,若需配置公海信息,可前往智能终端管理—设置—客户设置—公海管理中配置

image-20191217120037817

请求方式: POST

请求地址: https://wpapi.7moor.com/api/crm/getPoolList

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求示例:

curl -X POST https://wpapi.7moor.com/api/crm/getPoolList?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD 

成功响应:

{
    "code":1,
    "msg":"",
    "data":[
        {
            "_id" : "String",
            "admins" : ["xx"],
            "expireIn" :
                {
                    "day" : 1,
                    "hour" : 2,
                    "minute" : 3,
                },
            "prewarningTime" :
                {
                    "day" : 1,
                    "hour" : 2,
                    "minute" : 3,
                },
            "maxPerPerson" : 4,
            "members" : ["xx0", "xx1"],
            "departments" : ["xx0", "xx1"],
            "isAllDepartment":false,
            "name" : "String",
            "policy" : "String",
            "statusChangePolicy" : "String"
            "followPolicy":["xx"],
            "type":"string"
        }
    ]
}

字段说明:

字段 类型 说明
_id string 公海主键id
name string 公海名称
admins []string 管理员uid集合
isAllDepartment bool 成员列表-是否全公司
members []string 成员列表-员工uid集合
departments []string 成员列表-部门id集合
policy string 领取策略 assign:"公海领取规则-分配" get:"公海领取规则-领取"
maxPerPerson int 最大持有量
statusChangePolicy string 状态变更策略 manually:"公海回收状态规则-手动回收" auto:"公海回收状态规则-自动回收"
expireIn object 超时策略 {"day":1,"hour":24,"minute":60}
prewarningTime object 预提示时间 {"day":1,"hour":24,"minute":60}
followPolicy []string 有效行为 newCall-已接通话 newWxRecord-企业微信记录 newFollow-发布根据记录 newSales-新增销售机会
type string 公海类型 customDefine-自定义新增 systemSet-系统预设

3、获取客户列表

应用场景:拉取智能终端客户列表客户数据,若需双向同步智能终端与第三方系统客户数据,需设置客户之间映射关系

接口限制:每分钟调用20次;单次数量最大为500;开始—结束时间跨度不超过30

请求方式: POST

请求地址: https://wpapi.7moor.com/api/v2/crm/getCustomeres

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求body:

{
    "userPhone": "15883434323",     
    "start": "2020-01-08 15:04:05",
    "end": "2020-01-09 15:04:05",
    "cfTs": 100000000,
    "pageSize": 100  
}

字段说明:

字段 类型 描述 是否必须
start string 开始时间(创建时间,查询时间跨度不超过30天) true
end string 结束时间(创建时间) true
userPhone string 员工的手机号码(可筛选当前员工的客户) false
cfTs uint64 筛选条件(返回大于此值的数据) false
pageSize int 分页尺码(最大值500) true

请求示例:

curl -X POST https://wpapi.7moor.com/api/v2/crm/getCustomeres?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD 

成功响应:

{
    "code": 1,
    "msg": "",
    "data": {
        "count": 100,
        "list": [
                {
                  "_id": "uuid",                  
                  "owner": "uuid",                
                  "ownerName": "跟进人1",         
                  "customerStatus": "clue",       
                  "price": 00,                    
                  "tags": [
                    "tags_id_01",
                    "tags_id_02"
                  ],                             
                  "shareIds": [
                    "uuid_01"
                  ],                              
                  "sourceId": "source_id",        
                  "source": "来源01",             
                  "name": "客户姓名",              
                  "companyId": "company_id_01",  
                  "companyName": "公司1",         
                  "job": "职务01",               
                  "phone": [
                    {
                      "display": "手机",         
                      "type": "mobile",         
                      "tel": "132xxxx5678"      
                    }
                  ],                            
                  "pool": "pool_id_01",        
                  "poolName": "公海名称",         
                  "creator": "uuid",               
                  "creatorName": "创建人名称",        
                  "sex": "1",                    
                  "prov_city": "河北省-秦皇岛市-山海关区", 
                  "email": "",                    
                  "birthday": "",                 
                  "address": "成都北路 上海市静安区",
                  "addressfull": "",              
                  "remark": "",                   
                  "wxNo": "",                     
                  "wxNick": "",                    
                  "createTime": "yyyy-MM-dd HH:mm:ss", 
                  "getTime": "yyyy-MM-dd HH:mm:ss", 
                  "lastTime": "yyyy-MM-dd HH:mm:ss",
                  "logTime": "yyyy-MM-dd HH:mm:ss",
                  "cfTs": 100000000, 
                  // 自定义字段
                }
        ]           
    }
}

字段说明:

字段 类型 描述
_id string 客户主键id
name string 客户姓名
companyId string 公司id
companyName string 公司名称
job string 职务
phone []object 电话
sourceId string 来源Id
source string 来源名称
customerStatus string 客户状态
tags []string 标签id数组
pool string 公海id
poolName string 公海名称
sex string 性别
prov_city string 省市
email string 邮箱
birthday string 生日
addressfull string 详细地址
remark string 备注
owner string 跟进人
ownerName string 跟进人姓名
shareIds []string 共享成员
wxNo string 企业微信号
wxNick string 企业微信昵称
createTime string 创建时间
getTime string 获取客户时间
lastTime string 最近修改时间
logTime string 最近联系时间
creator string 创建人id
creatorName string 创建人姓名
price int64 销售机会金额
cfTs uint64 筛选条件(返回大于此值的数据)

字段说明:

customerStatus:{
        "effective":    "有效客户",
        "invalid":      "无效客户",
        "signatureing": "待签客户",
        "lost":         "丢单客户",
        "success":      "成单客户",
        "repeat":       "复购客户",
        "potential":    "潜在客户",
        "clue":         "线索客户"
}

sex:  {
        "0": "未知",
        "1": "男",
        "2": "女"
}       

phone字段说明:

字段 类型 说明
display string 显示名称(该号码的备注)
type string 类型:mobile,landline,other
tel string 号码

4、批量添加客户

应用场景:通过接口批量创建客户

请求方式: POST

请求地址: https://wpapi.7moor.com/api/crm/batchAddCustomer

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求body:

{
  "list":[{
      "name":"张三",
      "companyName":"李白清公司",  
      "job":"经理",
      "phone":"138xxxx0000",
      "sourceId":"",                              
      "tags":["tag1","tag2"],              
      "pool":"公海id",                     
      "sex":"0",                           
      "prov_city":"四川省成都市",
      "email":"4999999@qq.com",
      "birthday":"2019-12-12",
      "addressfull":"四川省成都市高新区999号",
      "remark":"备注",
      "owner":"",                        
      "shareIds":["uid1","uid2"],        
      "wxNo":"企业微信号"  

      // 自定义字段
    }]
}

字段说明:

字段 类型 描述 是否必须
name string 姓名 true
companyName string 公司名称 false
job string 职务 false
phone string 电话号码 false
sourceId string 来源id false
tags []string 标签id数组 false
pool string 公海id false
sex string 性别 false
prov_city string 省市 false
email string 邮箱 false
birthday string 生日 false
addressfull string 详细地址 false
remark string 备注 false
owner string 员工id false
shareIds []string 共享成员 false
wxNo string 企业微信号 false
自定义字段 自定义字段 false

请求示例:

curl -X POST https://wpapi.7moor.com/api/crm/batchAddCustomer?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD 

成功响应:

{
    "code": 1,
    "msg": "增加成功",
    "data": {
        "failList": [],
        "successCidList": [
            "a5511d68-be6b-11e9-9bbe-a0999b1a254b"
        ]
    }
}

字段说明:

字段 类型 说明
failList array 失败数据集合
successCidList array 插入成功的客户id集合

5、批量删除客户

接口限制:每分钟调用20次;单次最大限制500

请求方式: POST

请求地址: https://wpapi.7moor.com/api/crm/delCustomer

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求body:

{
    "ids": ["a5511d68-be6b-11e9-9bbe-a0999b1a254b"]
}

字段说明:

字段 类型 描述 是否必须
ids []string 客户主键id数组 true
请求示例:
curl -X POST https://wpapi.7moor.com/api/crm/delCustomer?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"ids": ["a5511d68-be6b-11e9-9bbe-a0999b1a254b"]}'

成功响应:

{
    "code": 1,
    "msg": "删除成功",
    "data": {}
}

6、修改客户信息

应用场景:同步第三方系统客户数据到智能终端系统;支持只同步修改字段数据或同步客户所有字段数据,智能终端自动更新;若客户不存在,自动创建客户;不支持删除客户,删除客户请单独调用批量删除客户接口

请求方式: POST

请求地址: https://wpapi.7moor.com/api/crm/addOrUptCustomer

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求body-有_id更新:

{
        "_id": "a5511d68-be6b-11e9-9bbe-a0999b1a254b"
        "companyName": "托尔斯泰"
        "name": "张三",
        "phone": [],
        "owner": "uid",
        "address": "成都市", 
        "remark":"备注",
        "job": "经理", 
        "email":"邮箱",
        "birthday":"生日",
        "shareIds": ["uid1","uid2"],
        "pool": "公海id",
        "wxNo": "wxNo",
}

字段说明:

字段 类型 描述 是否必须
name string 姓名 true
companyName string 公司名称 false
job string 职务 false
phone []object 电话号码 true
sourceId string 来源id false
customerStatus string 客户状态,新增客户无效 false
tags []string 标签id数组 false
pool string 公海id false
sex string 性别 false
prov_city string 省市 false
email string 邮箱 false
birthday string 生日 false
addressfull string 详细地址 false
remark string 备注 false
owner string 员工id false
shareIds []string 共享成员 false
wxNo string 企业微信号 false
自定义字段 自定义字段 false

请求body-无_id新增:

{
   "name":"张三",
   "companyName":"李白清公司",  
   "job":"经理",
   "phone":"138xxxx0000",
   "sourceId":"",                       
   "customerStatus":"客户状态",           
   "tags":["tag1","tag2"],              
   "pool":"公海id",                      
   "sex":"0",                          
   "prov_city":"四川省成都市",
   "email":"4999999@qq.com",
   "birthday":"2019-12-12",
   "addressfull":"四川省成都市高新区999号",
   "remark":"备注",
   "owner":"",                         
   "shareIds":["uid1","uid2"],         
   "wxNo":"企业微信号"  

   自定义字段
}

字段说明:

字段 类型 描述 是否必须
name string 姓名 true
companyName string 公司名称 false
job string 职务 false
phone string 电话号码 true
sourceId string 来源id false
customerStatus string 客户状态 false
tags []string 标签id数组 false
pool string 公海id false
sex string 性别 false
prov_city string 省市 false
email string 邮箱 false
birthday string 生日 false
addressfull string 详细地址 false
remark string 备注 false
owner string 员工id false
shareIds []string 共享成员 false
wxNo string 企业微信号 false

请求示例:

curl -X POST https://wpapi.7moor.com/api/crm/addOrUptCustomer?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD 

成功响应:

{
    "code": 1,
    "msg": "",
    "data": {}
}

7、智能终端客户数据变更推送

应用场景:将系统中客户的变更数据推送到第三方系统,需提前在智能终端管理后台—设置—高级设置—对接设置中配置推送地址

image-20200113201100188

event: "customer"(客户)

更新UPDATE/新增ADD示例-body字段说明:

字段 类型 说明
type string 客户信息变更类型
list []object 客户信息对象数组
_id string 主键Id
name string 客户姓名
phone []object 客户电话
ownerName string 跟进人姓名
owner string 跟进人id
sex string 性别
email string 邮箱
remark string 备注
birthday string 生日
job string 职务
prov_city string 省市
price int64 销售机会金额
addressfull string 详细地址
address string 定位地址
customerStatus string 客户状态
shareIds []string 共享成员id数组
sourceId string 来源id
source string 来源名称
wxNo string 企业微信号
wxNick string 企业微信昵称
headImg string 头像
poolName string 公海名称
pool string 公海id
tags []string 标签id数组
companyId string 公司id
companyName string 公司名称
createTime string 创建时间
getTime string 领取时间
lastTime string 最后变更时间
logTime string 最近联系时间
onlyCode string 客户唯一码
{
  "event": "customer",
  "body": {
     "type":"UPDATE/ADD",
     "list":[ {
                 "_id" : "f2e98447-ffb3-11e9-af1a-0242ac110003",       
                 "name" : "张小兵",
                 "phone" : [ 
                             {
                                "type" : "mobile",
                                "display" : "手机",
                                "tel" : "153xxxx3075"
                             }
                           ],
                 "ownerName" : "张杰",                               
                 "owner" : "d08eb8c8-cfb5-11e9-a5d6-0242ac110004",
                 "sex" : "0",
                 "email" : "7777777@qq.com",  
                 "remark" : "备注",     
                 "birthday" : "生日", 
                 "job" : "经理", 
                 "prov_city" : "四川省成都市",                                  
                 "price" : 123457536609,
                 "address" : "四川省成都市武侯区高新区天府一街吉瑞四路307号",
                 "addressfull" : "四川省成都市武侯区高新区天府一街吉瑞四路307号",                 
                 "customerStatus" : "success",
                 "shareIds" : ["7b390cb5-fa02-11e9-ac6d-0242ac110003"],
                 "source" : "市场活动",
                 "sourceId" : "marketActivity",
                 "wxNo" : "企业微信号",
                 "wxNick" : "老马",                              
                 "headImg" : "http://wx.qlogo.cn/mmhead/ver_1/MJGiaClVIc7Fo8qBx3k1eLYv4Yr98FyOWHeiaXw5Mkx7Syn8VGAtkZ2tCxRKM88pVlA7ljYDTkSC8Nqsg6rXIP7bibTBCNXiaygU7bibscSJ1Cqk/96",
                 "poolName" : "待领取",
                 "pool" : "c0c8e946-dde6-11e9-818d-acbc3293876b",
                 "tags" : ["id1","id2"],
                 "companyId" : "c0c8e946-dde6-11e9-818d-acbc3293876",
                 "companyName" : "成都的公司",
                 "createTime" : "2019-11-05 18:06:35",
                 "getTime" : "2020-01-08 11:28:39",                 
                 "lastTime" : "2020-01-08 11:28:47",
                 "logTime" : "2019-12-27 17:42:57",
                 "cfTs" : 277063928058479e17,                 
                 "onlyCode" : "code_0zAAL2pg"
            }]            
  }
}

删除DEL示例-body字段说明:

字段 类型 说明
type string 客户信息变更类型
list []string 客户id数组
{
  "event": "customer",
  "body": {
     "type":"DEL",
     "list":["id1","id2"]            
  }
}

字段说明:

customerStatus:{
        "effective":    "有效客户",
        "invalid":      "无效客户",
        "signatureing": "待签客户",
        "lost":         "丢单客户",
        "success":      "成单客户",
        "repeat":       "复购客户",
        "potential":    "潜在客户",
        "clue":         "线索客户"
}

sex:  {
        "0": "未知",
        "1": "男",
        "2": "女"
}   

phone字段说明:

字段 类型 说明
display string 显示名称(该号码的备注)
type string 类型:mobile,landline,other
tel string 号码

8、获取客户企业微信是否绑定

应用场景:获取客户的企业微信号是否已经被绑定过

请求方式: POST

请求地址: https://wpapi.7moor.com/api/crm/getCustomerIsBind

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求body:

{
  "cid": "305f30ab-06ba-11ea-855e-0242ac110004"
}

字段说明:

字段 类型 描述 是否必须
cid string 客户id true

请求示例:

curl -X POST https://wpapi.7moor.com/api/crm/getCustomerIsBind?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD 

成功响应:

{
    "code": 1,
    "msg": "",
    "data": {
        "bind": true
    }
}

字段说明:

字段 类型 描述
bind bool ture 绑定 false 未绑定

9、获取客户字段设置模版

应用场景:获取客户字段设置模版

请求方式: POST

请求地址: https://wpapi.7moor.com/api/crm/customerTmpDetail

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求body:

{}

请求示例:

curl -X POST https://wpapi.7moor.com/api/crm/customerTmpDetail?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD 

成功响应:

{
    "code": 1,
    "msg": "",
    "data": {
          // 自定义字段
        "custom": [
            {
                "enable": true,
                "id": "filed0",
                "require": false,
                "show": "自定义单行文本",
                "type": "single"
            },
            {
                    "enable": true,
                "id": "filed1",
                "require": false,
                "show": "自定多选框",
                "type": "checkbox",
                "choices": [
                    "选项0",
                    "选项1",
                    "选项2"
               ]
            }   
            // ...
        ],
        // 系统预设字段
        "stable": [
            {
                "require": true,
                "show": "姓名",
                "type": "single",
                "enable": true,
                "id": "name"
            }
            // ...
        ]    
    }
}

字段说明:

字段 类型 描述 是否必须
id string 字段的key true
show string 字段显示的值 true
type string 字段的类型(下面会对类型做解释) true
enable bool 是否启用(启用:true) true
require bool 是否必填(必填:true) true
choices array 自定义选项 False

字段的类型(type):

注意以下各个类型的自定义字段值都是字符串类型

key value
date 日期
datetime 日期时间
single 单行文本
multi 多行文本
radio 单选
checkbox 多选
number 数字

10、通过号码获取客户详情

请求方式: POST

请求地址: https://wpapi.7moor.com/api/crm/getCustomerInfo

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求body:

{
    "phone": "13212345678"
}

字段说明:

字段 类型 描述 是否必须
phone string 客户电话号码 true

请求示例:

curl -X POST https://wpapi.7moor.com/api/crm/getCustomerInfo?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"phone":"13212345678"}'

成功响应:

{
    "code": 1,
    "msg": "",
    "data": {
        "_id": "uuid",                  
        "owner": "uuid",                
        "ownerName": "跟进人1",         
        "customerStatus": "clue",       
        "price": 00,                    
        "tags": [
            "tags_id_01",
            "tags_id_02"
        ],                             
        "shareIds": [
            "uuid_01"
        ],                              
        "sourceId": "source_id",        
        "source": "来源01",             
        "name": "客户姓名",              
        "companyId": "company_id_01",  
        "companyName": "公司1",         
        "job": "职务01",               
        "phone": [
            {
                "display": "手机",         
                "type": "mobile",         
                "tel": "132xxxx5678"      
            }
        ],                            
        "pool": "pool_id_01",        
        "poolName": "公海名称",         
        "creator": "uuid",               
        "creatorName": "创建人名称",        
        "sex": "1",                    
        "prov_city": "河北省-秦皇岛市-山海关区", 
        "email": "",                    
        "birthday": "",                 
        "address": "成都北路 上海市静安区",
        "addressfull": "",              
        "remark": "",                   
        "wxNo": "",                     
        "wxNick": "",                    
        "createTime": "yyyy-MM-dd HH:mm:ss", 
        "getTime": "yyyy-MM-dd HH:mm:ss", 
        "lastTime": "yyyy-MM-dd HH:mm:ss",
        "logTime": "yyyy-MM-dd HH:mm:ss",
        "cfTs": 100000000, 
        // 自定义字段
    }
}

字段说明:

字段 类型 描述
_id string 客户主键id
name string 客户姓名
companyId string 公司id
companyName string 公司名称
job string 职务
phone []object 电话
sourceId string 来源Id
source string 来源名称
customerStatus string 客户状态
tags []string 标签id数组
pool string 公海id
poolName string 公海名称
sex string 性别
prov_city string 省市
email string 邮箱
birthday string 生日
addressfull string 详细地址
remark string 备注
owner string 跟进人
ownerName string 跟进人姓名
shareIds []string 共享成员
wxNo string 企业微信号
wxNick string 企业微信昵称
createTime string 创建时间
getTime string 获取客户时间
lastTime string 最近修改时间
logTime string 最近联系时间
creator string 创建人id
creatorName string 创建人姓名
price int64 销售机会金额
cfTs uint64 筛选条件(返回大于此值的数据)

字段说明:

customerStatus:{
        "effective":    "有效客户",
        "invalid":      "无效客户",
        "signatureing": "待签客户",
        "lost":         "丢单客户",
        "success":      "成单客户",
        "repeat":       "复购客户",
        "potential":    "潜在客户",
        "clue":         "线索客户"
}

sex:  {
        "0": "未知",
        "1": "男",
        "2": "女"
}       

phone字段说明:

字段 类型 说明
display string 显示名称(该号码的备注)
type string 类型:mobile,landline,other
tel string 号码

11、通过id获取客户详情

请求方式: POST

请求地址: https://wpapi.7moor.com/api/crm/getCustomerInfoById

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求body:

{
    "id": "xxx"
}

字段说明:

字段 类型 描述 是否必须
id string 客户主键id true

请求示例:

curl -X POST https://wpapi.7moor.com/api/crm/getCustomerInfoById?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"id":"xxx"}'

成功响应:

{
    "code": 1,
    "msg": "",
    "data": {
        "_id": "uuid",                  
        "owner": "uuid",                
        "ownerName": "跟进人1",         
        "customerStatus": "clue",       
        "price": 00,                    
        "tags": [
            "tags_id_01",
            "tags_id_02"
        ],                             
        "shareIds": [
            "uuid_01"
        ],                              
        "sourceId": "source_id",        
        "source": "来源01",             
        "name": "客户姓名",              
        "companyId": "company_id_01",  
        "companyName": "公司1",         
        "job": "职务01",               
        "phone": [
            {
                "display": "手机",         
                "type": "mobile",         
                "tel": "132xxxx5678"      
            }
        ],                            
        "pool": "pool_id_01",        
        "poolName": "公海名称",         
        "creator": "uuid",               
        "creatorName": "创建人名称",        
        "sex": "1",                    
        "prov_city": "河北省-秦皇岛市-山海关区", 
        "email": "",                    
        "birthday": "",                 
        "address": "成都北路 上海市静安区",
        "addressfull": "",              
        "remark": "",                   
        "wxNo": "",                     
        "wxNick": "",                    
        "createTime": "yyyy-MM-dd HH:mm:ss", 
        "getTime": "yyyy-MM-dd HH:mm:ss", 
        "lastTime": "yyyy-MM-dd HH:mm:ss",
        "logTime": "yyyy-MM-dd HH:mm:ss",
        "cfTs": 100000000, 
        // 自定义字段
    }
}

字段说明见第10项

12、添加跟进记录

请求方式: POST

请求地址: https://wpapi.7moor.com/api/crm/addFollowRecord

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求body:

{
    "uid":"xxx",
    "cid":"xxx", 
    "content": "测试内容"
}

字段说明:

参数 类型 解释 是否必须传
uid string 员工id true
cid string 客户Id true
content string 跟进记录内容,最多1000个字 true
createTime string 创建时间(yyyy-MM-dd HH:mm:ss),默认使用当前时间 false

请求示例:

curl -X POST https://wpapi.7moor.com/api/crm/addFollowRecord?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"localPhone":"18866666666","cid":"xxx", "content": "测试内容"}'

成功响应:

{
    "code": 1,
    "msg": "添加跟进记录成功",
    "data": null
}

13、第三方外呼接入

  • 目前只支持小号外呼对接

第一步:提供外呼接口,保证可以外网访问,并且符合如下条件

请求方式:POST

参数:

字段 类型 备注
cid string 客户唯一id
userPhone string 员工注册手机号
callPhone string 外呼号码,一般指被叫客户号码
callType string 外呼方式Id,调用拨打电话 接口使用

参数类型:JSON,即 curl -X POST http://xxx.xxx.xxx -H "Content-Type:application/json" -d {}

返回值:成功:{"code": 1, msg: "xxx"}, 失败code != 1 即可

第二步:联系群内对接人员配置外呼接口

通话短信数据对接

通话记录同步

注意:通话录音(soundUrl)是原始的文件地址,可能包含特殊字符(比如空格、“+”),在浏览器中访问录音资源需要将“+”替换成“%2B”,空格一般会默认转译(比如谷歌浏览器会将空格默认转为“%20”),如果没有请自行转译,遇到问题可以联系我们的对接人员协助处理

对接通话记录需要进行三步操作

第一步:获取通话记录;

第二步:新增通话记录推送到第三方系统(若对通话记录数据时效性要求不高可忽略此步骤);

第三步:由于通话录音生成有延迟,生成好的录音需要推送到对应通话记录中;

1、获取通话记录

接入前请确认已完成接入openapi准备(接口鉴权)

应用场景:获取智能终端系统中已产生的通话记录,由于通话录音生成有延迟,部分通话记录中没有录音地址,需要后续调用此接口重新获取

接口限制:每分钟调用20次;单次数量最大为500;通话记录开始—结束时间跨度不超过30

请求方式: POST

请求地址: https://wpapi.7moor.com/api/v2/device/call

参数说明:

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求Body:

字段 类型 描述 是否必须
pageSize int 单页数量 true
imeiOrName string IMEI或设备持有人 false
contactTel string 联系号码 false
callType string 通话类型:in呼入,out外呼 false
start string 开始时间 (呼叫时间,查询时间跨度不能超过30天) true
end string 结束时间(呼叫时间) true
callId []string 第三方自定义该值(请确保唯一性),方便快速匹配通话记录或录音 false
cfTs uint64 筛选条件(返回大于此值的数据) false

请求示例:

curl -X POST https://wpapi.7moor.com/api/v2/device/call?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"pageSize":10,"imeiOrName":"张三","callType":"in","start":"2019-06-17 11:11:11","end":"2019-06-18 12:12:12"}'

成功响应:

{
    "code": 1,
    "msg": "",
    "data": {
        "count" : 1,
        "list" : [
            {
                "id" : "0e4ccc60-8b6e-4693-87d4-f7d84bf57bf5",
                "did" : "e1ec479c-971f-11e9-b311-0242ac120002",
                "imei" : "867183048059394",
                "callType" : "out",
                "connectType" : "disconnected",
                "localTel" : "133xxxx3333",
                "uid" : "076f2acf-e810-4bc0-9c31-bbc21135709d",
                "uName" : "川普",
                "contactTel" : "150xxxx3333",
                "contactName" : "奥巴马",
                "beginTime" : "2019-06-26 11:01:49",
                "endTime" : "2019-06-26 11:02:50",
                "duration" : 61,
                "soundUrl" : "cf-workphone.oss-cn-hangzhou.aliyuncs.com/originalRecord/P00000000024/201907/20190708172233-19926022861-outCall-1562577753335.mp3",
                "callId": "uuid",
                "address": "四川省成都市高新区环球中心",
                "longitude": 102.123456,
                "latitude": 34.123456,
                "cfTs": 1231654681
            }
        ]
    }
}

字段说明:

字段 类型 说明 是否必须
id string 通话记录的唯一id true
did string 设备id true
imei string 设备IMEI码 true
callType string 呼叫类型( in:呼入,out:呼出) true
connectType string 通话类型("connected":接通,"disconnected":未接通) true
localTel string 本机号码 true
uid string 当时设备持有员工id true
uName string 当时设备持有员工name true
contactTel string 联系号码 true
contactName string 当时联系号码通讯录名称 false
beginTime string 呼通时间(例如:2006-01-02 15:04:05) true
endTime string 挂机时间(例如:2006-01-02 15:05:06) true
duration int 录音时长(例如:61) false
soundUrl string 录音地址,"not_found":录音未找到, "copy_fail":录音拷贝失败,"multiple_call_lose":多通通话录音丢失 false
callId string 第三方自定义该值(请确保唯一性),方便快速匹配通话记录或录音 false
address string 通话时定位中文地址 false
longitude float64 通话时定位经度 false
latitude float64 通话时定位纬度 false
cfTs uint64 筛选条件(返回大于此值的数据) false

2、新增通话记录推送

应用场景:将系统中新生成的通话记录推送到第三方系统,需提前在智能终端管理后台—设置—高级设置—对接设置中配置推送地址

image-20191217145809182

event: "call"

目前是先同步通话记录,通话录音需要先上传到服务器,之后再修改通话记录的录音地址,所以需要用户提供修改录音地址(soundUrl)的接口,下面会提供推送录音地址的数据

字段说明:

字段 类型 说明 是否必须
_id string 通话记录的唯一id true
did string 设备id true
imei string 设备IMEI码 true
callType string 通话类型( in:呼入,out:呼出) true
connectType string 通话类型("connected":接通,"disconnected":未接通) true
localTel string 本机号码 true
uid string 当时设备持有员工id true
uName string 当时设备持有员工name true
contactTel string 联系号码 true
contactName string 联系号码通讯录名称 false
beginTime string 呼通时间(例如:2006-01-02 15:04:05) true
endTime string 挂机时间(例如:2006-01-02 15:05:06) true
duration int 录音时长(例如:61) true
soundUrl string 录音地址,"not_found":录音未找到, "copy_fail":录音拷贝失败,"multiple_call_lose":多通通话录音丢失 false
callId string 第三方自定义该值(请确保唯一性),方便快速匹配通话记录或录音 false
address string 通话时定位中文地址 false
longitude float64 通话时定位经度 false
latitude float64 通话时定位纬度 false

推送示例:

{
  "event" : "call",
  "body" : {
    "_id" : "0e4ccc60-8b6e-4693-87d4-f7d84bf57bf5",
    "did" : "e1ec479c-971f-11e9-b311-0242ac120002",
    "imei" : "867183048059394",
    "callType" : "out",
    "connectType" : "disconnected",
    "localTel" : "133xxxx3333",
    "uid" : "076f2acf-e810-4bc0-9c31-bbc21135709d",
    "uName" : "川普",
    "contactTel" : "150xxxx3333",
    "contactName" : "奥巴马",
    "beginTime" : "2019-06-26 11:01:49",
    "endTime" : "2019-06-26 11:02:50",
    "duration" : 61,
    "soundUrl" : "",
    "address": "四川省成都市高新区环球中心",
    "longitude": 102.123456,
    "latitude": 34.123456,
    "callId": "uuid"
    }
}

3、通话录音推送

应用场景:通话录音生成时间晚于通话记录,需要使用此推送将生成好的通话录音推送到对应的通话记录中

event: "record"

字段说明:

需要更新该条通话记录(唯一_id)的录音地址(soundUrl)

字段 类型 说明 是否必须
_id string 通话记录的唯一id true
uid string 员工id true
soundUrl string 录音地址,"not_found":录音未找到, "copy_fail":录音拷贝失败,"multiple_call_lose":多通通话录音丢失 true

推送示例:

{
  "event" : "record",
  "body" : {
    "_id" : "0e4ccc60-8b6e-4693-87d4-f7d84bf57bf5",
    "soundUrl" : "cf-workphone.oss-cn-hangzhou.aliyuncs.com/originalRecord/P00000000024/201907/20190708172233-19926022861-outCall-1562577753335.mp3"
    }
}

短信记录同步

接入前请确认已完成接入openapi准备(接口鉴权)

对接短信记录需要进行二步操作

第一步:获取系统中已产生短信记录;

第二步:新增短信记录推送到第三方系统(若对短信记录数据时效性要求不高可忽略此步骤);

1、获取短信记录

应用场景:获取系统中已产生的短信记录

接口限制:每分钟调用20次;单次数量最大为500;短信记录开始—结束时间跨度不超过30

请求方式: POST

请求地址: https://wpapi.7moor.com/api/v2/device/sms

参数说明:

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求Body:

字段 类型 描述 是否必须
page int 页码 true
pageSize int 单页数量 true
imeiOrName string IMEI或设备持有人 false
contactTel string 联系号码 false
smsType string 短信类型:in接收,out发送 false
start string 开始时间 (发送/接收时间,查询时间跨度不超过30天) true
end string 结束时间(发送/接收时间) true

请求示例:

curl -X POST https://wpapi.7moor.com/api/v2/device/sms?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"page":1,"pageSize":10,"imeiOrName":"867183048059394","smsType":"in","start":"2019-06-17 11:11:11","end":"2019-06-18 12:12:12"}'

成功响应:

{
    "code": 1,
    "msg": "",
    "data": {
        "count" : 1,
        "list" : [{
            "id" : "0e4ccc60-8b6e-4693-87d4-f7d84bf57bf5",
            "did" : "e1ec479c-971f-11e9-b311-0242ac120002",
            "imei" : "867183048059394",
            "smsType" : "out",
            "localTel" : "13323333333",
            "uid" : "076f2acf-e810-4bc0-9c31-bbc21135709d",
            "uName" : "川普",
            "contactTel" : "15023333333",
            "contactName" : "奥巴马",
            "snedTime" : "2019-06-26 11:01:49",
            "content" : "短信内容"
        }]
    }
}

字段说明:

字段 类型 说明 是否必须
id string 通话记录的唯一id true
did string 设备id true
imei string 设备IMEI码 true
smsType string 短信类型( in:呼入,out:呼出) true
localTel string 本机号码 true
uid string 当时设备持有员工id true
uName string 当时设备持有员工name true
contactTel string 联系号码 true
contactName string 当时联系号码通讯录名称 false
sendTime string 短信发送或接收时间(例如:2006-01-02 15:04:05) true
content string 短信内容 true

2、新增短信记录推送

应用场景:将系统中新生成的短信记录推送到第三方系统,需提前在智能终端管理后台—设置—高级设置—对接设置中配置推送地址

image-20191217171224103

event: "sms"

字段说明:

字段 类型 是否必须
_id string true
did string true
imei string true
smsType string true
localTel string true
uid string true
uName string true
contactTel string true
contactName string false
sendTime string true
content string true

推送示例:

{
  "event" : "sms",
  "body" : {
    "_id" : "0e4ccc60-8b6e-4693-87d4-f7d84bf57bf5",
    "did" : "e1ec479c-971f-11e9-b311-0242ac120002",
    "imei" : "867183048059394",
    "smsType" : "out",
    "localTel" : "13323333333",
    "uid" : "076f2acf-e810-4bc0-9c31-bbc21135709d",
    "uName" : "川普",
    "contactTel" : "15023333333",
    "contactName" : "奥巴马",
    "sendTime" : "2019-06-26 11:02:50",
    "content" : "短信内容"
    }
}

员工个人通话报表

接入前请确认已完成接入openapi准备(接口鉴权)

1、获取员工个人通话报表

请求方式: POST

请求地址: https://wpapi.7moor.com/api/report/callReport

参数说明:

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求Body:

字段 类型 描述 是否必须
agentId string 员工id(agentId和localPhone不能同时为空) false
localPhone string 员工手机号(agentId和localPhone不能同时为空) false

请求示例:

curl -X POST https://wpapi.7moor.com/api/report/callReport?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"agentId":"d65cca44-930c-11e9-b272-0242ac110006"}'

成功响应:

{
    "code": 1,
    "msg": "",
    "data": {
        "today": 31,
        "late7": 142,
        "late30":176
    }
}

字段说明:

字段 类型 说明 是否必须
today int 今日通话总数 true
late7 int 最近7天通话总数 true
late30 int 最近30天通话总数 true

2、获取员工个人通话报表详情

请求方式: POST

请求地址: https://wpapi.7moor.com/api/report/callDetail

参数说明:

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求Body:

字段 类型 描述 是否必须
agentId string 员工id(agentId和localPhone不能同时为空) false
timeSet string 时间段(今日:"today", 近7日:"late7",近30日:"late30"),默认今日 false
localPhone string 员工手机号(agentId和localPhone不能同时为空) false

请求示例:

curl -X POST https://wpapi.7moor.com/api/report/callDetail?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"agentId":"d65cca44-930c-11e9-b272-0242ac110006","timeSet":"late7"}'

成功响应:

{
    "code": 1,
    "msg": "",
    "data": {
        "in": 45,
        "out": 97,
        "inConnect": 26,
        "outConnect": 41,
        "inDuration": 550,
        "outDuration": 980,
        "timeframe": "2019-07-11 ~ 2019-07-17",
        "list": [
            {
                "date": "2019-07-11",
                "in": 0,
                "out": 0,
                "inDuration": 0,
                "outDuration": 0
            },
            // ...省略部分数据
            {
                "date": "2019-07-17",
                "in": 7,
                "out": 24,
                "inDuration": 120,
                "outDuration": 429
            }
        ]
    }
}

字段说明:

字段 类型 说明 是否必须
in int 呼入通话总数 true
out int 呼出通话总数 true
inConnect int 呼入通话接通数 true
outConnect int 呼出通话接通数 true
inDuration int 呼入通话总时长(单位:秒) true
outDuration int 呼出通话总时长(单位:秒) true
timeframe string 统计时间段 true
list array 统计时间段内的数据数组,timeSet=="today"时为null false
date string 通话数据记录时间 false

企业微信数据对接

查询员工与客户企业微信聊天记录步骤

员工企业微信同步(获取员工企业微信号)——企业微信联系人同步(获取客户企业微信号)——企业微信会话信息同步(获取员工与客户会话ID)——企业微信消息同步(获取员工与客户聊天消息)

查询某企业微信群聊天记录步骤

企业微信群信息同步(获取群ID)——企业微信会话信息同步(获取群会话ID)——企业微信消息同步(获取群聊天消息)

若要推送企业微信数据到第三方系统,需提前在智能终端管理后台—设置—高级设置—对接设置中配置推送地址

image-20191218105601796

员工企业微信同步

接入前请确认已完成接入openapi准备(接口鉴权)

同步员工企业微信需要进行二步操作

第一步:获取系统中员工已关联的企业微信;

第二步:定时推送员工关联企业微信数据到第三方系统(若对员工关联企业微信数据时效性要求不高可忽略此步骤);

1、获取员工企业微信

请求方式: POST

请求地址: https://wpapi.7moor.com/api/v2/wechat/getWeChatUserByPage

Params:

位置 字段 类型 描述 是否必须
url timestamp string 毫秒时间戳 true
url accessToken string 获取数据的令牌 true
body localPhone string 员工登录手机号 false
body page int 页码,1 ~ 500 true
body pageSize int 每页返回条数,1 ~ 100 true

请求示例:

curl -X POST https://wpapi.7moor.com/api/v2/wechat/getWeChatUserByPage?timestamp=xxx&accessToken=foo -H "Content-Type:application/json" -d '{"page": 1,"pageSize": 10}'

成功响应:

位置 字段 类型 描述 是否必须
data count int 总数 true
data list Array 详细数据 true
list id string 主键Id true
list imei string 设备Id true
list phone string 设备手机号 false
list wxNo string 企业微信号 true
list wxNo1 string 企业微信号1,有可能不存在 false
list version string 企业微信版本号 true
list nick string 企业微信昵称 true
list headImg string 小头像 false
list headImg1 string 大头像 false
{
    "code": 1,
    "msg": "ok",
    "data": {
        "count": 3,
        "list": [
            {
                "id": "00557d49-9d7a-11e9-b16f-0242ac110006",
                "imei": "4dff585a-930a-11e9-9022-0242ac110005",
                "phone": "177xxxx1273",
                "wxNo": "wxid_m90g9psrmdbf22",
                "wxNo1": "fake_1561617539899",
                "version": "7.0.5",
                "nick": "电信手",
                "headImg": "http://wx.qlogo.cn/mmhead/ver_1/oia0Eng0Lm0xq3Zv4vnM5zcZzYOpQ0KpVsMXicd3fLT2iaUdIicmJCHeO347cQSs1Mv4TJSiauXqWT0Cz7Z2B3gUP0dVvhHcbc3qJib2D68dJHVdU/132",
                "headImg1": "http://wx.qlogo.cn/mmhead/ver_1/oia0Eng0Lm0xq3Zv4vnM5zcZzYOpQ0KpVsMXicd3fLT2iaUdIicmJCHeO347cQSs1Mv4TJSiauXqWT0Cz7Z2B3gUP0dVvhHcbc3qJib2D68dJHVdU/0"
            }
        ]
    }
}

失败响应:

{
    "code": 0,
    "msg": "",
    "data": null
}

2、员工企业微信全量推送

当前设备登录的企业微信账号信息;全量推送,需要接收方自己去重

event: wxUser

字段说明:

字段 类型 说明 是否必须
id string 主键Id true
imei string 设备Id true
phone string 当前员工登陆的手机号 true
wxNo string 企业微信号 true
wxNo1 string 企业微信号1 false
version string 企业微信版本号 true
nick string 昵称 true
headImg string 头像 true
headImg1 string 大头像 false
remark string 备注 false

示例:

{
  "event": "wxUser",
  "body": {
    "id": "xxx",    
    "imei": "xxx",
    "phone": "138xxxx8888",   
    "wxNo": "xxx",            
    "wxNo1": "xxx",           
    "version": "v1.0.0",      
    "nick": "昵称",           
    "headImg": "xxx",         
    "headImg1": "xxx",        
    "remark": ""
  }
}

企业微信联系人同步

接入前请确认已完成接入openapi准备(接口鉴权)

同步企业微信联系人(员工企业微信号添加的企业微信好友)需要进行二步操作

第一步:获取系统中已有的企业微信联系人;

第二步:新增企业微信联系人数据推送到第三方系统(若对企业微信联系人数据时效性要求不高可忽略此步骤);

1、获取企业微信联系人

请求方式: POST

请求地址: https://wpapi.7moor.com/api/v2/wechat/getWeContactByPage

Params:

位置 字段 类型 描述 是否必须
url timestamp string 毫秒时间戳 true
url accessToken string 获取数据的令牌 true
body userWxId string 员工企业微信id,从员工企业微信接口获取的主键Id false
body cfTs uint64 检索标记,查询更多传最后一条数据的cfTs false
body pageSize int 每页返回条数,1 ~ 500 true

数据按照联系人创建时间正序排列,使用cfTs可以查询更新的数据,直到查询区间没有数据为止

请求示例:

curl -X POST https://wpapi.7moor.com/api/v2/wechat/getWeContactByPage?timestamp=xxx&accessToken=foo -H "Content-Type:application/json" -d 'xxx'

成功响应:

位置 字段 类型 描述 是否必须
data count int 总数 true
data list Array 详细数据 true
list id string 主键Id true
list agentWxNo string 员工企业微信号 true
list agentNick string 员工企业微信昵称 true
list wxNo string 好友企业微信号 true
list wxNo1 string 好友企业微信号1,有可能不存在 false
list nick string 好友昵称 true
list headImg string 好友小头像 false
list headImg1 string 好友大头像 false
list status string 状态,normal 正常,delete 删除,blacklist 黑名单 false
list createTime string 创建时间 false
list ts string 时间戳 false
list cfTs string 检索标记,查询更多传最后一条数据的cfTs false
list sign string 签名 false
list remark string 备注 false
{
    "code": 1,
    "msg": "ok",
    "data": {
        "count": 206,
        "list": [
            {
                "id": "a989bc40-9329-11e9-b272-0242ac110006",
                "agentWxNo": "wxid_1gdsssshs22",
                "agentNick": "呵呵1",
                "wxNo": "wxid_nss3l12",
                "wxNo1": "",
                "nick": "A00耘健身小虎  123",
                "headImg": "http://wx.qlogo.cn/mmhead/ver_1/vpC9eRFDs0fM7HWDZBUAJZnIhknAOry6dHXdiadURr61Uj0CRyFnn0uEV4z2HD3mk4OejKIsKOLCeLHma9H2C4HUod8picr6IaxayTibq3vMCE/96",
                "headImg1": "http://wx.qlogo.cn/mmhead/ver_1/vpC9eRFDs0fM7HWDZBUAJZnIhknAOry6dHXdiadURr61Uj0CRyFnn0uEV4z2HD3mk4OejKIsKOLCeLHma9H2C4HUod8picr6IaxayTibq3vMCE/0",
                "status": "normal",
                "createTime": "2019-06-20 15:04:35",
                "ts": 1561014275882,
                "cfTs": 277066244438360065
            }
        ]
    }
}

失败响应:

{
    "code": 0,
    "msg": "",
    "data": null
}

2、新增企业微信联系人推送

当前设备登录的企业微信的好友信息,agentWxNo为wxUser的wxNo或者wxNo1;增量推送,数据可能重复(联系人信息变更),需要接收方自己实现更新逻辑。

event: "wxContact"

字段说明:

字段 类型 说明 是否必须
id string 主键Id false
imei string 设备Id true
agentWxNo string 当前设备登录企业微信号 true
agentNick string 当前设备登录企业微信号昵称 true
wxNo string 企业微信号 true
wxNo1 string 企业微信号1 false
nick string 企业微信昵称 true
headImg string 头像 false
headImg1 string 大头像 false
sign string 签名 false
remark string 备注 false
status string 状态(normal:正常,deleted:已删除,blacklist:已拉黑) true
createTime string 创建时间 true
ts long 创建时间时间戳 true

示例:

{
  "event": "wxContact",
  "body": {
    "id": "xxx",                         
    "agentWxNo" : "wxid_adzxxi1i8o22", 
    "agentNick" : "小仙女",          
    "wxNo" : "v7moor",                   
    "wxNo1": "wxid_adxi1i8o22",      
    "nick" : "昵称-s",                
    "headImg" : "xx",                    
    "headImg1" : "",                    
    "sign" : "",                         
    "remark" : "",                       
    "status" : "",                       
    "createTime" : "2019-06-26 15:31:12",
    "ts" : 1562307211188
  }
}

企业微信群信息同步

接入前请确认已完成接入openapi准备(接口鉴权)

同步企业微信群(员工企业微信号拥有的企业微信群)需要进行二步操作

第一步:获取系统中已有的企业微信群;

第二步:新增企业微信群数据推送到第三方系统(若对企业微信群数据时效性要求不高可忽略此步骤);

1、获取企业微信群信息

请求方式: POST

请求地址: https://wpapi.7moor.com/api/v2/wechat/getWeChatRoomByPage

Params:

位置 字段 类型 描述 是否必须
url timestamp string 毫秒时间戳 true
url accessToken string 获取数据的令牌 true
body userWxId string 员工企业微信id,从员工企业微信接口获取的主键Id false
body cfTs uint64 检索标记,查询更多传最后一条数据的cfTs false
body pageSize int 每页返回条数,1 ~ 500 true

数据按照群信息创建时间正序排列,使用cfTs可以查询更新的数据,直到查询区间没有数据为止

请求示例:

curl -X POST https://wpapi.7moor.com/api/v2/wechat/getWeChatRoomByPage?timestamp=xxx&accessToken=foo -H "Content-Type:application/json" -d 'xxx'

成功响应:

位置 字段 类型 描述 是否必须
data count int 总数 true
data list Array 详细数据 true
list id string 主键Id true
list imei string 设备Id true
list agentWxNo string 员工企业微信号 true
list name string 群名称 false
list headImg string 群头像 false
list memberList string 群成员企业微信号,使用";"分割 true
list displayName string 群成员展示昵称,存在特殊字符使用群成员企业微信号,使用"、"分割 false
list roomOwner string 群主企业微信号 true
list memberCount string 群成员数量 true
list selfDisplayName string 自己在本群的昵称 false
list cfTs uint64 检索标记,查询更多传最后一条数据的cfTs false
{
    "code": 1,
    "msg": "ok",
    "data": {
        "count": 41,
        "list": [
            {
                "id": "2a7a1c4d-9323-11e9-b272-0242ac110006",
                "imei": "4dff585a-930a-11e9-9022-0242ac110005",
                "agentWxNo": "wxid_tzpssr9u22",
                "member": [
                    "ffc17316-a454-11e9-adf5-0242ac110009"
                ],
                "name": "打农药的王者",
                "headImg": "http://wx.qlogo.cn/mmcrhead/0A9uqO1pZiaF4lYYdhU3bdKSUaNHibf1qof0GZ5gZ6HwUbVaZAtb8icUicTBmic8rJzQNZNas8KIiaTyXafbiatpoCeo2lwCMibKL2qr/0",
                "memberList": "lu616601854;ZhangJunBo666666;haibing0;wxid_rl6ewf0wsb5a31;wxid_j88919z5u6ta22;weiliyangcool;wxid_v0mldafv7qc822;wxid_zhuvuxo5i22922;wxid_tzp39rgo8r9u22;a29776044;artemuslll;wxid_veoyvjwusrnh22;wxid_vmp7hmxkyzo12;wxid_r610uc4a5tm541;chongjing344054",
                "displayName": "黄璐、ZhangJunBo666666、haibing0、王加、wxid_j88919z5u6ta22、weiliyangcool、高翔、wxid_zhuvuxo5i22922、菜头、a29776044、李、wxid_veoyvjwusrnh22、王添、wxid_r610uc4a5tm541、chongjing344054",
                "roomOwner": "lu616601854",
                "memberCount": "15",
                "cfTs": 277066244438360065
            }
        ]
    }
}

失败响应:

{
    "code": 0,
    "msg": "",
    "data": null
}

2、获取企业微信群成员信息

请求方式: POST

请求地址: https://wpapi.7moor.com/api/v2/wechat/getWeChatRoomMemberByPage

Params:

位置 字段 类型 描述 是否必须
url timestamp string 毫秒时间戳 true
url accessToken string 获取数据的令牌 true
body chatRoomId string 群Id,从企业微信群信息接口获取的主键Id true

根据群id一次性拉取完所有的成员数据

请求示例:

curl -X POST https://wpapi.7moor.com/api/v2/wechat/getWeChatRoomMemberByPage?timestamp=xxx&accessToken=foo -H "Content-Type:application/json" -d 'xxx'

成功响应:

位置 字段 类型 描述 是否必须
data count int 总数 true
data list Array 详细数据 true
list id string 主键Id true
list chatRoomId string 群Id true
list nick string 昵称 true
list headImg array 头像 false
list wxNo string 企业微信号 false
list isAgent string 是否是员工, false的时候字段被忽略 false
list agentWxNo string 员工企业微信号 false
list cfTs uint64 检索标记,查询更多传最后一条数据的cfTs true
{
    "code": 1,
    "msg": "ok",
    "data": {
        "count": 15,
        "list": [
            {
                "id": "ffc21cdb-a454-11e9-adf5-0242ac110009",
                "chatRoomId": "2a7a1c4d-9323-11e9-b272-0242ac110006",
                "nick": "海冰",
                "headImg": "http://wx.qlogo.cn/mmhead/ver_1/44r4BtQoRnccWSGIia3QGbITSlhEYM1MUBj7JSDkazfpOXD98SoyL9FoibxxSfg3wQJCr4oFHkiaYQOuRjGHePGVw/132",
                "wxNo": "haibsng0",
                "isAgent": true,
                "agentWxNo": "haisng0",
                "cfTs": 277066244438360065
            }
        ]
    }
}

失败响应:

{
    "code": 0,
    "msg": "",
    "data": null
}

3、新增群信息推送

当前设备登录的企业微信的群信息,agentWxNo为wxUser的wxNo或者wxNo1;增量推送,需要接收方自己去重

event: "wxChatRoom"(群)

字段说明:

字段 类型 说明 是否必须
id string 主键Id true
imei string 设备Id true
agentWxNo string 员工企业微信号 true
name string 群名称 true
headImg string 群头像 false
memberList string 群成员企业微信号,使用“;”分割 true
displayName string 群成员企业微信昵称(含有特殊字符使用企业微信号),使用“、”分割 true
roomOwner string 群主企业微信Id true
selfDisplayName string 自己在群里面的昵称 false
memberCount int 群成员数量 true

示例:

{
  "event": "wxChatRoom",
  "body": {
    "id": "xxx",                       
    "imei": "xxx",                     
    "agentWxNo": "wxid_adzpssi8o22",                   
    "name": "慧算账内部沟通裙",        
    "headImg": "xxx",                  
    "memberList": "xx;xx",             
    "displayName": "xxx、xx",       
    "roomOwner": "wxid_eh6ss1n1c521", 
    "selfDisplayName": "",              
    "memberCount": "12"                 
  }
}

event: "wxChatRoomMember"(群成员)

字段说明:

字段 类型 说明 是否必须
id string 主键Id true
chatRoomId string 所属群id,即chatRoom的Id true
nick string 昵称 true
headImg string 小头像 false
headImg1 string 大头像 false
wxNo string 企业微信号 true
isAgent bool 是否是员工 true
agentWxNo string 员工企业微信Id true

示例:

{
  "event": "wxChatRoomMember",
  "body": {
    "id": "xxx",         
    "chatRoomId": "xxx", 
    "nick": "xxx",    
    "headImg": "xxx",    
    "headImg1": "xxx",    
    "wxNo": "xxx",       
    "isAgent": false,    
    "agentWxNo": ""      
  }
}

企业微信会话信息同步

接入前请确认已完成接入openapi准备(接口鉴权)

同步企业微信会话(主要获取企业微信联系人或企业微信群的会话ID便于查询企业微信消息)需要进行二步操作

第一步:获取系统中已有的企业微信会话;

第二步:新增企业微信会话数据推送到第三方系统(若对企业微信会话数据时效性要求不高可忽略此步骤);

1、获取企业微信会话信息

请求方式: POST

请求地址: https://wpapi.7moor.com/api/v2/wechat/getWeChatByPage

Params:

位置 字段 类型 描述 是否必须
url timestamp string 毫秒时间戳 true
url accessToken string 获取数据的令牌 true
body userWxId string 员工企业微信id,从员工企业微信接口获取的主键Id false
body cfTs uint64 检索标记,查询更多传最后一条数据的cfTs false
body pageSize int 每页返回条数,1 ~ 500 true

数据按照会话创建时间正序排列,使用cfTs可以查询更新的数据,直到查询区间没有数据为止

请求示例:

curl -X POST https://wpapi.7moor.com/api/v2/wechat/getWeChatByPage?timestamp=xxx&accessToken=foo -H "Content-Type:application/json" -d 'xxx'

成功响应:

位置 字段 类型 描述 是否必须
data count int 总数 true
data list Array 详细数据 true
list id string 主键Id true
list agentWxNo string 员工企业微信号 true
list contactWxNo string 好友企业微信号,群聊没有 false
list group string 群Id,单聊没有 false
list chatType string 聊天类型 group 群聊,single 单聊 true
list isSend string 会话发起 0 :对方 1:自己 true
list cfTs uint64 检索标记,查询更多传最后一条数据的cfTs true
{
    "code": 1,
    "msg": "ok",
    "data": {
        "count": 43,
        "list": [
            {
                "id": "2b0959b1-9323-11e9-b272-0242ac110006",
                "agentWxNo": "wxid_tzsrgo8r9u22",
                "group": "2b06e8a8-9323-11e9-b272-0242ac110006",
                "chatType": "group",
                "isSend": "0",
                "cfTs": 277066244438360065
            }
        ]
    }
}

失败响应:

{
    "code": 0,
    "msg": "",
    "data": null
}

2、新增企业微信会话推送

当前设备登录的企业微信的会话信息,agentWxNo为wxUser的wxNo或者wxNo1;增量推送

event: "wxChat"

字段说明:

字段 类型 说明 是否必须
id string 主键Id true
imei string 设备Id true
agentWxNo string 员工企业微信号 true
contactWxNo string 联系人企业微信号(1v1聊天有值) false
group string 群id,(会话类型为group有值) false
chatType string 会话类型(group:群,single:单个聊天) true
isSend string 会话发起 0 :对方 1:自己 true

示例:

{
  "event": "wxChat",
  "body": {
    "id": "xxx",         
    "imei" : "设备Id",
    "agentWxNo" : "xxx", 
    "contactWxNo" : "",  
    "group" : "",        
    "chatType" : "group",  
    "isSend" : "0"
  }
}

企业微信消息同步

接入前请确认已完成接入openapi准备(接口鉴权)

查询员工与客户企业微信聊天记录步骤

员工企业微信同步(获取员工企业微信号)——企业微信联系人同步(获取客户企业微信号)——企业微信会话信息同步(获取员工与客户会话ID)——企业微信消息同步(获取员工与客户聊天消息)

查询某企业微信群聊天记录步骤

企业微信群信息同步(获取群ID)——企业微信会话信息同步(获取群会话ID)——企业微信消息同步(获取群聊天消息)

1、获取企业微信消息

接口限制:每分钟调用20次;单次数量最大为500;企业微信消息开始—结束时间跨度不超过30

请求方式: POST

请求地址: https://wpapi.7moor.com/api/v2/wechat/getWeMessageByPage

Params:

位置 字段 类型 描述 是否必须
url timestamp string 毫秒时间戳 true
url accessToken string 获取数据的令牌 true
body sendDate string 发送消息日期(yyyy-MM-dd) true
body cfTs uint64 检索标记,查询更多传最后一条数据的cfTs false
body pageSize int 每页返回条数,1 ~ 500 true

消息发送日期按天过滤数据,一次最多一天

在指定的时间范围内,数据按照消息时间正序排列,使用cfTs可以查询更新的数据,直到查询区间没有数据为止

请求示例:

curl -X POST https://wpapi.7moor.com/api/v2/wechat/getWeMessageByPage?timestamp=xxx&accessToken=foo -H "Content-Type:application/json" -d 'xxx'

成功响应:

位置 字段 类型 描述 是否必须
data count int 总数 true
data list Array 详细数据 true
list id string 主键Id true
list chatId string 会话Id true
list from string 消息发送人,对应联系人的wxNo或者wxNo1,群成员的wxNo;如果自己发的消息,此字段为空 false
list msg string 消息内容 false
list msgType string 消息类型 true
list date string 发送日期 true
list ts int 发送时间戳 true
list msgId string 聊天信息id true
list isSend string 会话发起 0 :对方 1:自己 true
list msgSvrId string 多媒体消息Id false
list thumbImgPath string 语音消息,图片小图,视频封面 false
list bigImgPath string 图片大图,视频链接 false
list cfTs uint64 检索标记,查询更多传最后一条数据的cfTs true
{
    "code": 1,
    "msg": "ok",
    "data": {
        "count": 75,
        "list": [
            {
                "id": "43b3a7f5-9328-11e9-b272-0242ac110006",
                "chatId": "2b0959b1-9323-11e9-b272-0242ac110006",
                "from": "293ab6bc-9323-11e9-b272-0242ac110006",
                "msg": "\n真的是好难约噢",
                "msgType": "1",
                "date": "2019-06-20",
                "ts": 1561013064,
                "msgId": "82",
                "isSend": "0",
                "msgSvrId": "9046641001935868169",
                "cfTs": 277066244438360065
            }
        ]
    }
}

失败响应:

{
    "code": 0,
    "msg": "",
    "data": null
}

2、新增企业微信消息推送

当前设备登录的企业微信的消息信息,chatId为wxChat的Id;增量推送

event: "wxMessage"

字段说明:

字段 类型 说明 是否必须
id string 主键Id true
imei string 设备Id true
chatId string 会话Id true
from string 发送人 (可能为空,通过消息类型来分辨) false
msg string 消息内容 false
msgType int 消息类型 true
date string 发送日期 true
ts long 发送时间戳(毫秒) true
payId string 转账、红包Id false
msgId string 聊天信息id true
isSend string 发送方 0:对方;1:自己 false
msgSvrId string 多媒体消息Id false
thumbImgPath string 图片缩略图、语音消息、视频封面 true
bigImgPath string 图片原图,视频连接 false
{
  "event": "wxMessage",
  "body": {
    "id" : "xxx",
    "imei" : "xxx",   
    "chatId" : "xxx", 
    "from" : "xxx",   
    "msg" : "原先是多少啊", 
    "msgType" : 1, 
    "date" : "2019-06-26",  
    "ts" : 1561531920,
    "payId" : "",  
    "msgId" : "3", 
    "isSend" : "0",   
    "msgSvrId": "xx",
    "thumbImgPath": "xx",
    "bigImgPath": "xx"
  }
}  

3、新增多媒体数据推送

当前设备登录的企业微信的消息的多媒体消息,id对应wxMessage的msgSvrId;增量推送

event: "wxMedia"

字段说明:

字段 类型 说明 是否必须
id string 主键Id true
thumbImgPath string 图片缩略图、语音消息、视频封面 true
bigImgPath string 图片原图,视频连接 false
{
  "event": "wxMedia",
  "body": {
    "id": "xxx",        
    "thumbImgPath": "", 
    "bigImgPath": "" 
  }
}

4、新增企业微信语音消息转文本推送

当前设备登录的企业微信的语音消息转换为文本,id对应wxMessage的Id;增量推送

event: "wxVoiceContent"

字段说明:

字段 类型 说明 是否必须
id string 主键Id true
msgContent string 语音消息转换后的文本(按照普通话转化,方言口音转换准确率较低) true
{
  "event": "wxMedia",
  "body": {
    "id": "xxx",        
    "msgContent": ""
  }
}

5、企业微信消息类型说明

msgType 类型说明(注意语音消息,转换成文本成功,对应的文本字段也是msg)

类型 解释
101 文本
102 图片
103 语音
104 视频
105 名片
106 地理位置
107 分享链接,网址,文件
108 系统消息
109 撤回消息
110 群系统消息
111 SEMI_XML
112 红包
113 群收款
114 群收款提醒
115 转账
116 表情(m7_msg内容http开头的展示图片,其他的展示展位图),未下载动图表情
117 语音电话/视频电话
119 素材库分享消息
120 位置共享
121 企微名片
122 转账分享
123 微信卡包
124 微信亲属卡
0 其他类型

文本

  • 类型:101
  • 数据结构:

wxMessage中的msg

{
  "msg": "这是文本"
}

图片、语音、视频

  • 类型:102、103、104
  • 数据结构:

wxMedia的存储结构

{
  "bigImgPath" : "test_big.jpg",
  "thumbImgPath" : "test_thumb.jpg"
}

名片

  • 类型:105
  • 数据结构:

wxMessage中的msg,json格式的字符串

{
    "nickName": "一块二包邮",
    "wxNo": "gh_66cxf58915",
    "bigHeadImgUrl": "http://wx.qlogo.cn/mmhead/Q3auHgzwzM5riaOEnlFZtibiaMZMpIricKZaosia2ExVGKzNZga4D2L92OQ/0",
    "smallHeadImgUrl": "http://wx.qlogo.cn/mmhead/Q3auHgzwzM5riaOEnlFZtibiaMZMpIricKZaosia2ExVGKzNZga4D2L92OQ/96"
}

地理位置

  • 类型:106
  • 数据结构:

wxMessage中的msg,json格式的字符串

{
    "log": "104.062881",
    "lat": "30.554096",
    "address": "蜀都中心二期(武侯区吉庆三路333号)",
    "wxNo": "wxid_008x784612"
}

分享链接,网址,文件 等

  • 类型:107
  • 数据结构:

wxMessage中的msg,json格式的字符串

{
  "title": "余林呱与余林🐑的聊天记录", //标题
  "des": "余林呱:[图片]\n余林呱:那个。。给我发个红包???\n余林呱:[动画表情]\n余林呱:[图片]\n余林呱:[色]...", //描述
  "type": "19", //类型:33 小程序,5 链接,6 文件, 19 聊天记录
  "showtrueype": "0",
  "url": "https://support.weixin.qq.com/cgi-bin/mmsupport-bin/readtemplate?t=page/favorite_record__w_unsupport\u0026from=singlemessage\u0026isappinstalled=0",//企业微信内部链接
  "recordItem": "余林呱与余林🐑的聊天记录" //详细内容
}

系统消息

  • 类型:108
  • 数据结构:

wxMessage中的msg,json格式的字符串

{
    "content": "\"A手机维修二手买卖\" 撤回了一条消息", //内容
    "payId": "",     //企业微信支付Id(红包有值)
    "msgIsSend": "", //原始消息发送类型(红包有值)
    "type": 3        //类型 1 红包,2 普通消息,3 未知消息
}
{
  "content":"位置共享已经结束", //内容
  "payId":"", //红包企业微信支付Id
  "msgIsSend": "",
  "type":2  //类型 1 红包,2 普通消息,3 未知消息
}
{
  "content":"H.Note领取了你的红包",
  "payId":"1000039501201906056015038761805",
  "msgIsSend": "",
  "type":1
}
{
    "content": "\"H.Note\" 撤回了一条消息",
    "payId": "",
    "msgIsSend": "",
    "type": 2
}

撤回的消息

  • 类型: 109
  • 数据结构:

wxMessage中的msg,json格式的字符串

{
    "test": "你撤回了一条消息", //撤回消息展示
    "timestrueamp": "1560150444638", //撤回消息发送时间
    "preContent": "这是第三条消息", //撤回消息内容
    "link": {
        "text": "重新编辑"
    }
}

群系统消息

  • 类型:110
  • 数据结构:

wxMessage中的msg,字符串格式

{
  "msg": `"名字"邀请"余林🐑"加入了群聊`
}
{
  "msg": `"名字"修改群名为“测试群”`
}
{
  "msg": `"superwomen"邀请你加入了群聊,群聊参与人还有:呵呵😄`
}

红包

  • 类型:112
  • 数据结构:

wxMessage中的msg,json格式的字符串

{
    "des": "我给你发了一个红包,赶紧去拆!",
    "url": "https://wxapp.tenpay.com/mmpayhb/wxhb_personalreceive?showwxpaytitle=1\u0026msgtype=1\u0026channelid=1\u0026sendid=1000039501201906056011499657896\u0026ver=6\u0026sign=6cabac162d11b76b628227520ee424b1e3878d33e78df534abba75b16c9cf1d36fede8e6db6677195b986d7a31e887fabaeeba13e6614b49334fd3d26b047d81a65fc89e97a304e6e2e7803398f0c573",
    "type": "2001",
    "title": "企业微信红包",
    "thumbUrl": "https://wx.gtimg.com/hongbao/1800/hb.png",
    "wcPayInfo": {
        "templateId": "7a2a165d31da7fce6dd77e05c300028a",
        "url": "https://wxapp.tenpay.com/mmpayhb/wxhb_personalreceive?showwxpaytitle=1\u0026msgtype=1\u0026channelid=1\u0026sendid=1000039501201906056011499657896\u0026ver=6\u0026sign=6cabac162d11b76b628227520ee424b1e3878d33e78df534abba75b16c9cf1d36fede8e6db6677195b986d7a31e887fabaeeba13e6614b49334fd3d26b047d81a65fc89e97a304e6e2e7803398f0c573",
        "iconUrl": "https://wx.gtimg.com/hongbao/1800/hb.png",
        "receivertrueitle": "普天同庆", //收到的红包标题
        "sendertrueitle": "普天同庆",   //发送的红包标题
        "scenetrueext": "企业微信红包",     //场景描述,1002对应的为企业微信红包
        "senderDes": "查看红包",     //发送的红包描述
        "receiverDes": "领取红包",   //收到的红包描述
        "nativeUrl": "wxpay://c2cbizmessagehandler/hongbao/receivehongbao?msgtype=1\u0026channelid=1\u0026sendid=1000039501201906056011499657896\u0026sendusername=wxid_1gdwolwrn5hs22\u0026ver=6\u0026sign=6cabac162d11b76b628227520ee424b1e3878d33e78df534abba75b16c9cf1d36fede8e6db6677195b986d7a31e887fabaeeba13e6614b49334fd3d26b047d81a65fc89e97a304e6e2e7803398f0c573",
        "sceneId": "1002", //类型:1002 红包,1001 群收款
        "innertrueype": "0",
        "payMsgId": "1000039501201906056011499657896", //企业微信支付交易Id
        "Invalidtrueime": "1559803593",
        "m7trueype": "0" //收钱类型 0 未领取,1 已领取
    }
}

群收款

  • 类型 113
  • 数据结构:

wxMessage中的msg,json格式的字符串

{
    "des": "",
    "url": "https://support.weixin.qq.com/security/readtemplate?t=w_security_center_website/upgrade\u0026wechat_real_lang=zh_CN",
    "type": "2001",
    "title": "",
    "thumbUrl": "http://wx.gtimg.com/hongbao/img/newaa_3x.png",
    "wcPayInfo": {
        "templateId": "b9a794071ca79264fb48909c24f2c6cc",
        "url": "https://support.weixin.qq.com/security/readtemplate?t=w_security_center_website/upgrade\u0026wechat_real_lang=zh_CN",
        "iconUrl": "http://wx.gtimg.com/hongbao/img/newaa_3x.png",
        "receivertrueitle": "活动账单",
        "sendertrueitle": "活动账单",
        "scenetrueext": "活动账单",
        "senderDes": "每人需支付0.02元",
        "receiverDes": "每人需支付0.02元",
        "nativeUrl": "",
        "sceneId": "1001",
        "innertrueype": "0",
        "payMsgId": "",
        "Invalidtrueime": "1562226087",
        "newAa": {
            "billNo": "00db48218eb1a54d77489c9bb4fcd80bb22bd76fdd5d1316e8df44490f9f68aba92abfd31eb7b217dcb88e490b3d0e02",
            "newAatrueype": "2",
            "receiverList": "wxid_1gdwolwrn5hs22,1,5,0",//发起人企业微信号,收款状态?3 = 已收齐,2 = 有人支付,1 = 无人支付,参与人数,已支付人数
            "payerList": "wxid_tzp39rgo8r9u22,2,1|wxid_m90g9psrmdbf22,2,1|wxid_afhuw9rhn5dy22,2,1|wxid_1mel9kj31aft22,2,1|wxid_0080250784612,2,1"//支付人企业微信号,需支付金额(单位:分),支付状态:1 = 未支付,2 = 已支付
        },
        "m7trueype": "0"
    },
    "content": ""
}

群收款提示

  • 类型 114
  • 数据结构:

wxMessage中的msg,json格式的字符串

{
    "content": "@菜头 @「卷心菜」 @呵呵😄 @电信手机📱 @余林呱\n你有一笔未支付的群收款", //消息内容
    "payId": "0db48218eb1a54d77489c9bb4fcd80b50b2aa1cb9846f6a12cb53f24f8ce45a910f32bdc64fc4d5eaf51bbf30ed4c4d" //收款支付Id
}

转账

  • 类型:115
  • 数据结构

wxMessage中的msg,json格式的字符串

{
    "title": "企业微信转账",
    "des": "收到转账0.01元。如需收钱,请点此升级至最新版本",
    "type": "2000",
    "content": "",
    "url": "https://support.weixin.qq.com/cgi-bin/mmsupport-bin/readtemplate?t=page/common_page__upgrade\u0026text=text001\u0026btn_text=btn_text_0",
    "thumbUrl": "https://support.weixin.qq.com/cgi-bin/mmsupport-bin/readtemplate?t=page/common_page__upgrade\u0026text=text001\u0026btn_text=btn_text_0",
    "lowurl": "",
    "extinfo": "",
    "wcPayInfo": {
        "paySubtrueype": "3", //转账类型
        "feeDesc": "¥0.01", //转账金额
        "transcationId": "100005010119060500024224115148949337",//交易Id
        "transferId": "1000050101201906051703664585970",//转账Id
        "invalidtrueime": "1559813867",//失效时间
        "begintrueransfertrueime": "1559727467",//开始时间
        "effectiveDate": "1",
        "payMsgId": "",
        "payMemo": "",//转账附加消息
        "hastrueransferAddress": "",
        "m7trueype": "2" //领取类型
    }
}

内部字段解释

paySubType 解释
1 实时转账
3 实时转账收钱回执
4 转账退还回执
5 非实时转账收钱回执
7 非实时转账
m7Type 解释
0 未领取
1 已被领取(paySubType==1,7)
2 已领取(paySubType==3)
3 已退还(paySubType==1,4,7)
4 已领取待入账(paySubType==5,7)

企业微信新增及关联客户报表

接入前请确认已完成接入openapi准备(接口鉴权)

请求方式: POST

请求地址: https://wpapi.7moor.com/api/wechat/getWeContactAddByPage

Params:

位置 字段 类型 描述 是否必须
url timestamp string 毫秒时间戳 true
url accessToken string 获取数据的令牌 true
body localPhone string 员工登陆手机号 false
body userName string 员工昵称 false
body start string 开始区间(yyyy-MM-dd) true
body end string 结束区间(yyyy-MM-dd) true
body page int 页码,1 ~ 500 true
body pageSize int 每页返回条数,1 ~ 100 true

请求示例:

curl -X POST https://wpapi.7moor.com/api/wechat/getWeContactAddByPage?timestamp=xxx&accessToken=foo -H "Content-Type:application/json" -d '{"start": "2019-11-13", "end": "2019-11-14","page": 1,"pageSize": 10}'

成功响应:

位置 字段 类型 描述 是否必须
data count int 总数 true
data list Array 详细数据 true
list id string 主键Id true
list agentId string 员工企业微信Id true
list uid string 员工Id true
list agentNick string 员工企业微信昵称 true
list userName string 员工昵称 true
list addNum int64 好友添加数 true
list relationCusNum int64 企业微信好友关联客户数,历史数据会没有此字段 false
{
    "code": 1,
    "msg": "ok",
    "data": {
        "count": 2,
        "list": [
            {
                "id": "a92d849b-9329-11e9-b272-0242ac110006",
                "agentId": "a92d849b-9329-11e9-b272-0242ac110006",
                "uid": "fbadfee6-930d-11e9-b272-0242ac110006",
                "agentNick": "xx",
                "userName": "张三",
                "addNum": 21,
                "relationCusNum": 8
            },
            {
                "id": "af9fefc9-a93f-11e9-b34b-0242ac110009",
                "agentId": "af9fefc9-a93f-11e9-b34b-0242ac110009",
                "uid": "fbadfee6-930d-11e9-b272-0242ac110006",
                "agentNick": "xx",
                "userName": "张三",
                "addNum": 14
            }
        ]
    }
}

失败响应:

{
    "code": 0,
    "msg": "",
    "data": null
}

智能终端能力调用

支持第三方调用接口使用智能终端的能力:拨打电话(调用后智能终端直接进行呼叫)、发送短信(调用后智能终端对目标号码发送短信)、第三方自动加企业微信(调用后智能终端直接在企业微信中添加目标企业微信)

拨打电话V1版

接入前请确认已完成接入openapi准备(接口鉴权)

应用场景:在第三方系统调用接口让智能终端自动外呼,支持传输第三方唯一值绑定通话记录或录音

请求方式: POST

请求地址: https://wpapi.7moor.com/api/crm/callPhone

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求body:

{
    "callPhone": "13899999999",
    "userPhone": "13877777777",
    "isEncrypt": true,
    "callId": "uuid",
    "callType": "xxx"
}

字段说明:

字段 类型 描述 是否必须
callPhone string 被叫手机号码 true
userPhone string 员工手机号码 true
isEncrypt bool 该通外呼是否加密被叫手机号码 false
callId string 第三方自定义该值(请确保唯一性),方便快速匹配通话记录或录音 false
callType string 外呼方式Id,由第三方对接获取 false

请求示例:

curl -X POST https://wpapi.7moor.com/api/crm/callPhone?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"callPhone":"13899999999","userPhone":"13788888888"}'

成功响应:

{
    "code": 1,
    "msg": "",
    "data": {}
}

拨打电话v2版

接入前请确认已完成接入openapi准备(接口鉴权)

应用场景:在第三方系统调用接口让智能终端自动外呼,支持传输第三方唯一值绑定通话记录或录音和传输第三方系统手机号对应的客户姓名自动创建客户(若此手机号客户已存在,则更新客户姓名)

请求方式: POST

请求地址: https://wpapi.7moor.com/api/crm/callPhoneAndAddCus

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求body:

{
    "callPhone": "13899999999",
    "userPhone": "13877777777",
    "isEncrypt": true,
    "callId": "uuid",
    "name": "zhangsan"
}

字段说明:

字段 类型 描述 是否必须
callPhone string 被叫手机号码 true
userPhone string 员工手机号码 true
isEncrypt bool 该通外呼是否加密被叫手机号码 false
callId string 第三方自定义该值(请确保唯一性),方便快速匹配通话记录或录音 false
name string 客户姓名 true

请求示例:

curl -X POST https://wpapi.7moor.com/api/crm/callPhoneAndAddCus?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json"

成功响应:

{
    "code": 1,
    "msg": "",
    "data": {}
}

发送短信

接入前请确认已完成接入openapi准备(接口鉴权)

请求方式: POST

请求地址: https://wpapi.7moor.com/api/crm/smsPhone

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求body:

{
    "toPhone": ["13899999999", "13866666666"],
    "userPhone": "13877777777",
    "content": "hello world"
}   

字段说明:

字段 类型 描述 是否必须
toPhone string 接收短信的目标号码(不能超过100个目标号码) true
userPhone string 员工手机号码 true
content string 短信内容(不能超过140个字符) true

请求示例:

curl -X POST https://wpapi.7moor.com/api/crm/callPhone?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"callPhone":["13899999999", "13866666666"],"userPhone":"13788888888", "content": "hello world"}'

成功响应:

{
    "code": 1,
    "msg": "",
    "data": {}
}

第三方自动加企业微信

接入前请确认已完成接入openapi准备(接口鉴权)

此处实现逻辑为调用智能终端后,手机自动进入企业微信,在添加好友页面检索“phone”字段传输内容搜索企业微信好友

请求方式: POST

请求地址: https://wpapi.7moor.com/api/crm/autoAddWx

Params:

字段 类型 描述 是否必须
timestamp string 1970年1月1日至今的毫秒数 true
accessToken string 获取数据的令牌 true

请求body:

{
    "phone": "138xxxx9999",
    "userPhone": "138xxxx7777",
    "word": "hello",
    "remark": "好友备注"
}

字段说明:

字段 类型 描述 是否必须
phone string 被加企业微信的手机号码或企业微信号 true
userPhone string 员工手机号码 true
word string 打招呼文字(最多30个文字) false
remark string 微信好友备注(最多29个文字) false

请求示例:

curl -X POST https://wpapi.7moor.com/api/crm/autoAddWx?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"phone":"138xxxx9999","userPhone":"137xxxx8888", "remark": "haha"}'

成功响应:

{
    "code": 1,
    "msg": "",
    "data": {}
}