Dialpad エキスパートモードでは、外部 API ノードを使用して REST API を介してCRM などのプラットフォームからデータを取得できます。以下では、より複雑な IVR を導入するためのガイドです。
API リクエストをローカルで参照・テストする
API がパブリックインターネット経由でアクセスできることを確認してください。Postman や curl リクエストを用いたコマンドラインなどのツールを使用し、外部 API コンポーネントがどのように動作するかを模倣します。
ローカル環境で API をテストした後、以下を把握している必要があります:
リクエスト URL
リクエストメソッド (GET、POST、または PUT)
リクエストボディ (API が要求する場合)
リクエストヘッダー (通常 API により必要)
Note
ヘッダーは JSON オブジェクトとして構成されます。
レスポンスボディの可能性
Tip
Sublime Text や Notepad++ など、JSON のテキストエディターを使用して、これらのレスポンスをローカルに保存してください。
ワークフローを作成する
IVR ワークフローを作成するには、管理者設定を開きます。
[チャネル & IVR] > [IVR ワークフロー] を選択します。
[ワークフローを作成] を選択し、ワークフロー名を入力します。
Note
IVR ワークフローの名前に使用できるのは英数字とスペースのみです。
[+] を選択してステップを追加します。
[ステップを追加] ウィンドウで、[エキスパート] を選択します。
[Expert を起動] をクリックし、以下のエキスパートステップのコンポーネントを順番に追加し、接続します:
Call Park:Voice Widget コンポーネントで利用できます。[voice/call-park] のウィジェットドロップダウンを選択します
Send a Message:リクエストパラメータを記録するために使用します
External API (Server):API リクエストを実行するために使用します
Call Resume:[Prompt and Wait] コンポーネントを使用し、[voice/call-resume] ウィジェットを選択します
Send a Message:レスポンスパラメータを記録するために使用します
[Expert を公開] を選択し、[ワークフローを公開] を選択します。エキスパートフローは下図のような構成になります。
テスト用コンタクトセンターまたはグループを作成
IVR ワークフローをテストするには:
アクティブな電話番号を持つグループまたはコンタクトセンターに IVR ワークフローを割り当てます。
Note
テスト用ルーティンググループが存在しない場合は、新規に作成してください。電話番号を追加し、通話ルーティング設定を変更して新しい IVR ワークフローを指すように設定します。
ワークフローを割り当てた後、初回テスト通話を行い、新しいルーティンググループが正常に新しい IVR ワークフローへ到達することを確認します。
IVR ワークフローのログは会話履歴から確認できます。
API 詳細を IVR ワークフローに追加する
基本的な API を設定したら、API リクエストの詳細を追加します。
URL | コピーした URL をテキストフィールドに貼り付けます。必要に応じて、URL 内に変数を使用できます (変数は二重中括弧で囲みます)。ただし、URL の先頭 (https://) は必ず URL に含めてください。 |
Method | リクエストで使用するメソッドです。有効なオプションは GET、POST、PUT のみです。 |
Additional Headers | ヘッダーフィールドでは、ヘッダー名をキーとする有効な JSON オブジェクトを作成します。
|
CSV JSONPath フィールドの編集
外部 API ノードは JSONPath を使用して API レスポンスからデータを抽出し、API レスポンス内の値を IVR 変数に割り当てます。形式は [IVR 変数名]:[JSON Path] です。 複数ある場合は、カンマで区切りで記録する必要があります。
この 変数:JSONPath のコンマ区切りリストを作成するには、jsonpath.com などの外部ツールを使用し、API レスポンスから必要な値をすべて特定します。
JSON レスポンスの例
{
"firstName": "John",
"lastName": "doe",
"age": 26,
"address": {
"streetAddress": "naist street",
"city": "Nara",
"postalCode": "630-0192"
},
"phoneNumbers": [
{
"type": "iPhone",
"number": "0123-4567-8888"
},
{
"type": "home",
"number": "0123-4567-8910"
}
]
}
JSONPath を編集するには:
API レスポンスの本文を JSONPath テスターにコピーし、抽出する必要がある各変数の JSON Path を確認します。
変数名を選択します。変数名を最初に入力し、その後ににコロンを入れ、続けて JSONPath 式を記録します。以下の例をご参照ください:
JSONPath 式
first:firstName, (= "John") last:lastName, (="doe") streetAddress:address.streetAddress city:address.city phoneNo1:phoneNumbers[0].number phoneType1:phoneNumbers[0].type phoneNo2:phoneNumbers[1].number phoneType2:phoneNumbers[1].typefirst:firstName, (= "John")
改行を削除すると、外部 API ノードの CSV JSONPath テキストフィールドは以下の例のようになります:
外部 API ノードの CSV JSONPath
first:firstName,last:lastName,streetAddress:address.streetAddress,city:address.city,phoneNo1:phoneNumbers[0].number,phoneType1:phoneNumbers[0].type ,phoneNo2:phoneNumbers[1].number,phoneType2:phoneNumbers[1].type
これをテキストフィールドに追加し、 [保存] を選択します。
IVR ワークフローを公開します。
ログの追加
次に、ログを追加する必要があります。API リクエストの前後にある 2 つの [Send a Message] ノードは、トラブルシューティング用に一部のデータを会話履歴に記録するために使用されます。
API リクエストで変数が使用されている場合は、最初のリクエストにそれらを含めるだけでなく、レスポンスも含めます。
response.status と response.code の 2 つの組み込み変数を必ずレスポンスメッセージに記録します。さらに、CSV JSONPath で作成されたすべての変数もログに残します。
テストとアドオン
初回のテスト通話を実行し、その通話を会話履歴で確認します。IVR の出力は、ログ内でレスポンス値として表示されます。
IVR のレスポンス値を確認するには:
会話履歴を開きます。
[会話タイプ] を [デジタルのみ] に設定します。
会話を選択し、 [トランスクリプト] を選択します。
Note
IVR セッション履歴は別のブラウザタブまたはウィンドウで開き、基本情報を表示します。
必要に応じて、エキスパートノード内または外部にブランチを追加し、API が成功したかどうかに応じてプロンプトやメッセージを提供できます。