標準的な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を押した場合、通話は切断され、対応可能なエージェントが受け取るのを待つ通話キューに転送されます。コールバック機能の詳細についてはこちらをご覧ください。

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