Udesk コールセンターは、通話中にサードパーティシステムのインターフェースを呼び出し、インターフェースの異なる戻り値に基づいて異なるロジックを実行することをサポートしています。典型的なアプリケーションシナリオは以下の通りです:

インターフェース開発仕様

サードパーティシステムが Udesk と連携する際は、以下の仕様に従ってインターフェースを開発する必要があります。

リクエスト方法

インターフェースは POST メソッドをサポートしている必要があります。Udesk がインターフェースをリクエストする際は、リクエストパラメータを JSON 形式でリクエストボディに配置し、リクエストの Content-Typeapplication/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
  }
}

インターフェース開発に関する注意事項

  1. リクエストパラメータには、ユーザー定義のパラメータ情報に加えて、Udeskがデフォルトで設定するいくつかのデータ(つまり、udesk_ で始まるパラメータ)が含まれます。これらの事前設定パラメータだけで要件を満たせる場合は、カスタムリクエストパラメータを設定する必要はありません。
  2. ユーザー定義のリクエストパラメータは、事前設定パラメータとの重複を避けるため、udesk_ で始めないでください。
  3. レスポンス値は、文字列や数字などの単純なタイプの値のみ可能です。配列、ハッシュなどの複雑なデータ構造や、複数レベルのネストはサポートされていません。
  4. レスポンス値が文字列タイプの場合、最大長は255文字を超えないようにしてください。超えた場合、Udeskは最初の255文字のみを取得します。
  5. レスポンス値は、0、1、2などの単純な整数の列挙値を取ることをお勧めします。
  6. インターフェースの応答時間は3秒未満である必要があります。3秒を超える場合は、リクエストタイムアウトと見なされます。

ご利用上の注意

このインターフェースへの接続を希望する企業は、コールセンターでインテリジェントルーティングモードを使用している必要があります。