IVR(自動音声応答)の例
標準的なIVRツリーをカバーするいくつかのIVR例を用意しました。
playコマンド内のファイルへのリンクは有効ではなく、あくまで例として示しています。実際のリンクは、独自の録音を追加・挿入すると自動的に生成されます。
基本的な例
online:
- play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=connect-first-available-agent.mp3
- ring
queue:
- play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=next-in-queue.mp3
offline:
- play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=we-are-currently-not-available-check-website.mp3
- voicemail
上記の例では、通話に対応できるエージェントがオンラインにいない場合、オフライン用アナウンス we-are-currently-not-available-check-website.mp3 が再生され、その後ボイスメールが録音されます。エージェントがオンラインの場合は、connect-first-available-agent.mp3 が再生され、最初に対応可能なエージェントへ呼び出しが行われます。すべてのエージェントが対応中の場合、通話はキューに入れられ、キュー保留音楽として next-in-queue.mp3 が再生されます。
高度な例
start:
- play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=connect-first-available-agent.mp3
- choice:
1:
name: Sales department
play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=press-one-for-sales.mp3
do:
- transfer:
to: salesDepartmentID
if:
online:
- play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=connect-first-available-agent.mp3
- ring
offline:
- goto: voicemail
2:
name: Technical department
play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=press-two-for-technical-support.mp3
do:
- transfer:
to: techDepID
if:
online:
- ring
offline:
- goto: offline
3:
name: Request calback
play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=press_2_to_request_callback.mp3
do:
- callback
voicemail:
- play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=leave-a-voicemail.mp3
- voicemail
offline:
- play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=we-are-currently-not-available-check-website.mp3
queue:
- play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=next-in-queue.mp3
- choice:
0:
name: Wait
play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=press-zero-to-wait-in-queue.mp3
goto: queue
1:
name: Leave voicemail
play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=press-one-to-leave-a-voicemail.mp3
goto: voicemail
IVRはstartセクションから開始します:
- connect-first-available-agent.mp3 のウェルカムメッセージが再生されます
- press-one-for-sales.mp3 と press-two-for-technical-support.mp3 の選択メッセージがループ再生されます(ユーザーは再生されるまで待つ必要があります)
- システムはユーザーの選択を待ちます
- 1を押した場合、通話は営業部門(正しいIDを指定する必要があります)に転送されます
- 営業部門にオンラインのエージェントがいる場合:
- connect-first-available-agent.mp3 メッセージが再生されます
- 営業部門のエージェントへの呼び出しが開始されます
- 営業部門にオンラインのエージェントがいない場合:
- voicemailセクションに移行します
- 営業部門にオンラインのエージェントがいる場合:
- 2を押した場合、通話は技術部門に転送されます
- 技術部門にオンラインのエージェントがいる場合:
- 技術部門のエージェントへの呼び出しが開始されます
- 営業部門にオンラインのエージェントがいない場合:
- offlineセクションに移行します
- 技術部門にオンラインのエージェントがいる場合:
- 3を押した場合、通話は切断され、対応可能なエージェントが受け取るのを待つ通話キューに転送されます。コールバック機能の詳細についてはこちらをご覧ください。
- 1を押した場合、通話は営業部門(正しいIDを指定する必要があります)に転送されます
offlineセクションでは we-are-currently-not-available-check-website.mp3 メッセージが再生されます。
voicemailセクションでは press-one-to-leave-a-voicemail.mp3 が再生され、ユーザーがボイスメールを録音できます。
発信者がキューに入れられた場合、保留音楽が再生されます。音楽の再生が終わると、ユーザーは引き続き待つかボイスメールを残すかを選択できます。
注:choiceコマンドの記述方法は2通りあります。1つ目はstartセクション、2つ目はqueueセクションで確認できます。使いやすい方を選択してください。
動的IVRの例
start:
- fetch:
url: https://my.dynamic.script
onError: offline
params:
from: {$from_number}
to: {$to_number}
ticket: {$conv_code}
offline:
- play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=leave-a-voicemail.mp3
queue:
- play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=next-in-queue.mp3
IVRスクリプトを動的に生成したい場合(例:発信者に基づいた処理など)は、fetchコマンドを使用できます。 IVRはstartセクションから開始します:
- 最初かつ唯一のステップとして、URL https://mydomain.com/scripts/ivr からIVRを取得し、取得したIVRのstartセクションから処理を続けます。
スクリプトには複数のパラメーターを渡すことができます。また、ivrsパラメーターは自動的に追加されます。これはメインスクリプトのIVR名のリストであり、gotoコマンドで使用できます(この場合、start、offline、queueとなります)。
例として、スクリプトが以下のIVRを返すとします:
start:
- play: https://hello.john
- ring
スクリプトが発信者番号を認識したため、パーソナライズされたウェルカムメッセージを生成します。これを顧客に再生し、エージェントへの呼び出しを開始します。
fetchコマンドは、正しいIVRスクリプトをプレーンテキスト形式で返す必要があります(正しいフォーマット、インデント、スペースなどに注意してください)。また、YAMLオブジェクト/ファイルを返してmimetypeを ‘application/yaml’ に設定することもできます。
注:スクリプトが有効なIVRを生成しない場合、通話は切断されます。
DTMFインプットの例
start:
- play: https://enter.your.dtmf.input.and.press.#.to.confirm
- dtmf:
url: https://my.dynamic.script
onError: offline
params:
ticket: {$conv_code}
value: DTMF_VALUE
offline:
- play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=we-are-currently-not-available-check-website.mp3
queue:
- play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=next-in-queue.mp3
発信者から入力を受け取りたい場合は、dtmfコマンドを使用できます。#キーで終了するユーザーのDTMF入力を待ちます。入力が完了すると、結果を動的IVRスクリプトに渡します(上記のセクションを参照)。paramsの DTMF_VALUE プレースホルダーは実際のDTMF入力に置き換えられます。
サーバーは動的IVRスクリプトを返す必要があります。これは基本的に通常のIVRスクリプトと同じですが、外部サーバーが何らかのロジックに基づいて構築できます。指定されたスクリプトURLへのリクエストが失敗した場合、またはサーバーが無効なスクリプトを返した場合に “onError” が呼び出されます。
ヒントとコツ
顧客にキューで待ち続けるために何も押さなくてよいようにし、ボイスメールに移行するには1を押すようにしたい場合は、queueセクションを次のように記述できます:
queue:
- play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=next_in_queue.mp3
- choice:
0:
name: Hidden option with music file
play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=queue_music.mp3
goto: queue
1:
name: Leave voicemail
play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=press_one_to_leave_a_voicemail.mp3
goto: voicemail
顧客が電話してキューに入ると、next_in_queue.mp3 が再生され、その後選択肢がループします。つまり、queue_music.mp3 が再生され、次に press_one_to_leave_a_voicemail.mp3 が再生され、再び queue_music.mp3、また press_one_to_leave_a_voicemail.mp3 というように続きます。顧客に1以外のボタンを押すよう案内しないため、顧客は1を押してボイスメールを残すか、対応可能なエージェントが電話を受けるまでそのまま待ち続けることになります。
IVRを複数の言語(例:英語とドイツ語)で提供したい場合は、次の例のように設定できます:
start:
- play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=connect-first-available-agent.mp3
- choice:
1:
name: English
play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=press-one-for-english-langauge.mp3
goto: english
2:
name: German
play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=press-two-for-german-language.mp3
goto: german
english:
- play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=connect-first-available-agent.mp3
- choice:
1:
name: Sales department
play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=press-one-for-sales.mp3
do:
- transfer:
to: SalesDepartmentID
if:
online:
- ring
offline:
- goto: voicemail
2:
name: Technical department
play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=press-two-for-technical-support.mp3
do:
- transfer:
to: TechnicalDepartmentID
if:
online:
- ring
offline:
- goto: offline
german:
- play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=connect-first-available-agent.mp3
- choice:
1:
name: German Sales department
play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=press-one-for-sales.mp3
do:
- transfer:
to: germanSalesDepartmentID
if:
online:
- ring
offline:
- goto: germanvoicemail
queue:
- goto: germanqueue
2:
name: German Technical department
play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=press-two-for-technical-support.mp3
do:
- transfer:
to: germanTechnicalDepartmentID
if:
online:
- ring
offline:
- goto: germanoffline
queue:
- goto: germanqueue
voicemail:
- play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=leave-a-voicemail.mp3
- voicemail
offline:
- play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=we-are-currently-not-available-check-website.mp3
queue:
- play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=next-in-queue.mp3
germanvoicemail:
- play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=leave-a-voicemail-german-language.mp3
- voicemail
germanoffline:
- play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=we-are-currently-not-available-check-website-german-language.mp3
germanqueue:
- play: https://mycompany.ladesk.com/scripts/file.php?view=Y&file=next-in-queue-german-language.mp3