NAV Navbar
http

Linkflow开放接口指南

目前Linkflow开放平台只支持私有App的对接,通过私有App可以获取客户在Linkflow系统中的联系人信息、联系人渠道信息以及联系人的事件信息。

私有App是客户在Linkflow系统中为本租户创建的专属App,只有该租户可见。在客户创建完私有App之后,系统会为该App生成App Key和App Secret,开发者拿到App Key和App Secret之后,就可以获取Access Token,之后就可以访问Linkflow系统,获取需要的业务数据。

Private App

创建Private App

通过创建私有App获取 App Key 和 App Secret

登录Linkflow系统之后,进入菜单“设置”-》“App集成设置”-》“私有App设置”,然后点击右上角的按钮“创建私有App”,在弹出窗口中填写“App名字”和“App描述”,最后点击右下角的“保存”按钮,系统就会在当前弹出窗口生成App Key和App Secret。

通过App Key和App Secret获取Access Token

在获取App Key和App Secret之后,就可以来获取Access Token来访问Linkflow的资源了,具体访问方式如下:

GET /token HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Key: 创建私有App取得的App Key
X-OpenApi-Secret: 创建私有App取得的App Secret
HTTP/1.1 200 OK
Content-Type: application/json

{
    "expiration": "2017-09-04 09:30:23",
    "token": "Mi03Y2IxNjNkMC05YWFjLTQ5NmYtOWE3OS01NjU3ZWRjMmQwNzk="
}

HTTP Request

GET https://open.linkflowtech.com/token

Headers

Parameter Description
X-OpenApi-Key 创建私有App取得的App Key
X-OpenApi-Secret 创建私有App取得的App Secret

联系人

获取联系人列表

GET /contacts?size=1&page=0&groupId=1&search=13774202819 HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Token: Access Token

在提交请求之后,系统会返回一个JSON数组,里面包含了所有符合条件的联系人,示例如下

HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "anonymousId": null,
        "name": "peter pan",
        "nickname": null,
        "gender": "unknown",
        "dateOfBirthday": null,
        "avatar": null,
        "mobilePhone": "13774202819",
        "homePhone": null,
        "email": null,
        "country": null,
        "state": null,
        "street": null,
        "city": null,
        "postalCode": null,
        "comments": null,
        "userName": null,
        "title": null,
        "website": null,
        "company": null,
        "industry": null,
        "department": null,
        "idCard": null,
        "utm": {
            "source": "source",
            "campaign": "campaign",
            "medium": "medium",
            "content": "content",
            "term": "term"
        },
        "props": {
            "attr1": "单身",
            "attr2": 10000
        },
        "isAnonymous": false,
        "id": 2865,
        "dateCreated": "2017-08-22 13:50:51",
        "lastUpdated": "2017-08-22 13:50:51"
    }
]

HTTP Request

GET https://open.linkflowtech.com/contacts

Headers

Parameter Description
X-OpenApi-Token 通过App Key和App Secret换取的Access Token

Querystring parameters

Parameter Required Default Type Description
page false 0 Integer 第几页,从0开始
size false 200 Integer 每页条数
groupId fasle Integer 联系人所在的组,不填写默认为所有人这个组
search false String 搜索关键词

识别联系人

用途是创建或者更新联系人信息。

识别联系人时需要指定渠道信息,即表示该联系人是从某个渠道被创建或被识别,联系人的externalId是关键信息,用于打通通过埋点获取的信息与通过API导入的信息。

以一个电商网站(example.com)为例,电商网站本身使用Linkflow的网页埋点系统获取客户行为数据(具体可阅读JS SDK一节),同时又需要通过API向Linkflow同步订单数据。为了打通在该电商网站的客户数据,无论是埋点还是API导入,都会使用相同的externalIdchannelId用于标识该电商网站的一个客户。

channel参数包含了渠道信息,该接口一般用于打通网站埋点数据与后台API导入数据

POST /identifiers HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Token: Access Token

请求示例如下:

{
    "externalId": "u1234567", //应该与网页埋点中调用jssdk的identify的externalId一致
    "channel": {
        "channelId": "example.com", // 与电商网站的根域名一致
        "name": "example"  // 可选参数,渠道的名称
    },
    "name": "张三", // 以下是联系人相关信息,均为可选参数
    "dateOfBirthday": "1988-10-02 00:00:00",
    "mobilePhone": "13912341234",
    "email": "zhangsan@example.com",
    "country": "中国",
    "state": "上海",
    "city": "上海",
    "title": "Manager",
    "company": "ABC",
    "industry": "医疗",
    "department": "Marketing",
    "props": {
        "attr1": "单身",
        "attr2": 10000
    }
}

在提交请求之后,系统会返回更新后的联系人信息,示例如下,结构与获取联系人列表中的单个联系人一致。

HTTP/1.1 200 OK
Content-Type: application/json

{
    "id": 83,
    "dateCreated": "2017-08-04 17:54:10",
    "lastUpdated": "2018-05-10 16:22:57",
    "ver": 5,
    "anonymousId": null,
    "name": "张三",
    "nickname": ,
    "gender": "unknown",
    "dateOfBirthday": "1988-10-02 00:00:00",
    "avatar": null,
    "profilePhoto": null,
    "mobilePhone": "13912341234",
    "props": {
        "attr1": "单身",
        "attr2": 10000
    }
    ...
}

HTTP Request

POST https://open.linkflowtech.com/identifiers

Headers

Parameter Description
X-OpenApi-Token 通过App Key和App Secret换取的Access Token

Querystring parameters

Parameter Required Default Type Description
externalId true - String 系统外唯一标识
channel.channelId true - String 渠道唯一标识
channel.name false - String 渠道名称,可不填,如填写会做更新处理
name false - String 姓名
dateOfBirthday false - String 生日,格式 yyyy-MM-dd HH:mm:ss
mobilePhone false - String 手机号
email false - String 邮箱
country false - String 国家
state false - String 省份
city false - String 城市
title false - String 职务
company false - String 公司
industry false - String 行业
department false - String 部门
street false - String 地址
postalCode false - String 邮编
website false - String 网址
idCard false - String 身份证
props false - Object 自定义字段, key为元数据中配置的alias,value为值
weChatInfo.appId false - String 微信公众号appid
weChatInfo.appName false - String 微信公众号名称
weChatInfo.openId false - String 微信用户openId

获取联系人自定义字段元数据 (Deprecated)

请使用新接口,此接口保留三个月

GET /contacts/meta/userfields HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Token: Access Token

在提交请求之后,系统会返回一个JSON数组,里面包含了所有当前租户已创建的自定义字段,示例如下

HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "id": 1,
        "type": "text",
        "name": "婚姻状态",
        "col": "attr1"
    },
    {
        "id": 2,
        "type": "number",
        "name": "薪水",
        "col": "attr2"
    }
]

HTTP Request

GET https://open.linkflowtech.com/contacts/meta/userfields

Headers

Parameter Description
X-OpenApi-Token 通过App Key和App Secret换取的Access Token

获取联系人自定义字段元数据

第三方通过该接口,查询租户已创建的自定义字段。 在Linkflow中,联系人有自己的基础属性,如:姓名、邮箱、手机、城市等, 如果基础属性不能满足您的业务需求,您可以在Linkflow里面创建自定义字段, 并通过此接口,获取每个自定义属性对应的attr编号。

GET /v2/contacts/meta/properties HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Token: Access Token

在提交请求之后,系统会返回一个JSON数组,里面包含了所有当前租户已创建的自定义字段,示例如下

HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "label": "婚姻状态",
        "alias": "attr1",
        "dataType": "text",
        "id": 31
    },
    {
        "label": "薪水",
        "alias": "attr2",
        "dataType": "number",
        "id": 32
    }
]

HTTP Request

GET https://open.linkflowtech.com/v2/contacts/meta/properties

Headers

Parameter Description
X-OpenApi-Token 通过App Key和App Secret换取的Access Token

获取联系人详情

第三方通过该接口,通过手机号码、邮箱、(两个字段必须至少填写一个)精准查询符合特定条件的联系人列表。

GET /v2/contacts?email=test@nazaio.com&mobilePhone=13888888888&needOpenId=1 HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Token: Access Token

在提交请求之后,系统会返回一个JSON数组,里面包含了所有符合条件的联系人,示例如下

HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "id": 1,
        "dateCreated": "2017-07-19 20:00:57",
        "lastUpdated": "2017-08-04 12:00:00",
        "ver": null,
        "anonymousId": null,
        "name": "康熙",
        "nickname": "康熙",
        "gender": "male",
        "dateOfBirthday": "1991-11-11 00:00:00",
        "avatar": null,
        "profilePhoto": null,
        "mobilePhone": "13888888888",
        "homePhone": "025-83729999",
        "email": "test@nazaio.com",
        "country": "中国",
        "state": "江苏",
        "street": "雨花",
        "city": "南京",
        "postalCode": "210000",
        "comments": "备注",
        "userName": null,
        "title": "java",
        "website": "https://www.linkflowtech.com/",
        "company": "上海源犀信息科技有限公司",
        "industry": "IT",
        "department": "研发",
        "idCard": null,
        "utm": {
            "source": "source",
            "campaign": "campaign",
            "medium": "medium",
            "content": "content",
            "term": "term"
        },
        "props": {
            "attr1": "单身",
            "attr2": 10000
        },
        "isAnonymous": false,
        "openIds": [
            {
                "channelId": "wx5a39a02868a39999",
                "channelName": "渠道名称A",
                "openId": "olbUb0gzPm0Z1eDkEhvq_Ieoqfa"
            },
            {
                "channelId": "wxaceb2577e5f99999",
                "channelName": "渠道名称B",
                "openId": "olbUb0gzPm0Z1eDkEhvq_NaWOzSc"
            }
        ]
    }
]

HTTP Request

GET https://open.linkflowtech.com/v2/contacts

Headers

Parameter Description
X-OpenApi-Token 通过App Key和App Secret换取的Access Token

Querystring parameters

Parameter Required Default Type Description
email true - String 电子邮箱(电子邮箱和手机号两个字段至少填写一个)
mobilePhone true - String 手机号(电子邮箱和手机号两个字段至少填写一个)
needOpenId false - String 是否获取联系人的openid。1为获取,不填则默认为不需要获取。

Error Code

HTTP Status Code Parameter Description
500 B00030 电子邮箱和手机号两个字段至少存在一个

批量获取联系人详情

第三方通过该接口,通过联系人contactId列表获取联系人详情数据。最多支持一次拉取100条。

GET /v2/contacts_bulk?ids=1,3,5,7,8&needOpenId=1 HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Token: Access Token

在提交请求之后,系统会返回一个JSON数组,里面包含了所有符合条件的联系人,示例如下

HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "id": 1,
        "dateCreated": "2017-07-19 20:00:57",
        "lastUpdated": "2017-08-04 12:00:00",
        "ver": null,
        "anonymousId": null,
        "name": "康熙",
        "nickname": "康熙",
        "gender": "male",
        "dateOfBirthday": "1991-11-11 00:00:00",
        "avatar": null,
        "profilePhoto": null,
        "mobilePhone": "13888888888",
        "homePhone": "025-83729999",
        "email": "test@nazaio.com",
        "country": "中国",
        "state": "江苏",
        "street": "雨花",
        "city": "南京",
        "postalCode": "210000",
        "comments": "备注",
        "userName": null,
        "title": "java",
        "website": "https://www.linkflowtech.com/",
        "company": "上海源犀信息科技有限公司",
        "industry": "IT",
        "department": "研发",
        "idCard": null,
        "utm": {
            "source": "source",
            "campaign": "campaign",
            "medium": "medium",
            "content": "content",
            "term": "term"
        },
        "props": {
            "attr1": "单身",
            "attr2": 10000
        },
        "isAnonymous": false,
        "openIds": [
            {
                "channelId": "wx5a39a02868a39999",
                "channelName": "渠道名称A",
                "openId": "olbUb0gzPm0Z1eDkEhvq_Ieoqfa"
            },
            {
                "channelId": "wxaceb2577e5f99999",
                "channelName": "渠道名称B",
                "openId": "olbUb0gzPm0Z1eDkEhvq_NaWOzSc"
            }
        ]
    },
    {
        "id": 3,
        "dateCreated": "2017-03-29 16:16:57",
        "lastUpdated": "2017-03-29 16:16:57",
        "ver": null,
        "anonymousId": "olbUb0gzPm0Z1eDkEhvq_NaWOzSc",
        "name": "Kyle Lee",
        "nickname": "Kyle Lee",
        "gender": "male",
        "dateOfBirthday": null,
        "avatar": "http://wx.qlogo.cn/mmopen/UOlZKghBxaY81Ynib8fuQyRIJpyJQpIuGNONH6DLicqOdE8uskPI8KYbn1aUdnA0kPkhCfVV4m80c1z6Lh9bmu7w/0",
        "profilePhoto": null,
        "mobilePhone": null,
        "homePhone": null,
        "email": "bb@nazaio.com",
        "country": "中国",
        "state": "广东",
        "street": null,
        "city": "广州",
        "postalCode": null,
        "comments": "",
        "userName": null,
        "title": null,
        "website": null,
        "company": null,
        "industry": null,
        "department": null,
        "idCard": null,
        "utm": {
            "source": "source",
            "campaign": "campaign",
            "medium": "medium",
            "content": "content",
            "term": "term"
        },
        "props": {
            "attr1": "已婚",
            "attr2": 18000
        },
        "isAnonymous": false,
        "openIds": [
            {
                "channelId": "wx5a39a02868a39316",
                "channelName": "打头哇万",
                "openId": "olbUb0gzPm0Z1eDkEhvq_111"
            },
            {
                "channelId": "wxaceb2577e5f98632",
                "channelName": "联否Linkflow",
                "openId": "olbUb0gzPm0Z1eDkEhvq_NaWOzSc"
            }
        ]
    },
    {
        "id": 5,
        "dateCreated": "2017-03-29 22:37:22",
        "lastUpdated": "2017-03-29 22:37:22",
        "ver": null,
        "anonymousId": "olbUb0q01JkL55FwJxVpuA1f3suk",
        "name": "Alpha",
        "nickname": "Alpha",
        "gender": "male",
        "dateOfBirthday": null,
        "avatar": "http://wx.qlogo.cn/mmopen/PiajxSqBRaEKZJSIIapCZUPDAG7quD6y3WkvTVlMLibTHlYaV6IuiaeEaw3Se5DraR73bXN0PGUia8kekibmDgdkVHw/0",
        "profilePhoto": null,
        "mobilePhone": null,
        "homePhone": null,
        "email": "cc@nazaio.com",
        "country": "中国",
        "state": "江苏",
        "street": null,
        "city": "南京",
        "postalCode": null,
        "comments": "",
        "userName": null,
        "title": null,
        "website": null,
        "company": null,
        "industry": null,
        "department": null,
        "idCard": null,
        "utm": {
            "source": "source",
            "campaign": "campaign",
            "medium": "medium",
            "content": "content",
            "term": "term"
        },
        "props": {
            "attr1": "已婚",
            "attr2": 20000
        },
        "isAnonymous": false,
        "openIds": [
            {
                "channelId": "wxaceb2577e5f0000",
                "channelName": "渠道名称A",
                "openId": "olbUb0q01JkL55FwJxVpuA1f3suk"
            }
        ]
    }
]

HTTP Request

GET https://open.linkflowtech.com/v2/contacts_bulk

Headers

Parameter Description
X-OpenApi-Token 通过App Key和App Secret换取的Access Token

Querystring parameters

Parameter Required Default Type Description
ids true - List 联系人id数组,每次传入的id个数不能超过100个,如超过则只取前100个id的数据
needOpenId false - String 是否获取联系人的openid。1为获取,不填则默认为不需要获取。

批量获取联系人ID

第三方通过该接口,按照更新时间查询符合特定条件的联系人ID列表。

GET /v2/contacts_bulk/ids?page=0&size=5&minUpdateTime=2017-01-01&maxUpdateTime=2018-01-01 HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Token: Access Token

在提交请求之后,系统会返回一个符合条件的联系人ID数组,示例如下

HTTP/1.1 200 OK
Content-Type: application/json

[
    1,
    3,
    5,
    7,
    8
]

HTTP Request

GET https://open.linkflowtech.com/v2/contacts_bulk/ids

Headers

Parameter Description
X-OpenApi-Token 通过App Key和App Secret换取的Access Token

Querystring parameters

Parameter Required Default Type Description
page true - number 第几页,从0开始
size true - number 每页条数 注:page*size<=10000
maxUpdateTime false - datetime 最大更新时间, 示例:2018-01-01
minUpdateTime false - datetime 最小更新时间, 示例:2018-01-01

Error Code

HTTP Status Code Parameter Description
500 B00030 page*size必须小于等于10000

更新联系人

第三方通过该接口,通过联系人id,更新联系人信息。

PUT /v2/contacts/1 HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Token: Access Token

请求示例如下:

{
    "id": 1,
    "name": "康熙",
    "nickname": "康熙",
    "gender": "male",
    "dateOfBirthday": "1991-11-11 00:00:00",
    "avatar": null,
    "mobilePhone": "13888888888",
    "homePhone": "025-83729999",
    "email": "test@nazaio.com",
    "country": "中国",
    "state": "江苏",
    "street": "雨花",
    "city": "南京",
    "postalCode": "210000",
    "comments": "备注",
    "userName": null,
    "title": "java",
    "website": "https://www.linkflowtech.com/",
    "company": "上海源犀信息科技有限公司",
    "industry": "IT",
    "department": "研发",
    "props": {
        "attr1": "单身",
        "attr2": 10000
    }
}

在提交请求之后,系统会返回更新后的联系人信息,示例如下,结构与获取联系人列表中的单个联系人一致。

HTTP/1.1 200 OK
Content-Type: application/json

{
    "id": 1,
    "dateCreated": "2017-08-04 17:54:10",
    "lastUpdated": "2018-05-10 16:22:57",
    "ver": 2,
    "anonymousId": null,
    "name": "康熙",
    "nickname": "康熙",
    "gender": "male",
    "dateOfBirthday": "1991-11-11 00:00:00",
    "avatar": null,
    "profilePhoto": null,
    "mobilePhone": "13888888888",
    "props": {
        "attr1": "单身",
        "attr2": 10000
    }
    ...
}

HTTP Request

PUT https://open.linkflowtech.com/v2/contacts/{contactId}

Headers

Parameter Description
X-OpenApi-Token 通过App Key和App Secret换取的Access Token

Querystring parameters

Parameter Required Default Type Description
id true - Integer id
name false - String 姓名
avatar false - String 头像地址
gender false - String 性别(male/female/unknown)
mobilePhone false - String 手机号
userName false - String 用户名
nickname false - String 昵称
email false - String 邮箱
country false - String 国家
state false - String 省份
city false - String 城市
title false - String 职务
company false - String 公司
industry false - String 行业
department false - String 部门
comments false - String 备注
website false - String 网址
dateOfBirthday false - String 生日, 示例:1991-11-11 00:00:00
props false - Object 用户自定义字段,按照示例中的格式修改,修改联系人时,只取props中value中的数据

Error Code

HTTP Status Code Parameter Description
404 B00008 没有找到此ID的联系人

通过微信UnionId获取微信公众号OpenId

GET /v1/wx/wx1f7fbd28ac009cd0/user?unionId=ogtgm1A_UD5C8MJ3YR HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Token: Access Token

在提交请求之后,系统会返回一个JSON结构,示例如下

HTTP/1.1 200 OK
Content-Type: application/json

{
    "openId": "o0ZYI1ZKkYGLfdq",
    "unionId": "ogtgm1A_UD5C8MJ3YR",
    "status": true,
    "subscribeTime": 1577956711
}

HTTP Request

GET https://open.linkflowtech.com/v1/wx/{appId}/user

Headers

Parameter Description
X-OpenApi-Token 通过App Key和App Secret换取的Access Token

Querystring parameters

Parameter Required Default Type Description
appId true - String 渠道Id
unionId true - String UnionId

根据联系人externalId获取联系人信息

GET /identifiers?externalId=ogtgm1HJ0m0Dk_Ges&channelId=wx1f7fbd28ac009cd0&channelType=WECHAT HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Token: Access Token

在提交请求之后,系统会返回一个JSON结构,示例如下

HTTP/1.1 200 OK
Content-Type: application/json

{
    "dateCreated": "2019-06-25 18:10:50",
    "lastUpdated": "2020-04-08 17:05:52",
    "ver": 50,
    "id": 19461,
    "anonymousId": "o0ZYI1Tx1WHnV06",
    "name": "小程序test",
    "nickname": "片叶",
    "gender": "male",
    "avatar": "http://thirdwx.qlogo.cn/mmopen/ukl",
    "mobilePhone": "13800000000",
    "email": "email",
    "country": "China",
    "state": "Jiangsu",
    "street": "",
    "city": "Nanjing",
    "comments": "test_wei",
    "website": "",
    "utm": {
        "source": "source",
        "campaign": "campaign",
        "medium": "medium",
        "content": "content"
    },
    "props": {
        "attr1": "单身",
        "attr2": 10000
    },
    "isAnonymous": false,
    "lastSeen": "2020-04-14 15:28:53",
    "lastTagged": "2019-11-18 23:24:59",
    "identified": "2019-06-25 18:10:50",
    "openIds": []
}

HTTP Request

GET https://open.linkflowtech.com/identifiers

Headers

Parameter Description
X-OpenApi-Token 通过App Key和App Secret换取的Access Token

Querystring parameters

Parameter Required Default Type Description
externalId true - String externalId
channelId true - String 渠道账号
channelType false UDC String 渠道类型

渠道

创建自定义渠道

自定义渠道,channelTypeUDC,一般用于纯后台导入数据不需要数据打通的场景,如ERP,CRM的数据导入。

channelId如果不输入则由系统生成。

POST /udc HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Token: Access Token

请求示例如下:

{
  "channelId": "udc_123", // 可选参数, 渠道唯一标识,在相同channelType的范围内全系统唯一
  "name": "UDC A"  // 渠道名称
}

在提交请求之后,系统会返回更新后的渠道信息

HTTP/1.1 200 OK
Content-Type: application/json

{
    "id": 83,
    "dateCreated": "2017-08-04 17:54:10",
    "lastUpdated": "2018-05-10 16:22:57",
    "channelId": "udc_123",
    "channelType": "UDC",
    "name": "UDC A"
}

HTTP Request

POST https://open.linkflowtech.com/udc

Headers

Parameter Description
X-OpenApi-Token 通过App Key和App Secret换取的Access Token

Querystring parameters

Parameter Required Default Type Description
name true - String 渠道名称
channelId false - String 渠道唯一标识,如果不输入由系统生成

获取ChannelType列表

获取所有channelType。channelType-渠道类型是指一个App的类型, 比如微信服务号就是一种App的类型,对应的channelType为WECHAT; 又比如自定义渠道也是一种App的类型,对应的channelType为UDC。 在Linkflow里channelType+channelId可以确认一个渠道。

GET /channels/meta/types HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Token: Access Token

在提交请求之后,系统会返回一个JSON数组,里面包含了所有ChannelType,示例如下

HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "channelType": "LINK_FLOW",
        "channelTypeName": "联否"
    },
    {
        "channelType": "WECHAT",
        "channelTypeName": "微信"
    },
    {
        "channelType": "WORKWECHAT",
        "channelTypeName": "企业微信"
    },
    {
        "channelType": "SMS_YUN_PIAN",
        "channelTypeName": "云片网"
    },
    {
        "channelType": "WENJUANWANG",
        "channelTypeName": "问卷网"
    },
    {
        "channelType": "DINGTALK",
        "channelTypeName": "钉钉"
    },
    {
        "channelType": "SEND_CLOUD",
        "channelTypeName": "SendCloud"
    },
    {
        "channelType": "JINSHUJU",
        "channelTypeName": "金数据"
    },
    {
        "channelType": "PRIVATE_APP",
        "channelTypeName": "私有应用"
    },
    {
        "channelType": "SALESFORCE",
        "channelTypeName": "Salesforce"
    },
    {
        "channelType": "VHALL",
        "channelTypeName": "微吼"
    },
    {
        "channelType": "YOUZAN",
        "channelTypeName": "有赞"
    },
    {
        "channelType": "EXMAIL",
        "channelTypeName": "腾讯企业邮箱"
    },
    {
        "channelType": "DUMMY",
        "channelTypeName": "DUMMY"
    },
    {
        "channelType": "FENXIANGXIAOKE",
        "channelTypeName": "纷享销客"
    },
    {
        "channelType": "SMS_TENCENT",
        "channelTypeName": "腾讯短信"
    },
    {
        "channelType": "GENSEE",
        "channelTypeName": "展视互动"
    },
    {
        "channelType": "AIKE",
        "channelTypeName": "爱客"
    },
    {
        "channelType": "HUODONGXING",
        "channelTypeName": "活动行"
    },
    {
        "channelType": "WEIMOB",
        "channelTypeName": "微盟"
    },
    {
        "channelType": "QLCHAT",
        "channelTypeName": "千聊"
    },
    {
        "channelType": "MYSQL",
        "channelTypeName": "mysql"
    },
    {
        "channelType": "SQL_SERVER",
        "channelTypeName": "sqlserver"
    },
    {
        "channelType": "UDC",
        "channelTypeName": "user_defined_channel"
    }
]

HTTP Request

GET https://open.linkflowtech.com/channels/meta/types

Headers

Parameter Description
X-OpenApi-Token 通过App Key和App Secret换取的Access Token

联系人渠道帐号

获取联系人渠道帐号列表

GET /contacts/{id}/identities
HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Token: Access Token

在提交请求之后,系统会返回一个JSON数组,里面包含了该联系人的所有渠道账号信息,示例如下

HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "dateCreated": "2018-03-23 11:42:54",
        "lastUpdated": "2020-01-02 17:18:32",
        "ver": 25,
        "id": 4234,
        "contactId": 2995,
        "channelId": 174,
        "anonymousId": "o0ZYI1ZKkYGLfdqPIWcVlQ5XRoE4",
        "nickname": "张三",
        "isActive": true,
        "externalId": "ogtgm1A_UD5C8MJ3YRT0ZJ9LfV44",
        "channel": {
            "id": 174,
            "channelId": "wx1f7fbd28ac009cd0",
            "channelType": "WECHAT",
            "name": "ALPHA",
            "status": "ACTIVE"
        }
    },
    {
        "dateCreated": "2020-02-12 12:02:59",
        "lastUpdated": "2020-02-12 12:02:59",
        "ver": 1,
        "id": 656048,
        "contactId": 2995,
        "channelId": 416,
        "mobilePhone": "13645183960",
        "isActive": true,
        "externalId": "o0ZYI1ZKkYGLfdqPIWcVlQ5XRoE4",
        "channel": {
            "id": 416,
            "channelId": "udc_15PycxODaN",
            "channelType": "UDC",
            "name": "官网",
            "status": "ACTIVE"
        }
    }
]

HTTP Request

GET https://open.linkflowtech.com/contacts/{id}/identities

Headers

Parameter Description
X-OpenApi-Token 通过App Key和App Secret换取的Access Token

Path Parameters

Parameter Required Default Type Description
id true - Integer 联系人ID

事件

创建自定义事件

POST /ude HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Token: Access Token

{
    "event": "UDE_1MG2I6HGJ",
    "channelId": "example.com",
    "externalId": "abc123",
    "eventDate": 1509180345000,
    "attr1": "DD1232",
    "attr2": "200.00",
    "items":[
        {
            "event": "UDE_SUBITEM",
            "attr1": "item1"
        }
    ]
}

在提交请求之后,系统会返回一个已创建事件的结构,示例如下

HTTP/1.1 200 OK
Content-Type: application/json

{
    "externalId": "abc123",
    "channelId": "example.com",
    "event": "UDE_1MG2I6HGJ",
    "channelType": "UDC",
    "eventDate": 1509180345000,
    "attr1": "DD1232",
    "attr2": "200.00",
    "id": 902,
    "dateCreated": "2017-11-30 19:37:12",
    "lastUpdated": "2017-11-30 19:37:12",
    "ver": 1
}

HTTP Request

POST https://open.linkflowtech.com/ude

Headers

Parameter Description
X-OpenApi-Token 通过App Key和App Secret换取的Access Token

Request parameters

Parameter Required Default Type Description
event true String 事件编码,在新建自定义事件的UI上可见
channelId true String 渠道ID,一般是网站的根域名
channelType false UDC String 渠道类型,默认是UDC
externalId true String 在本系统内用户的唯一标识,一般为用户id
eventDate false Long 时间戳精确到毫秒级别
items false Array 子事件列表,子事件只需要传event以及attr字段
attr1 false String 如该自定义事件设置了Attr1的字段含义那就需要在这里填值
attr2 false String 同上
attr3 false String 同上
attr4 false String 同上
attr5 false String 同上
attr6 false String 同上
attr7 false String 同上
attr8 false String 同上
attr9 false String 同上
attr10 false String 同上
attr11 false String 同上
attr12 false String 同上
attr13 false String 同上
attr14 false String 同上
attr15 false String 同上
attr16 false String 同上
attr17 false String 同上
attr18 false String 同上
attr19 false String 同上
attr20 false String 同上
utm.source false - String utm参数
utm.campaign false - String utm参数
utm.medium false - String utm参数
utm.content false - String utm参数
utm.term false - String utm参数

获取联系人事件

GET /contacts/{contactId}/events HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Token: Access Token

在提交请求之后,系统会返回一个该联系人的事件列表,示例如下

HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "dateCreated": "2019-12-07 17:07:11",
        "lastUpdated": "2019-12-07 17:07:11",
        "ver": 1,
        "id": 1126251,
        "contactIdentityId": 313114,
        "anonymousId": "66bd19ea-7859-4876-9691-db1232e47df7",
        "eventDate": 1575709631193,
        "channelId": "test-yyp",
        "channelName": "官网",
        "event": "WEBSITE__PAGE_VIEW",
        "sdkVersion": "19.10.R1",
        "sdkType": "JS SDK",
        "os": "iOS",
        "osVersion": "13.2.3",
        "browser": "微信",
        "browserVersion": "7.0.8",
        "country": "中国",
        "province": "江苏",
        "city": "南京",
        "manufacturer": "Apple",
        "deviceModel": "IPHONE",
        "ip": "117.62.191.148",
        "triggerFlow": true,
        "channelAppId": 2,
        "contactId": 2995,
        "attr1": "Wechat-H5-Demo",
        "attr2": "https://h5.leadswarp.com/wechat-h5.html?utm_source=%E6%9D%A5%E6%BA%90&utm_campaign=%E6%B4%BB%E5%8A%A8&utm_medium=%E5%AA%92%E4%BB%8B&utm_content=%E5%86%85%E5%AE%B9&utm_term=%E5%85%B3%E9%94%AE%E5%AD%97",
        "attr3": "Wechat,H5,Demo,OpenID",
        "attr4": "",
        "attr5": "",
        "utm": {
            "source": "来源",
            "campaign": "活动",
            "medium": "媒介",
            "content": "内容",
            "term": "关键字"
        }
    },
    {
        "dateCreated": "2019-12-07 16:46:48",
        "lastUpdated": "2019-12-07 16:46:48",
        "ver": 1,
        "id": 1066758,
        "contactIdentityId": 313113,
        "eventDate": 1575708408183,
        "channelId": "SHORTURL_15",
        "channelName": "短链接",
        "event": "SHORTURL__DWZ_REDIRECT",
        "triggerFlow": true,
        "contactId": 2995,
        "attr1": "q8T1vC",
        "attr2": "http://apitest.wenjuan.com/s/Bj2Az2?utm_source=%E5%BE%AE%E4%BF%A1%E6%96%87%E7%AB%A0&utm_campaign=%E6%98%9F%E8%80%80%E6%B3%95%E5%9B%BD%E6%96%B0%E8%A3%85%E6%B4%BB%E5%8A%A8&utm_medium=%E5%AA%92%E4%BB%8B&utm_content=test.utm&utm_term=%E9%97%AE%E5%8D%B7%E7%...",
        "attr3": "WENJUANWANG",
        "attr4": "apitest.wenjuan.com",
        "utm": {
            "source": "微信文章",
            "campaign": "星耀法国新装活动",
            "medium": "媒介",
            "content": "test.utm",
            "term": "问卷网测试"
        }
    },
    ...
]

HTTP Request

GET https://open.linkflowtech.com/contacts/{contactId}/events

Headers

Parameter Description
X-OpenApi-Token 通过App Key和App Secret换取的Access Token

Querystring parameters

Parameter Required Default Type Description
contactId true - Long 联系人ID
page false 0 Integer 第几页,从0开始
size false 200 Integer 每页条数

游标获取所有事件

GET /events/lite HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Token: Access Token

在提交请求之后,系统会返回一个事件列表,示例如下

HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "dateCreated": "2019-12-07 17:07:11",
        "lastUpdated": "2019-12-07 17:07:11",
        "ver": 1,
        "id": 1126251,
        "contactIdentityId": 313114,
        "anonymousId": "66bd19ea-7859-4876-9691-db1232e47df7",
        "eventDate": 1575709631193,
        "channelId": "test-yyp",
        "channelName": "官网",
        "event": "WEBSITE__PAGE_VIEW",
        "sdkVersion": "19.10.R1",
        "sdkType": "JS SDK",
        "os": "iOS",
        "osVersion": "13.2.3",
        "browser": "微信",
        "browserVersion": "7.0.8",
        "country": "中国",
        "province": "江苏",
        "city": "南京",
        "manufacturer": "Apple",
        "deviceModel": "IPHONE",
        "ip": "117.62.191.148",
        "triggerFlow": true,
        "channelAppId": 2,
        "contactId": 2995,
        "attr1": "Wechat-H5-Demo",
        "attr2": "https://h5.leadswarp.com/wechat-h5.html?utm_source=%E6%9D%A5%E6%BA%90&utm_campaign=%E6%B4%BB%E5%8A%A8&utm_medium=%E5%AA%92%E4%BB%8B&utm_content=%E5%86%85%E5%AE%B9&utm_term=%E5%85%B3%E9%94%AE%E5%AD%97",
        "attr3": "Wechat,H5,Demo,OpenID",
        "attr4": "",
        "attr5": "",
        "utm": {
            "source": "来源",
            "campaign": "活动",
            "medium": "媒介",
            "content": "内容",
            "term": "关键字"
        }
    },
    {
        "dateCreated": "2019-12-07 16:46:48",
        "lastUpdated": "2019-12-07 16:46:48",
        "ver": 1,
        "id": 1066758,
        "contactIdentityId": 313113,
        "eventDate": 1575708408183,
        "channelId": "SHORTURL_15",
        "channelName": "短链接",
        "event": "SHORTURL__DWZ_REDIRECT",
        "triggerFlow": true,
        "contactId": 2995,
        "attr1": "q8T1vC",
        "attr2": "http://apitest.wenjuan.com/s/Bj2Az2?utm_source=%E5%BE%AE%E4%BF%A1%E6%96%87%E7%AB%A0&utm_campaign=%E6%98%9F%E8%80%80%E6%B3%95%E5%9B%BD%E6%96%B0%E8%A3%85%E6%B4%BB%E5%8A%A8&utm_medium=%E5%AA%92%E4%BB%8B&utm_content=test.utm&utm_term=%E9%97%AE%E5%8D%B7%E7%...",
        "attr3": "WENJUANWANG",
        "attr4": "apitest.wenjuan.com",
        "utm": {
            "source": "微信文章",
            "campaign": "星耀法国新装活动",
            "medium": "媒介",
            "content": "test.utm",
            "term": "问卷网测试"
        }
    },
    ...
]

HTTP Request

GET https://open.linkflowtech.com/events/lite

Headers

Parameter Description
X-OpenApi-Token 通过App Key和App Secret换取的Access Token

Querystring parameters

Parameter Required Default Type Description
lastMaxId true 0 Integer 上一次返回的事件列表的最大id,第一次可以传0
size false 200 Integer 每页条数

标签组

查询标签组

GET /v2/groups?id=126&name=wechat&groupType=static&ext1=wx134210231&ext2=wechattagid HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Token: Access Token

在提交请求之后,系统会返回一个JSON数组,里面包含了所有符合条件的标签组,示例如下

HTTP/1.1 200 OK
Content-Type: application/json
[
    {
        "lastUpdated": "2017-12-07 16:59:38",
        "groupType": "static",
        "dateCreated": "2017-12-07 16:59:38",
        "name": "618潜在客户",
        "id": 47
    },
    {
        "lastUpdated": "2017-12-11 16:52:39",
        "groupType": "dynamic",
        "dateCreated": "2017-12-11 11:20:04",
        "name": "最近7天活跃客户",
        "id": 51
    }
]

HTTP Request

GET https://open.linkflowtech.com/v2/groups

Headers

Parameter Description
X-OpenApi-Token 通过App Key和App Secret换取的Access Token

Querystring parameters

Parameter Required Default Type Description
id false null Integer 标签组id
name false null String 标签组名称(模糊查询)
groupType false null String static或dynamic
lastUpdated false null Date 最小更新时间
ext1 false null String 微信appId
ext2 false null String 微信标签组id

创建标签组

POST /v2/groups HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Token: Access Token
{
  "name" : "this-is-group-name",
  "groupType" : "static",
  "ext1" : "wechatappid",
  "ext2" : "wechattagid"
}

在提交请求之后,系统会返回刚创建的标签组,示例如下

HTTP/1.1 200 OK
Content-Type: application/json
{
    "lastUpdated": "2018-06-25 14:58:22",
    "groupType": "static",
    "dateCreated": "2018-06-25 14:58:22",
    "name": "this-is-group-name",
    "id": 334
}

HTTP Request

POST https://open.linkflowtech.com/v2/groups

Headers

Parameter Description
X-OpenApi-Token 通过App Key和App Secret换取的Access Token

Request Parameters

Parameter Required Default Type Description
name true - String 标签组名称
groupType false static String 默认为static,目前不能设置别的值
ext1 false null String 微信appId
ext2 false null String 微信标签组id

Error Code

HTTP Status Code Parameter Description
400 B00001 标签组已存在
412 B00157 标签组数量已达到上限

查询联系人的标签组

GET /v2/contacts/${contactId}/groups?groupType=static HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Token: Access Token

在提交请求之后,系统会返回联系人的标签组,示例如下

HTTP/1.1 200 OK
Content-Type: application/json
[
    {
        "lastUpdated": "2017-12-07 16:59:38",
        "groupType": "static",
        "dateCreated": "2017-12-07 16:59:38",
        "name": "618潜在客户",
        "id": 47
    },
    {
        "lastUpdated": "2017-12-11 16:52:39",
        "groupType": "static",
        "dateCreated": "2017-12-11 11:20:04",
        "name": "关注用户",
        "id": 51
    }
]

HTTP Request

GET /v2/contacts/${contactId}/groups

Headers

Parameter Description
X-OpenApi-Token 通过App Key和App Secret换取的Access Token

Path Parameters

Parameter Required Default Type Description
contactId true - Integer 联系人id

Request Parameters

Parameter Required Default Type Description
groupType false null String 标签组类型

Error Code

HTTP Status Code Parameter Description
404 B00008 联系人不存在

查询标签组联系人

GET /v2/groups/{groupId}/contacts?memberId=2346&size=500 HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Token: Access Token

在提交请求之后,系统会返回标签组的联系人,示例如下

HTTP/1.1 200 OK
Content-Type: application/json
[
    {
        "lastUpdated": "2018-04-19 11:19:41",
        "dateCreated": "2018-04-19 11:19:41",
        "contact": {
            "mobilePhone": null,
            "name": "'非常满意'&*-^!@#$%{}[]\\|、\"\"「」【】",
            "id": 17771,
            "email": null
        },
        "contactGroupId": 252,
        "version": null,
        "memberId": 1243167
    },
    {
        "lastUpdated": "2018-04-19 14:54:53",
        "dateCreated": "2018-04-19 14:54:53",
        "contact": {
            "mobilePhone": null,
            "name": "tiger",
            "id": 17760,
            "email": null
        },
        "contactGroupId": 252,
        "version": null,
        "memberId": 1243184
    }
]

HTTP Request

GET /v2/groups/{groupId}/contacts

Headers

Parameter Description
X-OpenApi-Token 通过App Key和App Secret换取的Access Token

Path Parameters

Parameter Required Default Type Description
groupId true - Integer 标签组id

Querystring parameters

Parameter Required Default Type Description
memberId false 0 Integer 起始memberId(不包含)
size false 500 Integer 查询数量,最大值:500

Error Code

HTTP Status Code Parameter Description
400 B00031 size超过最大数量
404 B00008 标签组不存在

添加标签组联系人

POST /v2/groups/{groupId}/contacts HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Token: Access Token
[
  17760, 17771, 17578
]

在提交请求之后,系统会返回加组结果,示例如下

HTTP/1.1 200 OK
Content-Type: application/json
{
    "success": [
        17760,
        17771,
        17578
    ],
    "failure": [],
    "group": {
        "lastUpdated": "2018-06-25 14:58:10",
        "groupType": "static",
        "dateCreated": "2018-06-25 10:15:46",
        "name": "双11vip客户",
        "id": 333
    }
}

HTTP Request

POST /v2/groups/{groupId}/contacts

Headers

Parameter Description
X-OpenApi-Token 通过App Key和App Secret换取的Access Token

Path Parameters

Parameter Required Default Type Description
groupId true - Integer 标签组id

Error Code

HTTP Status Code Parameter Description
400 B00031 联系人超过最大数量
404 B00008 标签组不存在

删除标签组联系人

DELETE /v2/groups/{groupId}/contacts HTTP/1.1
User-Agent: MyClient/1.0.0
Accept: application/json
X-OpenApi-Token: Access Token
[
  17760, 17771, 17578
]

在提交请求之后,系统会返回删组结果,示例如下

HTTP/1.1 200 OK
Content-Type: application/json
{
    "success": [
        17760,
        17771,
        17578
    ],
    "failure": [],
    "group": {
        "lastUpdated": "2018-06-25 14:58:10",
        "groupType": "static",
        "dateCreated": "2018-06-25 10:15:46",
        "name": "双11vip客户",
        "id": 333
    }
}

HTTP Request

DELETE /v2/groups/{groupId}/contacts

Headers

Parameter Description
X-OpenApi-Token 通过App Key和App Secret换取的Access Token

Path Parameters

Parameter Required Default Type Description
groupId true - Integer 标签组id

Error Code

HTTP Status Code Parameter Description
400 B00031 联系人超过最大数量
404 B00008 标签组不存在