小程序自定义传参方案文档说明

概述

因为小程序自身限制,暂时无法通过API获取用户信息,所有Udesk采用小程序支持的 session-from 参数实现该功能 session-from 小程序最多支持1000字符串,为了正常使用,该字段的长度尽量<=1000字节 支持客户的系统信息、客户自定义字段、业务标题、业务自定义字段

配置方法

  1. 登录微信小程序,网址:https://mp.weixin.qq.com/
  2. 进入 开发->基本配置 获取 开发者ID(AppID)、开发者密码(AppSecret)
  3. 进入udesk: 管理中心->渠道管理->小程序->接入微信小程序 填写开发者ID、开发者密码
  4. 将生成的URL地址和Token粘贴到小程序后台消息推送中,将小程序后台随机生成的EcodingAESKey粘贴到系统中, 以及APPSercret粘贴到系统中
  5. 可通过此小程序获取用户信息

支持字段

字段说明

客户字段参考

业务记录字段参考

参数名称 说明
customer_name 客户姓名,默认为‘小程序用户’(系统字段)
nick_name 昵称
avatar 头像
email 邮箱
customer_token 客户外部唯一标识 等同于token
ip ip
description 客户描述
organization_id 所属公司ID
tags 标签
owner_id 客户负责人ID
owner_group_id 客户负责组ID
level 等级
cellphones 电话,格式为数组,包括参数id(电话id)、cellphone(电话号码),id为空时表示添加客户电话, 非空时表示更新客户电话,格式详见示例
other_emails 其他邮箱,格式为数组,包括参数id(邮箱id)、other_email(其他邮箱名),id为空时表示添加客户邮箱, 非空时表示更新客户邮箱,格式详见示例
custom_fields 自定义字段
generated_channel 自定义渠道名称
## 使用说明

参数配置

var customer_info = {
    "customer_name": "客户姓名", // Udesk系统字段
    "email": "test@udesk.cn", //邮箱
    "customer_token": 'test_token', //客户外部ID
    "generated_channel": '自定义渠道名',
    "ip": "192.168.1.1", //IP
    "description": "描述",
    "organization_id": 1, //所属公司ID
    "tags": "标签1,标签2", //标签 已英文号分割
    "owner_id": 1, //客户负责人ID
    "owner_group_id": 1, //客户负责组ID
    "level": "normal", // 等级
    "cellphones": [
      ["", "13100000002"], //数组 [[电话ID, 电话文本]]
      ["3", "13100000003"] //id为空字符串或null时表示新增电话号,有值时表示更新此id对应的电话号码
      ], 
    "other_emails": [
      ["", "13100000002@udesk.cn"], //数组 [[邮箱ID, 邮箱]]
      ["1", "13100000003@udesk.cn"] //id为空字符串或null时表示新增邮箱,有值时表示更新此id对应的邮箱
      ], 
    "custom_fields": {
        "TextField_1": "普通文本内容",
    }
}

var nick_name = "张三" // 小程序客户昵称
var avatar = "https://www.udesk.cn/images/index/logo1124.png" // 客户头像

var note_info = {
    "title": "业务记录标题",
    "custom_fields": {
        "TextField_1": "普通文本内容",
    }
}

var unionid = "ocpX10_1hQmCVGXzKrMwu-g7yuzU" // 小程序用户unionid

//转换成字符串
customer_info_str = JSON.stringify(customer_info)
note_info_str = JSON.stringify(note_info)

内嵌示例


<!-- session-from = "udesk|小程序用户昵称|头像|customer^客户信息|note^业务记录信息|unionid^小程序用户unionid" -->

<button open-type="contact" size="mini" session-from="udesk|{{nick_name}}|{{avatar}}|customer^{{customer_info_str}}|note^{{note_info_str}}|unionid^{{unionid}}">进入客服会话</button>

帮助中心接入说明

http://udesk.udesk.cn/hc/articles/54089

参考示例代码

https://github.com/wangmingle/weixin_mini_test.git

行为轨迹SDK

使用前,需先开通行为轨迹,开通行为轨迹请找对应实施。 Udesk小程序SDK,用来收集客户的商品浏览轨迹、订单事件等,并在 IM控制台>会话>访客轨迹中显示。 如果没有在Udesk客服系统设置小程序,需要在【管理中心>渠道管理>小程序 - 接入微信小程序】

获取与使用SDK

下载SDK成功后,把该文件放到小程序根目录utils目录下,在app.js引入 import UdeskSdk from './utils/ud-sdk';

// 在app.js 第一行引入sdk
import UdeskSdk from './utils/ud-sdk';

UdeskSdk.init({
  appId: 'xxxxxxxx',
  companyToken: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
  companyDomain: 'xxx.udeskdemo.cn',
  onPageShow: function(){
    //do something
  }
});

域名设置

登录 小程序后台, 我们可以在菜单 “开发”-“开发设置” 可以看到小程序的 AppID和服务器域名(AppSecret必须配置)

初始化

方法说明

UdeskSdk.init({ appId, companyToken, companyDomain, onPageShow, onPageHide });

参数说明

参数名称 类型 是否必选 说明
appId String 小程序appId
companyToken String 公司小程序鉴权Token,获取位置【管理中心-渠道管理-小程序-管理/小程序SDK鉴权Token】
companyDomain String 公司域名,如:xxx.udesk.cn
onPageShow Function 接受页面显示事件
onPageHide Function 接受页面隐藏事件

> 商品浏览轨迹上传

方法说明

调用该功能请先初始化

UdeskSdk.trace(type, data);

参数说明

参数名称 类型 是否必选 说明
type String product 跟踪类型
data Object 跟踪数据
data.name String 商品名称
data.url String 商品跳转链接(新页显示),如果值为空,则不能点击
data.imgUrl String 如果值为空,则不显示
data.params Object 参数列表
data.params.text String 参数文本
data.params.color String 参数颜色值,规定为十六进制值的颜色(比如 #ff0000)
data.params.fold Boolean 是否粗体
data.params.break Boolean 是否换行
data.params.size Number 默认12 字体大小

示例

import UdeskSdk from './utils/ud-sdk';

UdeskSdk.trace('product', {
  name: " Apple iPhone X (A1903) 64GB 深空灰色 移动联通4G手机",
  url: "https://item.jd.com/6748052.html",
  imgUrl: "http://img12.360buyimg.com/n1/s450x450_jfs/t10675/253/1344769770/66891/92d54ca4/59df2e7fN86c99a27.jpg",
  params: [{
      "text": "¥6999.00",
      "color": "#FF0000",
      "fold": false,
      "break": false,
      "size": 12
  }]
});

> 订单事件上传

方法说明

调用该功能请先初始化

UdeskSdk.trace(type, data);

参数说明

参数名称 类型 是否必选 说明
type String order 跟踪类型
data Object 跟踪数据
data.order_no String 订单编号
data.name String 订单名称
data.url String 订单跳转链接
data.price Number 订单价格
data.order_at Date 下单时间
data.pay_at Date 付款时间
data.status String 订单状态: wait_pay(待付款)、paid(已付款)、closed(已关闭)
data.remark String 备注, 最大长度为1000字节(中文2个字节)
data.consignee_name String 收货人姓名
data.consignee_phone String 收货人电话
data.commodit_num String 商品总数量
commodities Array 商品信息Array(Ojbect)

commodities商品信息对象

参数名 类型 必填 说明
commodit_name string 商品名称
commodit_no string 商品编号
commodit_count numeric 商品数量
commodit_fee string 商品价格

示例

import UdeskSdk from './utils/ud-sdk';

UdeskSdk.trace('order', {
  order_no: "1000",
  name: "第一个订单",
  url: "https://xxx.xxxx.com/订单链接",
  price: 16.8,
  order_at: new Date(),
  pay_at: new Date(),
  status: "wait_pay",
  remark: "备注最多1000字节",
  consignee_name: '张三',
  consignee_phone: '01012345',
  consignee_address: '北京市大兴区',
  commodit_num: 88,
  commodities: [
    {
      commodit_name: '牛奶A',
      commodit_no: 'NO123456',
      commodit_count: 1,
      commodit_fee: '46.5'
    }
  ]
});