目的 |
IVRの機能を利用して外部CRMと連携を行います。 BIZTELサーバと外部CRMとのサーバ連携を行う機能となります。 お客様からの着信がBIZTELサーバに入った際にIVR機能を用いて、音声認識もしくは、プッシュ操作後(プッシュ操作なし設定も可能)に外部CRMのWebAPIを実行し、APIの結果に基づき音声ガイダンスを流したり、会員専用コールセンターへ着信をさせたりすることが可能です。 |
---|---|
対象プラン |
|
用語 |
【外部CRM】 【WebAPI】 インターネットを経由した標準的なWeb技術を利用した各サービス(BIZTELでは外部CRM)と連携するためのCRM側のインターフェースとなります。 各CRMごとにWebAPIで用いるパラメーターは異なっており、それぞれのCRMサービスで仕様を公開しています。 |
ポイント |
・本機能をご利用頂くには、「API連携IVR」のオプション契約が必要です。 ・OAuth認証を用いてWebAPIへ連携する場合は、「オプション」 > 「OAuthアカウント」の事前登録が必要となります。 ・API連携IVRをSalesforceで利用するにはOAuth認証が必須となります。 ※「連携オプション」>「Salesforceアカウント設定」はSalesforce履歴連携メニュー用となり、API連携IVRには対応しておりません。 ※「連携オプション」>「音声認識連携」は音声認識連携メニュー用(発着信履歴・コールセンター履歴に音声認識結果のテキストデータを表示する機能)となり、API連携IVR(音声認識)には対応しておりません。 |
・本マニュアルはHTML/PHP(PCRE正規表現等)/WebAPIの基礎的な技術知識がある、WEB系開発者様やCRMベンダー様を対象にしております。
目次
※項目名をクリックいただく事で項目が展開され、参照したい手順へ移動できます。
1. API連携IVRについて
1.1 API連携IVRの基本機能・利用想定
API連携IVRは、IVR のダイヤル入力や音声認識、通話情報を元に外部CRMのWebAPIを実行し、IVR の分岐(転送)を行う機能です。
ダイヤル操作の利用想定
● 発信者(お客様)が予約希望日を入力して、入力した日が予約可能かを外部CRMのWebAPIに照会し、
予約可能な場合のみオペレータに転送する。
● 発信元番号から会員情報を外部CRMのWebAPIに照会して内容に応じたコールフローの分岐をする。
● 外部CRMのWebAPIの実行結果から指定したデータを保存し、以降に経由する IVR の 処理にて使用することが可能。
● 外部CRMのWebAPIへの照会前後にガイダンスを流すことも可能。
※リアルタイム音声合成のオプション契約がある場合は、API実行後にリアルタイム音声合成ガイダンスを流す事も可能。
例:外部CRMの顧客情報より、電話番号を検索し、「XXX様お電話ありがとうございます。」と音声を再生する。
● ダイヤル入力なしで API連携IVRを用いることも可能。
※設定例は「1.Salesforce連携設定例(コールアクション・API連携IVR)」をご参照ください。
音声認識での利用想定
● これまで多段でIVRを構築する必要があったIVRのダイヤル操作を音声認識でダイヤル操作を省略する。
(プッシュ1~9で表現できない内容を音声で認識させ、分岐を少なくする)
● 発信者(お客様)が特手のワードを音声入力して、入力した音声に従って外部の音声認識APIを実行し、適切なコールセンターに転送する。
例)
- 予約希望日を音声入力して頂き、予約可能な場合にコールセンターへ転送する。
- 利用中のサービス名を音声入力して頂き、担当するコールセンターへ転送する。
※設定例は「3.AmiVoice連携設定例(API連携IVR:音声認識)」をご参照ください。
※BIZTELバージョン 3.3.0以降で利用可能です。
2. 変数展開コード
外部CRM側のWebAPI実行時のリクエストデータ作成や、BIZTEL内での処理の実行判定に変数展開コード(文字列)を指定することで、通話情報や BIZTEL 内データ、前のAPI連携IVRの処理結果データなどを使用することができます。
2.1 変数展開コード
変数展開文字列は{RESPONSE_KEY}のように中括弧{}内に半角英大文字、数字、アンダースコアの文字
列が設定されている場合に認識されます。変数展開文字列は以下の種類が用意されています。
※サブパターンについては「変数抽出パターンの補足」を参照ください。
変数名 | 説明 |
---|---|
{SVID} | BIZTELに設定されているサーバIDを取得します。 |
{HOST} | ライセンス設定内のサーバホスト名(s2XXXXXXXXXXX.u.biztel.jp)を取得します。 |
{BASE_URL} | BIZTELのURLドメイン部(https://s2XXXXXXXXXXX.u.biztel.jp:8000)を取得します。 |
{ID} | 通話毎に付与されるリクエストIDを取得します。 |
{TRANSFER_FROM_ID} | *転送または#転送でIVRに転送された場合、転送元となる通話のリクエストIDを取得します。 |
{START_TIME} | 通話開始時刻を取得します。 ※BIZTELバージョン 3.8.0 以降で利用可能です。 |
{TEL} | 発信側の電話番号(BIZTEL 側/相手側いずれも外線番号)を取得します。 |
{CALLED} | 着信側の電話番号(BIZTEL 側/相手側いずれも外線番号)を取得します。 |
{IVRID} | IVR の IDを取得します。 |
{DATE} | 現在日時を「YYYY-MM-DD HH:MI:SS」のフォーマットで取得します。 |
{DIGITS} | 発信者のダイヤル入力値を取得します。 |
{*_DIGITS} | *には IVR の内線番号が入る 同通話における経由した他の IVR でのダイヤル入力値を取得します。 |
{VOICE} | 録音した音声データをバイナリとして引き渡します。 |
{VOICE_BASE64} | 録音した音声データをBASE64エンコードした文字列として引き渡します。 |
{CODE*} | *には 1〜9 が入る API 実行の変数抽出結果の抽出データが順番に{CODE1}〜{CODE9}から取得できる ※抽出データ数が 9 個以上の場合、9 個までしか格納されない |
{*_CODE*} | 最初の*には IVR の内線番号、最後の*には 1〜9 が入る 同通話における経由した IVR での 処理実行の変数抽出結果の抽出データが順番に{CODE1}〜 {CODE9}から取得できる |
{RESPONSE_*} | *には変数抽出時に指定したサブパターン名が入る 同通話における IVR の 処理実行の変数抽出にて、サブパターン名を指定した場合、{RESPONSE_(サ ブパターン名)}で取得できる ※同じサブパターン名を指定した場合、最新のものに上書きされる |
{REQUEST_CODE} | 1.コールバックAPIで指定したリクエストコードを参照可能。 |
{EXTEN_NAME} | 内線番号(電話端末やコールセンター)に紐づく名称を取得します。 |
{EXTEN_NO} | BIZTELの内線番号を取得します。 ※コールセンター等の内線番号が取得されます。 ※BIZTELバージョン 3.8.0 以降で利用可能です。 |
{BUSINESS} |
着信した業務ラベルを取得します。 |
{CALL_FLOW} | 着信した呼の経路情報を取得します。 ※経路情報の詳細は「2.CTI設定-その他CRM連携(BIZTELバージョン 3.2以降)」を参照ください。 ※BIZTELバージョン 3.4.0 以降で利用可能です。 |
変数展開コードの自動補完について
BIZTELバージョン 3.7.0 以降、以下の項目に変数展開文字列を入力する場合、「 { 」を入力することで自動補完機能が有効になります。
● API連携タブ
・URL
・リクエストヘッダ
・リクエストボディ
● APIレスポンス設定タブ
・変数抽出パターン
※{ACCOUNT_VALUE_x} の x は任意の値に修正ください。
入力した変数展開コードの整合性について
BIZTELバージョン 3.7.20 以降、入力した変数展開コードに誤りがある場合、青字の強調表示がされません。
2.2 メソッドチェーン
各変数展開文字列に対し{(変数展開文字列).(メソッドチェーン部)}といった形式の入力をすることに
よって、変数展開した文字列に対して用意されたメソッドを適用することができます。
メソッドチェーン用のメソッドは以下のメソッドが用意されています。
変数名 | 説明 |
---|---|
START(引数) |
変数展開結果の文字列に対して、引数の開始位置から開始するように前部分を切り落とします。 例) ※BIZTELバージョン 3.7.20 以降、正数のみ利用可能です。 |
END(引数) |
変数展開結果の文字列に対して、文末から引数の文字数の文字を削除します。 例) ※BIZTELバージョン 3.7.20 以降で利用可能です。 |
LEFT(引数) |
変数展開結果の文字列に対して、左から引数の値の文字を抽出します。 例){CALLED.LEFT(3)}と入力した場合、CALLEDの値が 09012341234 とすると、「090」が得られる ※BIZTELバージョン 3.7.20 以降で利用可能です。 |
RIGHT(引数) |
変数展開結果の文字列に対して、右から引数の値の文字を抽出します。 例){CALLED.LEFT(3)}と入力した場合、CALLEDの値が 09012341234 とすると、「1234」が得られる ※BIZTELバージョン 3.7.20 以降で利用可能です。 |
DATE_FORMAT(format, modify) または DATE_FORMAT(format) |
日付形式の文字列に対して日付形式の変更や、日付の変更を実施する ※上記いずれの引数は半角英数字、半角スペース、以下の記号 / : . + - のみ使用することができる |
RAW() |
URL内で変数展開を実施する場合、変数展開される文字列に自動でURLエンコードが実施される。 |
JSON_ESCAPE() |
変数展開時の内容をエスケープ処理済みの文字列にすることが可能です。 |
メソッドチェーンの自動補完について
BIZTELバージョン 3.7.20 以降、以下の項目にメソッドチェーンを入力する場合、「 . 」を入力することで自動補完機能が有効になります。
● API連携タブ
・URL
・リクエストヘッダ
・リクエストボディ
3. API連携IVRの新規登録・編集
本手順では、API連携IVRの内容を説明します。
※APIを用いないIVRにつきましては「6.IVRの設定」をご参照ください。
3.1 API連携IVRの新規登録
手順1.BIZTEL管理画面より、「コールセンター > IVR」をクリックします。
手順2.IVRの画面表示後、右上の「新規」をクリックします。
手順3.必要事項を入力し、「保存」をクリックします。外部CRMとのAPI連携を実施する際は、「API連携を利用する」を必ず「選択する」にして登録してください。
※作成後に変更する事ができませんのでご注意ください。
※BIZTELバージョン 3.2.X までのお客様は「登録」と表示されます。
※ BIZTELバージョン 3.5.X以上のお客様は、「API連携を利用する」を「選択する」にすると「サービス種別」が表示されるため、設定したい種別を選択します。
標準API連携 |
標準API連携 外部CRMとのAPI連携を利用する場合に選択します。 チャットボット連携(DEC Support) チャットボット(DEC Support)とのAPI連携を利用する場合に選択します。 |
---|---|
以下の項目は、ご利用のBIZTELバージョンにより設定タイミングが異なります。 |
|
受付入力種別 |
以下から、入力種別を選択します。 ※BIZTELバージョン 3.3.0 以降で利用可能です。 |
受付ダイヤル最大桁数 |
ユーザ入力値の桁数上限を指定します。 |
入力値チェックパターン |
ユーザ入力値に対してパターンチェックを正規表現で指定します。 |
音声入力時間(秒) |
IVRに対して、音声で回答可能な時間(秒)を設定します。 |
手順4.「保存しますか?」と表示される為、「OK」をクリックします。
※BIZTELバージョン 3.2.X までのお客様は「登録しますか?」と表示されます。
3.2 API連携設定
手順1.「API連携設定」タブをクリックし、「編集」ボタンをクリックします。
手順2.必要事項を入力し、「保存」をクリックします。
※BIZTELバージョン3.2.X までのお客様は、「登録」と表示されます。
※各項目の詳細は以下表を参照ください。
項目 | 説明 |
---|---|
API連携種別 | API連携種別を選択します。 マニュアル:認証が不要な場合、またはAPIリクエスト情報内に手動で認証情報を埋めこむ場合に選択します。 OAuth:OAuth認証を利用してシステム連携を行います。 |
OAuthアカウント | 上記API連携種別にてOAuthを選択している場合、利用するOAuthアカウントを選択します。 ※メニューのオプション > OAuthアカウント設定にて登録した内容が表示されます。 ※API連携種別でOAuthを選択している場合に表示されます。 |
URL ※必須項目 |
ユーザ入力値の問合せ先となる外部CRMのWebAPIのURLを指定します。 ※全てのメソッドで指定 |
メソッド |
HTTPリクエストメソッドを指定します。 API連携IVRでは、5つのメソッド(GET、POST、PUT、DELETE、PATCH)を利用することができます。 |
リクエストヘッダ |
リクエストヘッダを指定します。 ※全てのメソッドで指定可能。 記述例)Content-Type: application/json ※JSON形式のPOSTサンプル |
リクエストボディ |
リクエストボディを指定します。 ※GET以外のメソッドを選択する際に指定可能 記述例){"test": "test"} ※JSON形式のPOSTサンプル ・IVR変数を含む固定値jsonなども指定可能 |
タイムアウト時間(秒) | API連携時のタイムアウトする時間を1~60秒で指定します。 |
API連携前ガイダンス |
APIリクエスト前に流すガイダンスを指定します。 ※ガイダンスの再生完了までAPIリクエストは行われません |
リクエストエラー時の動作 | APIリクエストがエラーとなった時の処理を「着信ルール」から指定します。 |
以下の4項目は、ご利用のBIZTELバージョンにより設定タイミングが異なります。 BIZTELバージョン 3.6.0 以降で新規作成時に指定します。 BIZTELバージョン 3.5.20までは「3.2 API連携設定」で指定します。 |
|
受付入力種別 |
以下から、入力種別を選択します。 ※BIZTELバージョン 3.3.0 以降で利用可能です。 |
受付ダイヤル最大桁数 |
ユーザ入力値の桁数上限を指定します。 |
入力値チェックパターン |
ユーザ入力値に対してパターンチェックを正規表現で指定します。 ※未入力の場合、ユーザ入力をチェックしません ※BIZTELバージョン 3.6.0 以降では、新規作成時の画面内で設定します。 |
音声入力時間(秒) |
IVRに対して、音声で回答可能な時間(秒)を設定します。 |
エラー時のリトライ設定 |
|
エラー判定パターン |
API実行後、返却されたレスポンスコードに対して、エラー判定する正規表現を設定します。 ※未入力の場合、400~599をエラー判定します。 |
リトライ回数 | リトライ回数の上限を 0 ~ 5 回で設定します。 |
リトライ間隔(秒) | リトライの実施間隔を 1 ~ 10 回で設定します。 |
手順3.「保存しますか?」と表示される為、「OK」をクリックします。
※BIZTELバージョン3.2.X までのお客様は「登録しますか?」と表示されます。
作成したIVRはM以下のようにAPI連携有無や認識種別が表示されます。
3.3 APIレスポンス設定
手順1.「APIレスポンス設定」タブをクリックし、「新規」ボタンをクリックします。
手順2.必要事項を入力し、「保存」をクリックします。
※BIZTELバージョン3.2.X までのお客様は「登録」と表示されます。
※各項目の詳細は以下表を参照ください。
尚、リアルタイム音声合成を使用するには別途オプション契約が必要です。
項目 | 説明 |
---|---|
優先順位 | 振り分け分岐の条件に優先順位を設定します。 |
レスポンスコード | 振り分け分岐の条件を「レスポンスコード」とする場合に指定します。 |
レスポンスパターン |
振り分け分岐の条件を「レスポンスボディ内の文字列と指定正規表現とのマッチ」と ※BIZTELバージョン 3.8.12 まで、255文字以内での入力となります。 |
変数抽出パターン |
APIレスポンス値を変数化して保持する場合にチェック対象とする正規表現を指定します。 (PHPのPCRE正規表現形式) ※●変数抽出パターンの補足があります。 ※BIZTELバージョン 3.8.12 まで、255文字以内での入力となります。 |
業務ラベル |
該当のIVRを経由する場合に業務ラベルを付与することが可能です。 |
ガイダンス形式 |
API連携後に流すガイダンスの形式を指定します。 |
API連携後ガイダンス |
API連携後に流すガイダンスを指定します。 ※ガイダンス形式で「標準ガイダンス」を選択している場合に表示されます。 |
音声合成テキスト |
API連携後ガイダンスを動的に流す場合に合成の基となるテキストを指定します。 ※半角スペース、全角スペースのみでの登録はできませんのでご注意ください。 |
選択時の動作 |
転送 指定の転送先へ転送することが可能です。 着信ルール 設定した共通着信ルールを動作させる事が可能です。 操作ガイダンスに戻る 再度、操作ガイダンスを再生します。 IVRエラー判定 操作エラーの1回として判定します。 |
転送先 |
転送先となる番号を指定します。 ・内線番号を指定する場合、リストから選択します。 ・電話番号を手入力する場合、リストから「番号を指定する」を選択します。 ※選択時の動作で「転送」を選択すると表示されます。 |
外線番号 |
転送先となる電話番号を入力します。 ダイレクトインダイヤルを使用する場合、{DIGITS}と入力します。 ※転送先で「番号を指定する」を選択すると表示されます。 ※BIZTELに登録済みの内線番号は、転送先の項目から選択します。 |
着信ルール |
動作させる着信ルールを選択します。 ※選択時の動作で「着信ルール」を選択すると表示されます。 |
メモ | 500字以内でご自由に入力ください。 |
●変数抽出パターンの補足
項目名 | 説明 |
---|---|
サブパターンについて | 正規表現内において、()で囲まれたパターンの箇所のこと グループとも呼ばれます。 例:文字列「 "testkey":"Name","testValue":"TestValue" 」に対して /"testkey":"([0-9A-Zaz]*)","testValue":"([0-9A-Za-z]*)"/ を 抽出パターンとすると、2箇所のサブパターン部分の Name,TestValue を 抽出しデータベースに格納する |
格納データの取り出し方について |
格納データはサブパターンの順番に9個までデータが格納され、 |
変数抽出パターンの動作テストについて |
変数抽出パターンを作成するためには、外部CRMのWebAPIから得られる実際のレスポンスボディデータを確認する必要があります。
|
名前付きサブパターンについて | サブパターンにて(?P<サブパターン名>...※正規表現部...)といった入力をすることで、変数抽出データに指定した名称を設定可能です。 この方法で抽出された場合、{CODE*}に加えて、{RESPONSE_(指定サブパターン名)}の変数展開コードにて使用可能です。 ※サブパターン名には半角の英大文字と数字、_アンダースコアのみ使用可能です。 |
格納データの上書きについて | 格納データは一つの通話内であれば以降の API連携IVRの処理実行の変数展開時に使用可能です。 変数抽出がされるごとにデータ格納は実行され、{CODE*}などは最新の変数抽出結果に上書きされます。 格納データへの上書きを防ぎ、API連携IVRの処理実行で使用する場合は上記の名前付きサブパターンを使用する必要があります。 ただし、その場合でも同じ名前をサブパターン名に指定すると上書きしてしまうため、適切にサブパターン名を管理してください。 |
格納データについて | 格納データは 24 時間保持され、その後削除されます。 その為、24 時間以上の通話が行われた場合などのケースには注意が必要です。 |
※音声認識選択時、初期ガイダンス後に「ピー」と音が鳴ってから音声入力が開始可能になります。
また、無音判定が「2秒」となり、2秒経過後は自動で音声入力完了とします。
※音声入力後、「#」をダイヤルプッシュする事で音声入力時間を待たずに入力完了とする事ができます。
手順3.「保存しますか?」と表示される為、「OK」をクリックします。
※BIZTELバージョン3.2.X までのお客様は「登録しますか?」と表示されます。
以上で設定は完了です。
4. API連携IVRの動作確認
4.1 API連携IVR に関連する履歴
IVR-APIに関連する履歴確認について紹介します。
4.1.1 外部API連携履歴
対象マニュアル「1.外部API連携履歴」
実際に外部CRMのWebAPIへどういったリクエストを送ったか、またレスポンス内容についてのログを確認することができます。
- API連携IVRにて設定したURL、リクエストヘッダ、リクエストボディの変数展開後の結果を確認することができる
- レスポンスコードやレスポンス内容を確認することができる
レスポンスボディはjson形式の場合はフォーマットして出力されるため、変数抽出パターンなどの想定結果にはそのまま使えない場合があるので注意
メニューの「履歴・状況」>「外部API連携履歴」にて参照することができます。
4.1.2 IVR履歴
対象マニュアル「3.IVR履歴」
IVRの履歴からダイヤル入力値、終了種別、転送先を確認することができます。
メニューの「コールセンター」>「IVR履歴」にて参照することができます。
4.2 API連携IVR が正しく動作しない場合
上記の履歴を確認し、不具合の原因を特定してください。
① IVR 履歴を確認し、API連携IVRの処理が実行されているかを確認する
② API 連携履歴を確認し外部CRMのWebAPIに対してのリクエスト内容、レスポンス内容が想定通りかを確認する
●リクエスト内容が誤っている場合
IVR の API 連携設定にて URL、リクエストヘッダ、リクエストボディ等の設定内容が正しい
かを確認してください。
●レスポンス内容が違っている場合
外部CRMのWebAPI のサービス状態や使い方が正しいかを確認してください。
また、想定した結果を得られることを API 実行アプリなどで確認してください。
※詳細は外部CRMのベンダーへお問い合わせください。
●リクエスト内容、レスポンス内容が想定通りの場合
IVR の API レスポンス設定にてレスポンスコード、レスポンスパターン、変数抽出パターン等
の設定内容が正しいかを確認してください。