ミニプログラムカスタムパラメータ送信ソリューション説明書
概要
ミニプログラム自体の制限により、現在APIを通じてユーザー情報を取得することはできません。そのため、Udeskではミニプログラムがサポートする session-from パラメータを使用してこの機能を実現しています。 session-from パラメータはミニプログラムで最大1000文字までサポートされています。正常に機能させるためには、このフィールドの長さをできるだけ1000バイト以下に保つようにしてください。 顧客のシステム情報、顧客定義フィールド、業務タイトル、業務カスタムフィールドをサポートしています。
設定方法
- 微信ミニプログラムにログインします。URL: https://mp.weixin.qq.com/
- 「開発」->「基本設定」に進み、「開発者ID(AppID)」、「開発者パスワード(AppSecret)」を取得します。
- udeskにログインし、「管理センター」->「チャネル管理」->「ミニプログラム」->「微信ミニプログラムの接続」に進み、開発者IDと開発者パスワードを入力します。
- 生成されたURLアドレスとTokenをミニプログラム管理画面のメッセージプッシュ設定に貼り付け、ミニプログラム管理画面でランダムに生成されたEcodingAESKeyをシステムに貼り付けます。また、APPSercretもシステムに貼り付けます。
- このミニプログラムを通じてユーザー情報を取得できるようになります。
サポートフィールド
フィールド説明
| パラメータ名 | 説明 |
|---|---|
| customer_name | 顧客名、デフォルトは「ミニプログラムユーザー」(システムフィールド) |
| nick_name | ニックネーム |
| avatar | アバター |
| メールアドレス | |
| 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カスタマーサポートシステムでミニプログラムを設定していない場合は、【管理センター > チャネル管理 > ミニプログラム - WeChatミニプログラム連携】で設定してください。
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(){
// 何らかの処理
}
});
ドメイン設定
ミニプログラム管理画面にログインし、メニューの「開発」-「開発設定」でミニプログラムの 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 | いいえ | パラメータ色値。16進数値の色を指定します(例:#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'
}
]
});