Logo
Logo
CTRLK

共有コンポーネント

IVR (自動音声応答) 変数を使用する

変数により、IVR (自動音声応答) シナリオが動的かつ柔軟になります。これらを使用して、挨拶をパーソナライズしたり、顧客の応答に応じてさまざまなパスに分岐したり、IVR (自動音声応答)をデジタル エコシステムに接続したりできます。

変数は、発信者の名前、顧客 ID、API 呼び出しの結果などの情報を一時的に保存するコンテナです。

IVR (自動音声応答) アクションは、これらの変数から読み取り、新しい値を書き込むことができます。変数を使用すると、IVR (自動音声応答)

  • 外部システムとの通信。

  • 通話中に何が起こっているかの追跡。

  • 発信者の体験のパーソナライズ化。

変数の設定方法

IVRシナリオで変数を設定するには、次のオプションを使用できます:

変数を使ったアウトバウンドIVRの起動

アウトバウンド IVR (自動音声応答)の場合、シナリオを開始する HTTP リクエストで変数を送信できます。たとえば、顧客の名前を含めることができます。

json
1 
2{
3 "messages": [
4 {
5 "from": "41793026700",
6 "destinations": [
7 {
8 "to": "41793026727"
9 }
10 ],
11 "scenarioId": "6298AA7707903A4ED680B436929681AD",
12 "parameters": {
13 "name": "John"
14 }
15 }
16 ]
17}

その後、シナリオで変数を参照できます (例えば、Say アクションでは):

json
1 
2{
3 "say": "Hello ${name}"
4}

上記のように、 $``{name} を使用して変数をテキストに挿入できます。IVR は、Unified Expression Language (UEL) に基づく $``{} 形式を使用した変数式に対応しています。

変数の設定アクション

Set Variable (変数の設定) アクションを使用して、シナリオの実行時に変数を更新できます。この変数は、コールの通話中に情報を作成または更新する場合に便利です。

API応答の解析

シナリオで外部APIを呼び出すと、応答で返される各フィールドは、シナリオ内の他の場所で使用できる変数になります。例えば、バックエンドから注文ステータスを取得した場合、それを変数としてコールの残りの部分でいつでも参照できるようになります。

DTMFの収集

「収集」アクションを使用して一部の数字をキャプチャするか、「キャプチャ」アクションを使用して音声をキャプチャすると、結果はシナリオの後半で使用できる変数に格納されます。

暗黙的変数

どのシナリオにも、常に利用可能な組み込み変数が含まれています:

  • from: 発信者の番号 (インバウンド) または from 番号 (アウトバウンド)。
  • to: 呼び出し先の番号。
  • startTime: 通話が開始された時刻。
  • answerTime: コールに実際に応答された時刻。
  • __externalMessageId: 起動パラメーターで設定され、配信レポートに含まれる一意のコールID。
手記

暗黙的な変数は、シナリオの任意の場所で使用できますが、変更することはできません。

アクション変数

一部のアクションでは、独自の特殊変数が生成されます。例えば、外部APIを呼び出した後、次のような変数が利用可能になります:

  • __apiResponseStatusCode: APIの呼び出しに失敗または成功したかによって、次にどのような処理を行うかを決定できるようにするHTTP応答コード。
  • __callApiCurrentTimestamp: APIの呼び出しが開始された時のタイムスタンプ。

配信レポートへのIVRの連携

IVRシナリオをバックエンドシステムに連携するには、clientCallbackData 変数を設定します。この変数は配信レポートに表示され、ユーザーIDまたはその他のカスタム識別子を監視システムに渡すことができます。

アウトバウンド IVR (自動音声応答)を起動する場合は、このデータをcallbackDataという起動パラメータに含めることもできます。

変数の振る舞い

  • Type: すべての変数は文字列です。
  • Nulls: nullはありません。設定されていない変数を使用しようとすると、空の文字列 ("") が返されます。
  • Expressions: 簡単な式を使用できます。例えば、Ifアクション内で押された数字を処理するには、${digit == '2'} を使用します。

ベストプラクティス

  • シナリオ内のどこでも変数を参照できるようにしたい時は、${variableName} を使用します。
  • 組み込み変数を使えば、コールに関する情報を無料で得ることができます。
  • すべての変数は文字列です。未設定の変数は空の文字列を返します。
  • 変数をコールの開始時に渡したり、フローの途中で設定したり、APIの応答から取得したりできます。

変数を使用すると、コールのフローをカスタマイズしたり、自動化したりすることが可能になり、よりスマートで連携性の高いIVRのシナリオを設計できるようになります。