目的 |
外部システムとBIZTELを連携することで、エージェントの窓口発信に関する通話レポートの集計値を外部システムに連携することが可能です。 |
---|---|
対象プラン |
|
用語 |
【WebAPI】 汎用的なWeb技術を利用し、インターネットを介して外部システムとの連携を容易にする仕組みです。 【BIZTEL API】 BIZTELが公開するAPIを示します。 |
ポイント |
・本機能は、BIZTELバージョン 3.10.X 以降で利用可能です。 ・本機能をご利用いただく場合、「レポート取得API」のライセンス契約が必要です。 ・月間のAPIリクエスト数、APIレスポンスオブジェクト数の上限は、各100,000件となります。 ・エージェントレポート:発信の集計対象や詳細は「5.エージェントレポート:発信(3.10.X以降)」を参照ください。 |
・本マニュアルはHTML/PHP(PCRE正規表現等)/WebAPIの基礎的な技術知識がある、WEB系開発者様やCRMベンダー様を対象にしております。
目次
1.レポート取得APIの基本機能
レポート取得APIは、BIZTELと外部システムの連携により、外部システムからBIZTELの各種レポートの内容を取得可能とします。
取得可能なレポートは以下となります。
・コールセンターレポート:着信(8.レポート取得API(コールセンターレポート:着信)※3.10.X以降)を参照ください
・コールセンターレポート:発信(9.レポート取得API(コールセンターレポート:発信)※3.10.X以降)を参照ください
・エージェントレポート:着信(10.レポート取得API(エージェントレポート:着信)※3.10.X以降)を参照ください
・エージェントレポート:発信(本マニュアルの範囲です)
・電話番号レポート:発信(12.レポート取得API(電話番号レポート:発信)※3.10.X以降)を参照ください
※アウトバウンド機能(自動発信業務)のレポートは取得対象外となりますのでご注意ください。
2.サマリーレポートの取得
2.1 API仕様
URI schemeは以下となります。
Host | sXXXXXXXXXXXX.u.biztel.jp:8000 | BIZTELサーバアドレスとして指定されたFQDN |
---|---|---|
scheme | HTTPS | - |
2.2 リクエスト方式
サマリーレポートのデータ取得時のリクエスト方式は以下となります。
認証方式 | HTTPメソッド | URI | 備考 |
---|---|---|---|
APIトークン認証方式 | GET | /public/api/v1/report/agent_outbound/summary |
APIトークンによるアカウント認証が必要です。 |
2.3 リクエストパラメータ
サマリーレポートの取得で使用するパラメータは以下となります。
パラメータ | 説明 | 備考 | 必須項目 | パラメータ型 | データ型 | 初期値 |
---|---|---|---|---|---|---|
from | 集計開始日時を指定します | 画面での該当項目:集計開始日時 画面での該当項目は必須項目です |
No | query | string |
当日0時 yyyy/mm/dd hh:mm |
to | 集計終了日時を指定します | 画面での該当項目:集計終了日時 |
No | query | string |
翌日0時 (当日の24時) yyyy/mm/dd hh:mm |
category | 集計対象を選択します | 画面での該当項目:集計対象 0:コールセンター 1:業務ラベル |
No | query | integer | 0 |
queue_ids | コールセンターを選択します | 画面での該当項目:コールセンター 集計対象プルダウンでコールセンターを選択時 |
Yes: 集計対象未入力または集計対象プルダウンでコールセンターを選択時 No: 集計対象プルダウンで業務ラベルを選択時 |
query | string | -- |
business_ids | 業務ラベルを選択します | 画面での該当項目:業務ラベル 集計対象プルダウンで業務ラベルを選択時 |
Yes: 集計対象プルダウンで業務ラベルを選択時 No: 集計対象未入力または集計対象プルダウンでコールセンターを選択時 |
query | string | -- |
account_ids |
エージェントを選択します | 画面での該当項目:エージェント |
Yes | query | string | -- |
Authorization |
APIトークン認証方式の場合に用います | ''Tokenトークン文字列'の形式で入力します | Yes | header | string | -- |
● 実行形式
macOSのターミナルにて、curlコマンド実行する場合の例
curl -X GET --header "Accept: application/json" --header "Authorization: Token ★払い出しトークン★" "https://★契約BIZTELサーバFQDN★:8000/public/api/v1/report/agent_outbound/summary?★リクエストパラメータ★"
● 入力サンプル
curl -X GET --header "Accept: application/json" --header "Authorization: Token d6357156532a940baea9e0012bab1e55e9e4cb51e6c9a352e16206d053303929c9e52cd4609a4bbf"
"https://sxxxxxxxxxxxx.u.biztel.jp:8000/public/api/v1/report/agent_outbound/summary?account_ids=10001,10002,10003&queue_ids=10001,10002,10003&category=0"
2.4 レスポンスコード
レポート取得APIのレスポンスコードは以下となります。
HTTP Status Code | Reason | 説明 |
---|---|---|
200 | Successful Operation | 正常終了(成功) |
400 | Bad Request | 不正なリクエスト |
401 | Unauthorized | 認証失敗 |
404 | Not Found | 対象が存在しません |
429 | TooManyRequest | バースト上限の超過 |
500 | Internal Server Error | システム障害 |
2.5 ヘッダー
レポート取得APIのヘッダー情報は以下となります。
{
"Access-Control-Allow-Credentials": "true"
"Access-Control-Allow-Headers": "Origin, Content-Type, Authorization, X-Auth-Token, x-xsrf-token"
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE"
"Access-Control-Allow-Origin": "*"
"Cache-Control": "no-cache, private"
"Cache-Control": "no-store"
"Cache-Control": "no-store"
"Connection": "keep-alive"
"Content-Encoding": "gzip"
"Content-Security-Policy": "default-src 'self'; style-src 'self' 'unsafe-inline'; font-src 'self' data:; script-src 'self' 'unsafe-inline'; media-src 'self' blob:; connect-src 'self' blob": "ws": "wss:;; img-src 'self' data": "blob:;"
"Content-Type": "application/json"
"Date": "Wed, 22 Mar 2023 01:49:58 GMT"
"Permissions-Policy": "cross-origin-isolated=(self), sync-xhr=(self), accelerometer=(), autoplay=(), camera=(), display-capture=(), document-domain=(), encrypted-media=(), fullscreen=(), geolocation=(), gyroscope=(), keyboard-map=(), magnetometer=(), midi=(), payment=(), picture-in-picture=(), publickey-credentials-get=(), screen-wake-lock=(), usb=(), web-share=(), xr-spatial-tracking=(), clipboard-read=(), clipboard-write=(), hid=(), idle-detection=(), serial=()"
"Referrer-Policy": "no-referrer"
"Server": "nginx"
"Strict-Transport-Security": "max-age=31536000; includeSubDomains"
"Transfer-Encoding": "chunked"
"Vary": "Accept-Encoding"
"X-Account-ID": "1"
"X-Content-Type-Options": "nosniff"
"X-Frame-Options": "DENY"
"X-RateLimit-Limit": "300"
"X-RateLimit-Remaining": "297"
"X-Robots-Tag": "noindex"
"X-XSS-Protection": "1; mode=block"
}
2.6 レスポンスボディ
サマリーレポートのレスポンスボディは以下となります。
● 取得に成功した場合の例
{
"account_id": "10003",
"account_name": "USER3",
"account_kana": "デフォルトユーザ3",
"moh_avg": "0",
"moh_max": "0",
"moh_sum": "0",
"post_avg": "0",
"post_max": "0",
"post_cum": "0",
"process_avg": "0",
"process_max": "0",
"process_cum": "0",
"on_hold_count": "0",
"call_cnt": "0",
"connected_cnt": "0",
"abandon_cnt": "0",
"connected_rate": "0",
"talk_time_min": "0",
"talk_time_avg": "0",
"talk_time_max": "0",
"talk_time_sum": "0",
"wait_time_min": "0",
"wait_time_avg": "0",
"wait_time_max": "0",
"wait_time_sum": "0"
}
● 取得に失敗した場合の例
{
"name": "AuthenticationException",
"type": "UNAUTHENTICATED",
"exception_id": null,
"message": "Unauthenticated: cause=unknown auth method.",
"messages": null,
"reason": "Unauthenticated: cause=unknown auth method."
}
2.7 レスポンスパラメータ
サマリーレポートのレスポンスパラメータは以下となります。
account_id | 画面上での該当項目:なし ※取得対象のアカウントIDです |
---|---|
account_name | 画面での該当項目:アカウント ※取得対象のアカウントの名前です |
account_kana | 画面での該当項目:アカウント名 ※取得対象のアカウント名前(かな)です |
moh_avg |
画面上での該当項目:保留・平均 |
moh_max | 画面上での該当項目:保留・最大 ・エージェントが通話を保留して通話に戻るまでの最大時間です ・保留を解除した日時で集計します |
moh_sum | 画面上での該当項目:保留・累計 ・エージェントが通話を保留して通話に戻るまでの累計時間です ・保留を解除した日時で集計します |
post_avg |
画面上での該当項目:後作業時間(CC紐づけあり)/(業務ラベル紐づけあり)・平均 エージェントが後作業ステータスになってから別ステータスに変更されるまでの経過時間の平均です |
post_max |
画面上での該当項目:後作業時間(CC紐づけあり)/(業務ラベル紐づけあり)・最大 エージェントが後作業ステータスになってから別ステータスに変更されるまでの経過時間の最大です |
post_cum |
画面上での該当項目:後作業時間(CC紐づけあり)/(業務ラベル紐づけあり)・累計 エージェントが後作業ステータスになってから別ステータスに変更されるまでの経過時間の累計です |
process_avg |
画面上での該当項目:処理時間・平均 エージェントの通話時間+後作業時間の平均です ・通話時間は、通話終了イベントが発生した日時で集計します ・後作業時間は、後作業ステータスから別ステータスに変更された日時で集計します |
process_max |
画面上での該当項目:処理時間・最大 エージェントの通話時間+後作業時間の最大です ・通話時間は、通話終了イベントが発生した日時で集計します ・後作業時間は、後作業ステータスから別ステータスに変更された日時で集計します |
process_cum | 画面上での該当項目:処理時間・累計 エージェントの通話時間+後作業時間の累計です ・通話時間は、通話終了イベントが発生した日時で集計します ・後作業時間は、後作業ステータスから別ステータスに変更された日時で集計します |
on_hold_count | 画面上での該当項目:保留・回数 ・エージェントが通話を保留した呼数です ・保留をした日時で集計します |
call_cnt | 画面での該当項目:発信数 ・発信を開始した呼数です ・アウトバウンドイベントが発生(発信を開始)した日時で集計します |
connected_cnt |
画面での該当項目:コンタクト数 ・ 発信先が応答した呼数です ・ アウトバウンド切断イベントが発生(電話を切った)した日時で集計します |
abandon_cnt |
画面での該当項目:未コンタクト数 ・発信先が電話に応答しなかった呼数です ・アウトバウンド切断イベントが発生(電話を切った)した日時で集計します |
connected_rate |
画面での該当項目:コンタクト率(%) ・発信を開始した呼数の内、発信先が応答した呼数の割合を「コンタクト数÷発信数」で算出します |
talk_time_min |
画面での該当項目:コンタクト通話集計・最小 ・発信が応答してから電話を切るまでの最小通話時間です ・アウトバウンド切断イベントが発生(電話を切った)した日時で集計します |
talk_time_avg |
画面での該当項目:コンタクト通話集計・平均 ・発信が応答してから電話を切るまでの平均通話時間です ・アウトバウンド切断イベントが発生(電話を切った)した日時で集計します ※小数点以下は切り捨てて表示します |
talk_time_max |
画面での該当項目:コンタクト通話集計・最大 ・発信が応答してから電話を切るまでの最大通話時間です ・アウトバウンド切断イベントが発生(電話を切った)した日時で集計します |
talk_time_sum |
画面での該当項目:コンタクト通話集計・合計 ・発信が応答してから電話を切るまでの合計通話時間です ・アウトバウンド切断イベントが発生(電話を切った)した日時で集計します |
wait_time_min |
画面での該当項目:コンタクトまでの所要時間・最小 ・発信を開始してから発信先が応答するまでに要した最小時間です ・アウトバウンド切断イベントが発生(電話を切った)した日時で集計します |
wait_time_avg |
画面での該当項目:コンタクトまでの所要時間・平均 ・発信を開始してから発信先が応答するまでに要した平均時間です ・アウトバウンド切断イベントが発生(電話を切った)した日時で集計します ※小数点以下は切り捨てて表示します |
wait_time_max |
画面での該当項目:コンタクトまでの所要時間・最大 ・発信を開始してから発信先が応答するまでに要した最大時間です ・アウトバウンド切断イベントが発生(電話を切った)した日時で集計します |
wait_time_sum |
画面での該当項目:コンタクトまでの所要時間・合計 ・発信を開始してから発信先が応答するまでに要した合計時間です ・アウトバウンド切断イベントが発生(電話を切った)した日時で集計します |
2.8 エラー仕様
パラメータ | エラー条件 | name | type | message |
---|---|---|---|---|
from | 開始日時より前の終了日時を設定する | ValidateException | VALIDATE_ERROR | greater than to |
開始日時から終了日時までの範囲が2年より広い状態 | 集計期間は2年(730日)以内で指定してください | |||
to | 開始日時より前の終了日時を設定する | ValidateException | VALIDATE_ERROR | greater than to |
開始日時から終了日時までの範囲が2年より広い状態 | 集計期間は2年(730日)以内で指定してください | |||
category | 半角数字以外を入力した場合 | ValidateException | VALIDATE_ERROR | 引数が数値でありません: '{入力文字列}' |
「0:コールセンター」「1:業務ラベル」以外を入力した場合 | 0〜1までにしてください | |||
queue_ids | 未入力 (集計対象未入力または集計対象プルダウンでコールセンターを選択時) |
ValidateException | VALIDATE_ERROR | report_queue_i_ds:値がありません |
半角数字以外を入力した場合 (集計対象未入力または集計対象プルダウンでコールセンターを選択時) |
引数が数値でありません: '{入力文字列}' | |||
コールセンター一覧に存在しないコールセンターIDを入力した場合 (集計対象未入力または集計対象プルダウンでコールセンターを選択時) |
EntityNotFoundException | NOT_FOUND | 対象が存在しません | |
business_ids | 未入力 (集計対象未入力または集計対象プルダウンで業務ラベルを選択時) |
ValidateException | VALIDATE_ERROR | report_business_i_ds:値がありません |
半角数字以外を入力した場合 (集計対象未入力または集計対象プルダウンで業務ラベルを選択時) |
引数が数値でありません: '{入力文字列}' | |||
業務ラベル一覧に存在しない業務ラベルIDを入力した場合 (集計対象未入力または集計対象プルダウンで業務ラベルを選択時) |
EntityNotFoundException | NOT_FOUND | 対象が存在しません | |
account_ids | 未入力 | ValidateException | VALIDATE_ERROR | report_queue_i_ds:値がありません |
半角数字以外を入力した場合 | 引数が数値でありません: '{入力文字列}' | |||
アカウント一覧に存在しないアカウントIDを入力した場合 | EntityNotFoundException | NOT_FOUND | 対象が存在しません | |
Authorization | トークンが未入力の場合(Tokenの入力もされていない) | AuthenticationException | UNAUTHENTICATED | Unauthenticated: cause=unknown auth method. |
認証に失敗した場合 ※「Token」のみ入力した場合 |
Unauthenticated: method=personal_token, cause=invalid request | |||
認証に失敗した場合 ※「Token {誤ったToken文字列}」のみ入力した場合 |
Unauthenticated: method=personal_token, cause=invalid token. | |||
ライセンス無効 | Unauthenticated: method=personal_token, cause=api license disabled | |||
-- | レポート取得APIライセンスがOFFの状態で通話・ステータスレポート情報取得APIを実行した場合 | AuthorizationException | FORBIDDEN | This action is unauthorized. |
「バーストの単位秒数」に設定した秒数以内に、「バースト時の上限値」を超過するリクエストがあった場合 | AccessLimitException | REQUEST_BURST_LIMIT_EXCEEDED | サーバへの処理リクエストが集中しています。しばらく待ってから操作を再試行してください。 |