##ワークショップの目的
1.Twilioのことを知っていただく
2.Studioの簡単な操作ができるようになる
##アジェンダ
1.Twilioの説明
2.Twilioの仕組み
アカウント
料金体型
3.Twilio Studioの説明
4.ワークショップ
自動応答システムの作り方
SMS自動送信システムの作り方
その他機能説明
##本日のワークショップ資料
https://bit.ly/studio_workshop1
##Twilioとは
音声通話やSMSなどのコミュニケーションチャネルをAPIとして提供しているクラウドサービスです。
・2007年設立
・2008年サービス開始
##Twilio For KWC
・2013年4月日本国内向けサービス提供を開始。
・日本独自のアカウント管理
https://twilio.kddi-web.com/
・日本のレギュレーションに沿った運用
##Twilioを使用する上で必要な設備
・Twilioは、パソコンとインターネットさえあればOK!
・アカウントを作成していただくだけで使用可能。
・初期費用や契約申し込みも不要です。
ユーザー
・ログイン用アカウント
・サインアップ時に作成されます。同時にオーナー権限を持つプロジェクトも1つ生成されます。
トライアルアカウント
・サインアップ後の状態です。
・ある一定の金額まで無料でお試しいただけます。
▽無料トライアルアカウントの制限事項につきましては、下記URLをご参照下さい。▽
http://bit.ly/2hRVOkp
##Twilioの仕組み : アカウント2
プロジェクト
・支払情報を保有します。
・プロジェクトに、別のユーザーを紐付けることも可能です。
・独自のAccountSidとAuthTokenが付与されます。
サブアカウント
・プロジェクト内に生成する環境、しかしそのプロジェクトとは完全に独立しています。
・独自のAccountSidとAuthTokenが付与されます。
・支払情報は持っていません。
##Twilioの仕組み : 課金の仕組み
・従量課金制になります。
・ポイントを事前購入し、利用した分だけポイントから引かれます。
・利用履歴や残ポイントはコンソールから確認可能です。
・残高が 0円に達すると、アカウントがサスペンドされます。
・サスペンドを解除するには、ポイントを購入する必要がございます。
##実装1:ワークショップで使用するアカウントへログインします。
!ログインする前の注意点!
「二要素認証を有効にする」にはチェックを入れないで下さい。
手順
1.**https://jp.twilio.com/login/kddi-web**へアクセスします。
2.管理コンソールに短冊に表記されているログインIDとパスワードを入力しログインします。
3.ホーム -> setting -> [Subaccounts]を選択します。
4.短冊に記載されたご自分のサブアカウントを一覧から探します。
5.ご自分のサブアカウントの「サブアカウントを表示」をクリックします。
##実装2:ワークショップで使用する050番号を購入します。
手順
1.左ボタン印 -> 電話番号 -> 番号を購入 を選択します。
2.国の選択で Japan(+81)を選択し、音声通話とFAXにチェックを入れた状態で、[検索]ボタンを押します。
3.一覧の中からローカル番号を1つ選択し、[購入]ボタンを押します。
4.[この番号を購入しますか?]ダイアログで、[この番号を購入する]ボタンを押します。この時点で108ポイントを消費します。
5.[閉じる]を押します。
6.電話番号 -> 番号の管理を選択し、今購入した番号が表示されることを確認します。
※購入した番号はテキストなどにメモして下さい。
##実装3:ワークショップで使用するUS番号を購入します。
手順
1.番号を購入を選択し、購入 ページへ戻ります。
2.国の選択で United States(+1)を選択し、SMSにチェックを入れた状態で、[検索]ボタンを押します。
3.一覧の中からローカル番号を1つ選択し、[購入]ボタンを押します。
4.この番号を購入しますか? ダイアログで、[この番号を購入する]ボタンを押します。この時点で150ポイントを消費します。
5.[閉じる]を押します。
6.電話番号 -> 番号の管理を選択し、今購入した番号が表示されることを確認します。
※この番号も同様、テキストなどにメモしてください。
##Twilio Studioとは
・ドラッグ&ドロップ形式でコールフローを構築するビジュアルアプリケーションビルダー機能になります。
・「Widget」と呼ばれるGUIの部品を繋ぎ合わせてコールフローを構築します。
##Twilio Studio : 各Widgetの概要
名前 | 役割 |
---|---|
Trigger(Start) | フローの開始となるWidgetです。受信メッセージ、着信通話やREST APIをトリガーにして処理を開始します。 |
Split Based On… | フローを分割して設定された条件に基づいたWidgetへ接続します。※Studioの条件は大文字小文字は区別しません。また空白文字は自動的に切り詰められます。 |
Send Message | 「SEND MESSAGE TO」に指定された送信先に対してメッセージを送信します。メッセージ送信後、送信先からの入力をリクエストしたい場合は、「Send & Wait For Reply 」Widgetを使用します。 |
Send & Wait For Reply | 「SEND MESSAGE TO」に指定された送信先に対してメッセージを送信した後、送信先からの入力をリクエストしたい場合に使用します。 |
Say/Play | メディアファイルの再生やテキストを読み上げることが可能です。 |
Gather Input On Call | 通話中に発信者側の入力情報を処理します。このWidgetではDTMFやSpeech情報を収集することが可能です。 |
Connect Call To | 呼の状態(CallStatus)がIn-progress状態の通話を別の電話へブリッジします。通話を転送する時に使用します。 |
Record Voicemail | ボイスメールを録音するとができます。録音したオーディオファイルを再生するには、ウィジェットのURL(widgets.MY_WIDGET_NAME.RecordingUrl)を使用して聞くことができます。 |
Make Outgoing Call | Make Outgoing Callを使用すると、Flow中でContactの電話番号に通話を発信できます。 このWidgetを使用して自動通話でContactに連絡したり、ボイメッセージを追加してフォローアップを行えます。 |
Run Function | Run Functionを使用すると、Twilio Functions(クラウド上で実行される軽量でサーバーレスなコード)を実行できます。このWidgetを使用してフローの拡張が可能です。 |
HTTP Request | HTTP Requestを使用すると、Studio外部のアプリケーションおよびコードとやり取りできます。 このWidgetを使用してFlowやFunctionsで定義されていないビジネスロジックの部分とやり取りします。 |
Understand | 音声解析機能になります。※日本アカウントは未対応の機能になります。 |
##実装を始める前の準備
以下の内容をメモへコピー&ペーストして下さい。
実装4−1
フロー名:IVR
Widget名1:reception_1
テキストメッセージ:こんにちは。営業へおつなぎする場合は1を、サポートへおつなぎする場合は2をおして下さい。
Widget名2:split_IVR
Widget名3:Call_Sale
Sales番号:+815031775444
パラメータ:{{trigger.call.To}}
Widget名4:Call_Support
サポート番号:+815031880466
実装4-2
テキストメッセージ:こんにちは。営業へおつなぎする場合は営業、サポートへおつなぎする場合はサポート、とおっしゃって下さい。
ヒント設定:営業, サポート
パラメータ:.*サポート.*
実装4-3
メディアURL:https://true-things-3178.twil.io/assets/Welcometotwilio%20(online-audio-converter.com).mp3
実装5-1
テキストメッセージ1:こんにちは。料金の情報を受け取りたい方は3、事例紹介の情報を受け取りたい方は4を選択してください。サイトURL情報をSMSへ送信いたしますので、電話を切って今しばらくお待ち下さい。また、営業へおつなぎする場合は1、サポートへおつなぎする場合は2を選択して下さい。
Widget名1:split_SMS
Widget名2:Send_Price
テキストメッセージ2:https://twilio.kddi-web.com/price/
Widget名3:Send_UseCase
テキストメッセージ3:https://twilio.kddi-web.com/case/
##実装4-1: IVR機能の実装(DTMFトーン)
シナリオ
コールを受信したら自動応答システムが起動し、操作を促すガイダンスが流れます。その後発信者が選択した番号へ転送され、メッセージが流れます。
手順1:フローを作成する。
-
管理コンソールの左側のスライドメニューから、Studioを選択します。
-
赤いプラスアイコンをクリックするか、Create a new flowを選択して、新しいフローを作成します。
-
New Flowダイアログが表示されるので、Start from scratchが選択されている状態で、Nextボタンを押します。
手順2:コールを受信したときに、メッセージを流しながらキー操作を受け付けるボックスを作成します。
- WIDGET LIBRARYからGather Input on Callをキャンバス上にドロップします。
- Trigger WIDGETのIncoming Callと、今ドロップしたボックスを結合します。
- GATHER INPUT ON CALLのWIDGET NAMEに「reception_1」と入力します。
-
SAY OR PLAY MESSAGEは、「Say a Message」を選択して、TEXT TO SAY欄に、
「こんにちは。営業へおつなぎする場合は1を、サポートへおつなぎする場合は2を押して下さい。」 と入力します。
- 少し下へスクロールをして、MESSAGE VOICEのプルダウンメニューからお好みのボイスエンジンを選び、LANGUAGEのプルダウンリストから「Japanese,Japan」を選択します。
-
Saveボタンを押して、内容を確定させます。
手順3:押されたキーを判定するボックスを作成します。
- WIDGET LIBRARYからSplit Based On...をキャンパス上にドラッグアンドドロップします。
- IVRボックスのUser Pressed Keysと、今配置したボックスを結合します。
3. Split Based On...ウィジェットのWIDGET NAMEを「split_IVR」に書き換えます。
4. VARIABLE TO TESTは、プルダウンリストからIVRのDigitsを選択します。
手順4:Split Based On...の設定を変更します。
1. Transitionsタブに移動し、NEW CONDITIONの「+」ボタンを押します。
2. Equal Toを選択した状態で、「1」と入力します。
3. Set Conditionを押して、条件を確定させます。
4. もう一度、NEW CONDITIONの「+」ボタンを押します。
5. Equal Toを選択した状態で、今度は「2」と入力します。
6. Set Conditionを押して、条件を確定させます。
7. WIDGETに、「If value equal_to 1」と「If value equal_to 2」のコネクタができたことを確認します。
手順5:CONNECT CALL TOの設定をします。
1. WIDGET LIBRARYからCONNECT CALL TOをキャンパス上にドラッグアンドドロップします。
2. Check KeyボックスのIf value equal_to 1と、今配置したボックスを結合します。
3. CONNECT CALL TOウィジェットのWIDGET NAMEを「Call_Sale」に書き換えます。
4. CONNECT CALL TOは、「Single Number」を選択して、空欄に「+815031775444」を入力します。
5. CALLER IDは、受信したTwilio番号から転送するので、{{trigger.call.To}}に設定し、「Save」を押して、設定を確定します。
6. 今作成したCall_Sale ウィジェットを複製して、もう一つサポートへ転送するウィジェットを作成します。
7. Call_Sale ウィジェット複製アイコンをクリックします。
手順6:複製されたCONNECT CALL TOウィジェットの設定を変更します。
1. 複製されたCONNECT CALL TOウィジェットのWIDGET NAMEを「Call_Support」に書き換えます。
2. Check KeyボックスのIf value equal_to 2と結合します。
3. CONNECT CALL TOは、「Single Number」を選択して、空欄に「+815031880466」を入力します。
4. CALLER IDは、受信したTwilio番号から転送するので {{trigger.call.To}} に設定し、「Save」を押して、設定を確定します。
手順7:作成したフローと購入した番号を紐付ける。
1. 左ボタン印 -> 電話番号 -> 番号の管理 を選択します。
2. 購入した050番号を選択し、設定ページを表示します。
3. 設定項目音声着信時プルダウンメニューからStudioFlowを選択し、
その横にあるプルダウンメニューから作成したIVRフローを選択し、「保存」します。
実際に電話を架けて試してみましょう!
##実装4-2: IVR機能の実装(音声認識)
手順1:先程作成したIVRのreception_1の設定を変更します。
1. 管理コンソールの左側のスライドメニューから、Studioを選択します。
2. 先ほど作成したフローIVRを選択。
3. GATHER INPUT ON CALL「reception_1」を選択します。
4. SAY OR PLAY MESSAGEのTEXT TO SAY欄の設定を
「こんにちは。営業へおつなぎする場合は営業、サポートへおつなぎする場合はサポートとおっしゃって下さい。」へ変更します。
5. 少し下へスクロールをして、SPEECH RECOGNITION LANGUAGEプルダウンリストから「Japanese(Japan)」を選択します。
6. SPEECH RECOGNITION HINTSには、Twilioに認識させる言葉「営業, サポート」を記入します。
7. Saveボタンを押して、内容を確定させます。
8. Transitionsタブへ移動し、設定を表示します。
9. IF USER PRESSED KEYS設定のDisconnectを選択します。
10. IF USER SAID SOMETHINGのプルダウンメニューからsplit_IVRを選択。
11. Saveボタンを押して、内容を確定させます。
手順2:発信者が言った言葉を判定するボックスを設定します。
1. Split Based On...ウィジェットのWIDGET NAME、「split_IVR」のVARIABLE TO TEST設定を、
プルダウンリストからSpeechResultを選択し、Saveします。
2. Transitionsタブに移動し、IF VALUE EQUAL_TO1の設定を「1」から「営業」へ変更します。
もう一つの、IF VALUE EQUAL_TO2をプルダウンメニューからRegexを選択し、設定を「2」から「.*サポート.*」へ変更します。
3. Saveを押して、条件を確定させます。
##実装4-3: IVR機能の実装
メディアファイルを使用して着信時のガイダンスを再生したい場合の設定方法。
※フローは先程作成したIVRを使用します。
今回メディアファイルの置き場所としてTwilio Assetsを使用します。
・Assetsとは、Twilioのファイルストレージです。
・公開ファイルと非公開ファイルの選択が可能です。
・20ファイルまでアップロード可能
・月10,000リクエストまで無料(それ以上は0.015円/リクエスト)
手順1:Assets
・Assetsへのファイルアップロードの実装は今回行いません。
・既にアップロードされている、URLを使用します。
https://true-things-3178.twil.io/assets/Welcometotwilio%20(online-audio-converter.com).mp3
手順2:先程作成したIVRのreception_1の設定を変更します。
1. 管理コンソールの左側のスライドメニューから、Studioを選択します。
2. 先ほど作成したフローIVRを選択。
3. GATHER INPUT ON CALL「reception_1」を選択します。
4. SAY OR PLAY MESSAGEは、「Play a Message」を選択して、
URL OR AUDIO FILE欄に先程コピーしたURLを入力し、Saveします。
もし複数の電話番号へ一斉発信したい場合
先程作成したフロー「IVR」のCONNECT CALL TO WIDGET「Call_Sale」の設定を変更します。
- 管理コンソールの左側のスライドメニューから、Studioを選択します。
- 先ほど作成したフローIVRを選択。
- CONNECT CALL TO「Call_Sale」を選択します。
-
CONNECT CALL TOは、「Multiple Numbers」を選択して、
PHONE NUMBERS OR CLIENTS欄に転送先電話番号を入力し、Saveします。
##実装5-1:SMS送信
シナリオ
コールを受信したら自動応答システムが起動し、操作を促すガイダンスが流れます。
その後発信者が選択した番号に紐ついているサイトURL情報がSMSで送信されます。
手順1:SMS送信用フローを作成します。
-
管理コンソールの左側のスライドメニューから、Studioを選択します。
-
赤いプラスアイコンを選択して、新しいフローを作成します。
-
New Flowダイアログが表示されるので、Start from scratchが選択されている状態で、Nextボタンを押します。
手順2:コールを受信したときに、メッセージを流しながらキー操作を受け付けるボックスを作成します。
-
WIDGET LIBRARYからGather Input on Callをキャンバス上にドロップします。
-
Trigger WIDGETのIncoming Callと、今ドロップしたボックスを結合します。
-
GATHER INPUT ON CALLのWIDGET NAMEに「SMS_1」と入力します。
-
SAY OR PLAY MESSAGEは、「Say a Message」を選択して、TEXT TO SAY欄に「こんにちは。料金の情報を受け取りたい方は3、事例紹介の情報を受け取りたい方は4を選択してください。サイトURL情報をSMSへ送信いたしますので、電話を切って今しばらくお待ち下さい。また、営業へおつなぎする場合は1、サポートへおつなぎする場合は2を選択して下さい。」と入力します。
-
少し下へスクロールをして、MESSAGE VOICEを「Alice」、LANGUAGEのプルダウンリストから「Japanese, Japan」を選択します。
手順3:押されたキーを判定するボックスを作成します。
-
WIDGET LIBRARYからSplit Based On...をキャンパス上にドラッグアンドドロップします。
-
IVRボックスのUser Pressed Keysと、今配置したボックスを結合します。
-
Split Based On...ウィジェットのWIDGET NAMEを「split_SMS」に書き換えます。
-
Transitionsタブに移動し、NEW CONDITIONの「+」ボタンを押します。
-
Equal Toを選択した状態で、「3」と入力します。
-
もう一度、NEW CONDITIONの「+」ボタンを押します。
-
Equal Toを選択した状態で、今度は「4」と入力します。
-
Set Conditionを押して、条件を確定させます。
-
「If value equal_to 1」と「If value equal_to 2」のコネクタができたことを確認します。
手順4:SMSを送信するボックスを作成します。
-
WIDGET LIBRARYからSEND MESSAGEをキャンパス上にドラッグアンドドロップします。
-
作成したIf value equal_to 1と、今配置したボックスを結合します。
- CONNECT CALL TOウィジェットのWIDGET NAMEを「Send_Price」に書き換えます。
- MESSAGE BODY欄に「 https://twilio.kddi-web.com/price/ 」を入力します。 -
下へスクロールし、SEND MESSAGE FROMは、購入したTwilio番号から転送するので、
「+1~から始まるUS番号」に設定し、「Save」を押して、設定を確定します。
-
今作成したSend_Priceを複製して、もう一つ事例紹介URLを送信するウィジェットを作成します。
手順5:CONNECT CALL TOウィジェットの設定を変更します。
- 複製されたCONNECT CALL TOウィジェットのWIDGET NAMEを「Send_UseCase」に書き換えます。
- Check KeyボックスのIf value equal_to 2と結合します。
- MESSAGE BODY欄に「 https://twilio.kddi-web.com/case/」を入力します。
- 下へスクロールし、SEND MESSAGE FROMは、購入したTwilio番号から転送するので、「+1~から始まるUS番号」に設定し、「Save」を押して、設定を確定します。
手順6:作成したフローと購入した番号を紐付ける。
- 左ボタン印 -> 電話番号 -> 番号の管理 を選択します。
- 購入した050番号を選択し、設定ページを表示します。
- 設定項目音声着信時プルダウンメニューからStudioFlowを選択し、その横にあるプルダウンメニューから作成したSMSフローを選択し、「保存」します。
##実装6-1:ログの確認
シナリオ
フローを実行したタイミングで生成されるexecutionログを確認します。
手順
executionログを表示します。
##Twilio Studioが保有するデータ
ログデータ
生成されたタイミングから、90日間が有効期限になります。
フロー実行時に生成されるexecutionや実行されたウィジェットなどの情報を保有します。
コンテキストデータ
Flowが実行されると、以下4種類のデータが保存されます。
Flow : Flowに属するデータです。 フローに紐ついているTwilio電話番号など。
Trigger: 最初の受信メッセージ、着信通話、あるいはREST APIなど、Flowの初期化時に設定されるデータです。
Widgets: 各Widgetが自身に設定するデータ、およびコンテキストが実行されるとそれに追加されるデータです。
ユーザーが押したプッシュボタンの番号や、受信メッセージの本文などです。
Contact: Flowとやり取りを行なっている相手の連絡先に関するデータで、電話番号などが該当します。
##資料
各機能の使い方ガイド
https://jp.twilio.com/docs/
FAQ
https://twilioforkwc.zendesk.com/hc/ja
その他情報
https://twilio.kddi-web.com/news/
https://twilio.kddi-web.com/blog/
アンケート
お手数ですが、受付時にお渡したアンケートにご協力をお願いいたします。