Udesk コールセンターは、通話中にサードパーティシステムのインターフェースを呼び出し、インターフェースの異なる戻り値に基づいて異なるロジックを実行することをサポートしています。典型的なアプリケーションシナリオは以下の通りです:
- 発信者が携帯電話番号を入力して注文の有無を照会する
- 発信者がアカウント名とパスワードを入力してアカウント残高を照会する
インターフェース開発仕様
サードパーティシステムが Udesk と連携する際は、以下の仕様に従ってインターフェースを開発する必要があります。
リクエスト方法
インターフェースは POST メソッドをサポートしている必要があります。Udesk がインターフェースをリクエストする際は、リクエストパラメータを JSON 形式でリクエストボディに配置し、リクエストの Content-Type は application/json;charset=utf8 になります。
リクエストアドレス
ユーザーが自由に定義できますが、プロトコルは HTTPS または HTTP である必要があります(つまり、インターフェースアドレスは https:// または http:// で始まる必要があります)。例:https://api.baidu.com/callcenter
リクエストパラメータ説明
リクエストボディのネスト形式は以下のように固定されています:
timestamp
sign
data:
param_1
param_2
param_n
udesk_force_node_id
udesk_call_id
udesk_from_number
udesk_to_number
udesk_call_start_time
udesk_mobile_area
各パラメータの説明:
| パラメータ名 | パラメータの意味 | パラメータタイプ |
|---|---|---|
| timestamp | UNIX タイムスタンプ | Integer |
| sign | 認証署名 | String |
| data | 有効データ | Hash |
| param1 | ユーザー定義パラメータ1 | String |
| udesk_force_node_id | プリセットパラメータ、この外部インターフェースコマンドが配置されているインテリジェントルーティングノードの識別子 | String |
| udesk_call_id | プリセットパラメータ、この通話の一意識別子 | String |
| udesk_from_number | プリセットパラメータ、発信者番号 | String |
| udesk_to_number | プリセットパラメータ、着信者(つまり中継番号)番号 | String |
| udesk_call_start_time | プリセットパラメータ、発信者着信時間、RFC 2616 仕様に準拠 | String |
| udesk_mobile_area | プリセットパラメータ、発信者番号の帰属地 | String |
リクエスト例
POST https://api.baidu.com/callcenter
Content-Type: application/json;charset=utf8
Content-Length: 190
{
"timestamp": 1501124998,
"sign": "2f6e7e58c267ac3971770e991cb01239",
"data": {
"number": "18888888888",
"param2": "233",
"udesk_force_node_id": "1499446197778",
"udesk_call_id": "2dbbae02-b18d-44eb-a343-3f53ff99dc96",
"udesk_from_number": "18888888888",
"udesk_to_number": "01001000000",
"udesk_call_start_time": "Thu, 27 Jul 2017 05:52:53 GMT",
"udesk_mobile_area": "内モンゴル フフホト市"
}
}
署名 sign の計算方法
Udeskでコールセンターを開設している各企業には、認証用のトークンが1つあります。このトークンは、コールセンターが外部インターフェースと接続するために特別に設計されており、他の用途には使用されません。認証トークンはUUID形式です。このトークンを入手するには、Udeskの開発エンジニアにご連絡ください。 このトークンとタイムスタンプを連結し、MD5で暗号化することで、署名値 sign が得られます。
sign は数字と小文字のみを含む必要があります。
例:トークンが "a3ddc2a2-58fa-42b4-8cb3-b40c9e0ff12a"、タイムスタンプが 1502879948 の場合、sign は MD5("a3ddc2a2-58fa-42b4-8cb3-b40c9e0ff12a1502879948")、つまり "c70d665cc46dba4b71305172a0f826a2" となります。
レスポンス形式
インターフェースが返すHTTPレスポンスは JSON 形式である必要があります。
HTTPレスポンスボディには data フィールドが必須です。
戻り値のネスト形式:
data:
value_1
value_2
value_n
各パラメータの説明:
| パラメータ名 | パラメータの意味 | パラメータタイプ |
|---|---|---|
| data | 有効データ | Hash |
| value_1 | ユーザー定義のレスポンスパラメータ1 | String または Number または Boolean などの単純値 |
| value_n | ユーザー定義のレスポンスパラメータn | String または Number または Boolean などの単純値 |
レスポンス例
{
"data": {
"code": 1
}
}
インターフェース開発に関する注意事項
- リクエストパラメータには、ユーザー定義のパラメータ情報に加えて、Udeskがデフォルトで設定するいくつかのデータ(つまり、
udesk_で始まるパラメータ)が含まれます。これらの事前設定パラメータだけで要件を満たせる場合は、カスタムリクエストパラメータを設定する必要はありません。 - ユーザー定義のリクエストパラメータは、事前設定パラメータとの重複を避けるため、
udesk_で始めないでください。 - レスポンス値は、文字列や数字などの単純なタイプの値のみ可能です。配列、ハッシュなどの複雑なデータ構造や、複数レベルのネストはサポートされていません。
- レスポンス値が文字列タイプの場合、最大長は255文字を超えないようにしてください。超えた場合、Udeskは最初の255文字のみを取得します。
- レスポンス値は、0、1、2などの単純な整数の列挙値を取ることをお勧めします。
- インターフェースの応答時間は3秒未満である必要があります。3秒を超える場合は、リクエストタイムアウトと見なされます。
ご利用上の注意
このインターフェースへの接続を希望する企業は、コールセンターでインテリジェントルーティングモードを使用している必要があります。