インタラクティブ音声応答(IVR)

Twilioで最新のIVRを構築。ロジックとAIベースのセルフサービスにより顧客体験を強化しながら、オペレーター介入の必要性を減らします。

インテリジェントIVRにより何が可能になるのでしょうか?

オペレーターが追加の業務や複雑さを感じることなく、顧客体験を強化します。

  • Chat bubble with clock
    コールルーティング

    適切な担当者または部門に自動的に通話を転送し、顧客を迅速にサポートします。

  • Mobile notification
    オペレーターエスカレーション

    オペレーターに通話をエスカレーションすると、IVRが収集した情報や会話の内容を使用して、中断したところから再開できます。

  • Package with heart
    セルフサービスの自動化

    オペレーターを介さずに、注文処理、支払い、予約管理、情報検索を完了します。

  • User speech bubble
    AI仮想エージェント

    仮想エージェントに通話を誘導して、対話型AI体験を提供。オペレーターの負担を軽減します。

  • Chat Bubble
    プロアクティブ通知

    予約の確認、重要なアカウントの更新、配送の詳細の確認を、迅速かつ簡単に行います。

  • Earth with a chat bubble icon
    緊急通知

    重要な情報の取得を、電話回線に縛られることなく、大規模に、簡単に行えます。

最新のIVRの構築方法

カスタマイズ可能なIVRを作成し、コンタクトセンターの拡張と最新化をはかります。

ウィジェットライブラリからフローを構築
ビジュアルエディタの「Studio」により、事前構築済みのIVRフローを使って開始します。次に、お客様のビジネスに合わせてカスタマイズし、電話ツリーとロジックをお客様が完全に制御できるようにします。

現場で繰り返し、適応
Twilioでは、顧客の新たなニーズの出現やビジネスプロセスの変化に応じて、IVRフローを簡単に調整できます。

基本的なセルフサービスタスクを自動化
オペレーターが介入することなく、予約の確認、支払いの処理、情報の取得ができる機能を構築します。

IVR向けTwilio製品

強固な接続基盤を備えた最新のIVRを構築し、必要な機能に合わせてカスタマイズします。

セットアップ手順

オプション

機能

詳細はこちら

1.電話番号

  • Twilioの電話番号を購入
  • 電話番号を移行

200以上の番号の種類、対象国は100か国以上

既存の番号を使用
 

2.接続

  • Twilio Super Networkを使用
  • キャリアをそのまま活用する(BYOC)

4,500のグローバルキャリアとの接続

既存のPSTNキャリアを使用

3.構築

 
  • TwiMLでコーディング
     
  • Studioでドラッグアンドドロップ

<Pay>、<Gather>、
<Say>コマンドにより
一般的なタスクを処理

ロー/ノーコードエディタ、IVRフロー用テンプレート

 
TwiLMの詳細はこちら                  
 

Studioの詳細はこちら 
 

4.チャネル

 
  • Voice APIにより通話を発信または受信
     
  • Messagingによりフォローアップテキストを送信

テキストを音声に変換、通話
録音、Voice
IntelligenceとVoice
Insights

SMS、MMS、WhatsApp、信頼性の高いリアルタイム配信

数日でIVRを構築して起動

無料のTwilioアカウントに登録すると、新しいIVRフローの構築をすぐに開始できます。クイックスタート(ガイド)、最新のドキュメント、Twilio CLI、Code Exchangeを利用して、プロトタイプをすぐに構築できます。

from twilio.twiml.voice_response import VoiceResponse

from ivr_phone_tree_python import app
from ivr_phone_tree_python.view_helpers import twiml


@app.route('/')
@app.route('/ivr')
def home():
    return render_template('index.html')


@app.route('/ivr/welcome', methods=['POST'])
def welcome():
    response = VoiceResponse()
    with response.gather(
        num_digits=1, action=url_for('menu'), method="POST"
    ) as g:
        g.say(message="Thanks for calling the E T Phone Home Service. " +
              "Please press 1 for directions." +
              "Press 2 for a list of planets to call.", loop=3)
    return twiml(response)


@app.route('/ivr/menu', methods=['POST'])
def menu():
    selected_option = request.form['Digits']
    option_actions = {'1': _give_instructions,
                      '2': _list_planets}

    if option_actions.has_key(selected_option):
        response = VoiceResponse()
        option_actions[selected_option](response)
        return twiml(response)

    return _redirect_welcome()
require 'twilio-ruby'


class TwilioController < ApplicationController

  def index
    render plain: "Dial Me."
  end

  # POST ivr/welcome
  def ivr_welcome
    response = Twilio::TwiML::VoiceResponse.new
    response.gather(num_digits: '1', action: menu_path) do |gather|
      gather.say(message: "Thanks for calling the E T Phone Home Service. Please press 1 for
      directions. Press 2 for a list of planets to call.", loop: 3)
    end
    render xml: response.to_s
  end

  # GET ivr/selection
  def menu_selection
    user_selection = params[:Digits]

    case user_selection
    when "1"
      @output = "To get to your extraction point, get on your bike and go down
        the street. Then Left down an alley. Avoid the police cars. Turn left
        into an unfinished housing development. Fly over the roadblock. Go
        passed the moon. Soon after you will see your mother ship."
      twiml_say(@output, true)
    when "2"
      list_planets
    else
      @output = "Returning to the main menu."
      twiml_say(@output)
    end

  end
<?php

namespace App\Http\Controllers;

use App\Http\Requests;
use Illuminate\Http\Request;
use Twilio\Twiml;

class IvrController extends Controller
{
    public function __construct()
    {
        $this->_thankYouMessage = 'Thank you for calling the ET Phone Home' .
            ' Service - the adventurous alien\'s first choice' .
            ' in intergalactic travel.';

    }

    /**
     * Responds with a welcome message with instructions
     *
     * @return \Illuminate\Http\Response
     */
    public function showWelcome()
    {
        $response = new Twiml();
        $gather = $response->gather(
            [
                'numDigits' => 1,
                'action' => route('menu-response', [], false)
            ]
        );

        $gather->say(
            'Thanks for calling the E T Phone Home Service.' .
            'Please press 1 for directions. Press 2 for a ' .
            'list of planets to call.',
            ['loop' => 3]
        );

        return $response;
    }

    /**
     * Responds to selection of an option by the caller
     *
     * @return \Illuminate\Http\Response
     */
    public function showMenuResponse(Request $request)
    {
        $selectedOption = $request->input('Digits');

        switch ($selectedOption) {
            case 1:
                return $this->_getReturnInstructions();
            case 2:
                return $this->_getPlanetsMenu();
        }

        $response = new Twiml();
        $response->say(
            'Returning to the main menu',
            ['voice' => 'Polly.Amy', 'language' => 'en-GB']
        );
        $response->redirect(route('welcome', [], false));

        return $response;
    }
const VoiceResponse = require('twilio').twiml.VoiceResponse;

exports.welcome = function welcome() {
  const voiceResponse = new VoiceResponse();

  const gather = voiceResponse.gather({
    action: '/ivr/menu',
    numDigits: '1',
    method: 'POST',
  });

  gather.say(
    'Thanks for calling the E T Phone Home Service. ' +
    'Please press 1 for directions. ' +
    'Press 2 for a list of planets to call.',
    {loop: 3}
  );

  return voiceResponse.toString();
};

exports.menu = function menu(digit) {
  const optionActions = {
    '1': giveExtractionPointInstructions,
    '2': listPlanets,
  };

  return (optionActions[digit])
    ? optionActions[digit]()
    : redirectWelcome();
};
package com.twilio.phonetree.servlet.ivr;

import com.twilio.twiml.TwiMLException;
import com.twilio.twiml.VoiceResponse;
import com.twilio.twiml.voice.Gather;
import com.twilio.twiml.voice.Play;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class WelcomeServlet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest servletRequest, HttpServletResponse servletResponse)
            throws IOException {
        String mp3file = "https://raw.githubusercontent.com/TwilioDevEd/"
                + "ivr-phone-tree-servlets/master/et-phone.mp3";
        VoiceResponse response = new VoiceResponse.Builder()
                .gather(new Gather.Builder()
                        .action("/menu/show")
                        .numDigits(1)
                        .build())
                .play(new Play.Builder(mp3file)
                        .loop(3)
                        .build())
                .build();

        servletResponse.setContentType("text/xml");
        try {
            servletResponse.getWriter().write(response.toXml());
        } catch (TwiMLException e) {
            throw new RuntimeException(e);
        }
    }
}
using System.Web.Mvc;
using Twilio.AspNet.Mvc;
using Twilio.TwiML;
using Twilio.TwiML.Voice;

namespace IVRPhoneTree.Web.Controllers
{
    public class IVRController : TwilioController
    {
        // GET: IVR
        public ActionResult Index()
        {
            return View();
        }

        // POST: IVR/Welcome
        [HttpPost]
        public TwiMLResult Welcome()
        {
            var response = new VoiceResponse();
            var gather = new Gather(action: Url.ActionUri("Show", "Menu"), numDigits: 1);
            gather.Say("Thank you for calling the E.T. Phone Home Service - the " +
                       "adventurous alien's first choice in intergalactic travel. " +
                       "Press 1 for directions, press 2 to make a call.");
            response.Append(gather);

            return TwiML(response);
        }
    }
}

最初の電話ツリーを構築

このクイックスタートに従い、Twilioを使用した最初のIVR電話ツリーの設定方法を学習します。

シンプルなIVRをすぐに実装

Code Exchangeに構築済みのアプリを使用し、SMSと音声を使用する基本的なIVRを数分で実装できます。

音声認識と音声通話を使用した仮想エージェントボットのヒント

Twilio製品チームによる11のベストプラクティスを使用し、IVRの音声認識の性能を向上させます。

コードなしで進めたい?大丈夫です。

信頼できるTwilioパートナーの協力のもと、コーディングのサポートを受けたり、事前構築済みのソリューションを検討したりできます。

Work with Twilio Professional Services to set up global call tracking for your company

Twilioの優位性

解決までのコストを削減しながら、顧客満足度を高めます。