クラウド型 ワークフロー

Twilio で電話の無いコールセンター!? (コールバック編その1)

今回は Twilio ネタです。『問い合わせに対してコールバックを行い、その内容を録音する仕組み』を実現したいと思います。

問い合わせを受ける部分については、「受電で業務プロセスを自動開始編」「ブラウザで電話を受ける編」「留守番電話編」などを参照してください。その部分は省略し、問い合わせをしたユーザに対して、担当者からコールバックをする部分のみを、2回に分けて説明します。今回は Twilio の API を使って、コールバックする仕組みの概要について説明します。

今回は、Twilio の電話をかける API「Call API」を使用します。Call API を用いて、コールバックする際の処理手順を説明します。

Questetra-Twilio

(1) API呼び出し
まず Questetra BPM Suite から、Twilio の Call API を呼び出します。

(2) 架電
Twilio は Call API が呼び出されると、HTTP パラメータ(To)で指定された電話番号に対して、電話をかけます。このブログでは、問合せ担当者に電話をかけます。通常は問合せ担当者からユーザに直接コールバックするのですが、Twilio を起点に処理を行うので、まず Twilio から問合せ担当者に電話をかけます。

(3) TwiML読み込み
Twilio は電話が通じると、HTTP パラメータ(Url)で指定されたURL にHTTPアクセスし、TwiML を読み込みます。電話をかけた相手に対して、どういったことを話すか、どういった処理を行うか、TwiML によって指定します。このあたりの処理の流れは、受電と架電の違いはありますが、「受電で業務プロセスを自動開始編」と同じです。今回の仕組みでは、Google App Engine によって、以下のような TwiML を返すようにします。

<Response>
  <Say voice="alice" language="ja-JP"
    >田中さんに電話をかけます。しばらくお待ち下さい。</Say>
  <Dial record="true"
    action="http://hatanaka-twilio.appspot.com/dial?pid=34172"
    method="POST">+819069870701</Dial>
</Response>

<Say> は記載されているテキストを自動読み上げするタグです。voice 属性で音声の種類、language 属性で、言語を指定します。

(4) 電話を転送
<Dial>は電話をかけるタグです。つまりTwilio は API が呼び出されて、問い合わせ担当者に電話をかけた後、TwiML の内容に従ってユーザに電話を転送します。ユーザに着電すると、問合せ担当者とユーザとの2者間通話が確立します。

(5) 通話の記録
<Dial>タグで指定されている record 属性は、問合せ担当者とユーザの通話内容を録音するための指定です。action 属性で指定されている URL は、通話終了後に、Twilio から 通話に関する情報を含めて HTTP リクエストを行う URL です。この中に、録音内容に関する情報も含まれています。method 属性は、その際の HTTP メソッドを指定するものです。今回の仕組みでは、通話完了後、Twilio から Google App Engine 経由で、Questetra BPM Suite に通話内容が渡されるようにします。

 

以上が、コールバックを行う仕組みの概要です。TwiML で電話番号を指定しているところは、動的に変化するようにする必要があります。この仕組みを Questetra BPM Suite に組み込みます。以下がサンプルプロセスモデルです。次回はこのプロセスモデルの設定の詳細について、説明したいと思います。

Callback_ProcessModel

★関連ブログ投稿

あわせて読みたい
15.野望・展望・志 の前の記事 OpenSSL? 心臓出血!? ナニソレ??
15.野望・展望・志 の次の記事 ベンチャー歴15年、「ミッションとは何か?」 を考えてみた
Hatanaka Akihiro の他の記事 Questetra と Cacoo の連携プレー(その3)

アーカイブ

 RSS