電話業務の自動化をTwilioで構築（ノーコード）

# はじめに
株式会社コミュカル [Mitz](https://twitter.com/CharaDenMitz)です
この記事は [RPACommunityアドベントカレンダー2022](https://adventar.org/calendars/7503) の12/25 担当分になります。
みなさまメリークリスマス！

今回はIVR（電話自動音声応答システム）をノーコードでも構築できる[Twilio](https://cloudapi.kddi-web.com/availability)の初級者ネタです。

ITを活用した自動化を学び合うのが[RPACommunity](https://rpacommunity.connpass.com/)
このコミュニティでは、**RPA**を中心に様々な手法で実現する**自動化**や**IT化**を学び合うイベントを主に開催していますが、そこで常にみなさんに口すっぱく伝えているのが**IT導入もツール導入も手段であって目的ではない**です。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074051/05948d18-00b9-b214-5dac-827ddc6b6019.png" width="400">

（⇧普段からみなさんに伝えているメッセージ）

エンジニアやIT開発者はテクノロジーに触れる、自ら触るのが大好き（な人が多い）です。そんなみなさんが趣味や自己学習であれば何に取り組むのも何を開発するのも自由、どんどん好きなものに取り組んで開発を楽しんでください。
ですが、もし仕事・業務として取り組むのであれば **「自分がやりたいから、楽しいから導入する・開発する」は手段が目的になっている可能性もあり危険です。**

今回は **「自分の業務を楽しく自動化・開発したかった」** けど **「一番キツい業務が何なのか社内を見渡したら、電話応対業務が一番キツいことが分かった」** ので **Twilioを導入して自動化を行ったお話**です。

上記内容の概要はこちらのスライドにストーリー仕立てで書いてありますので興味がある方はぜひご覧ください。

<script async class="speakerdeck-embed" data-id="326e7fe5d73a40ec96f20bc395b9217c" data-ratio="1.77725118483412" src="//speakerdeck.com/assets/embed.js"></script>

# 今回やったこと／必要なもの
**やったこと**
Twilioアカウント作成➡電話番号購入➡Twilio Studioで電話自動音声応答システム構築

**必要なもの**
Twilioアカウント

# 実施した流れ
## まず知っておくべきこと
事前にこちらに目を通すのがオススメです。

▼Twilioエバンジェリスト [高橋さん](https://twitter.com/_katsumi)のQiita記事
[Twilioで開発を始める前に知っておくこと（電話の制限編）](https://qiita.com/mobilebiz/items/e093f8bc3329114e7cd0)

## ①Twilioアカウント作成
アカウント作成方法についてはこちらのTwilio公式ページをご覧ください。
[Twilioアカウントの作成方法](https://support.twilio.com/hc/en-us/articles/360060082293-Twilio%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%81%AE%E4%BD%9C%E6%88%90%E6%96%B9%E6%B3%95)
[<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074051/f131715f-5e3f-095f-5fcc-9c99bb80cb8c.png" width="400">](https://support.twilio.com/hc/en-us/articles/360060082293-Twilio%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%81%AE%E4%BD%9C%E6%88%90%E6%96%B9%E6%B3%95)<br>

そして先に伝えておきますが、今回のシステムは月額たった
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074051/0e872cbf-16bb-89e6-ac1c-5bb21e8a595b.png)
です。

## ②電話番号購入
今回2つの番号を購入しました。
①会社代表となる電話番号（日本国内の電話番号）
②SMS発信用の電話番号（アメリカの電話番号）

### ②-1 日本国内の電話番号を購入
購入方法についてはこちらをご覧ください。

▼Twilioエバンジェリスト [高橋さん](https://twitter.com/_katsumi)のQiita記事
[Twilio上で日本の電話番号を購入する方法（2022年1月版）](https://qiita.com/mobilebiz/items/8c51ac4dce7baa49aa36)

▼KDDIウェブコミュニケーションズの説明ページ
[Twilioコンソールから電話番号を購入する方法](https://cloudapi.kddi-web.com/magazine/twilio-voice/how-to-buy-phone-number-from-twilio-cornsole)

### ②-2 アメリカの電話番号を購入
なぜアメリカの電話番号が必要なのか？
これは、日本国内の番号宛にSMS発信が行える番号（070/080/090）についてTwilioでは取り扱っておらず、アメリカの電話番号を購入することでSMS発信を実現するためです。
※アメリカの番号＝アメリカ国内外に発信可能
詳しくはこちらをご覧ください。

▼Twilioの説明ページ
[Programmable SMS について](https://cloudapi.zendesk.com/hc/ja/articles/9772034816921-Programmable-SMS-%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6#gsc.tab=0)
[Twilio 電話番号を使って国際 SMS の送受信を行うにはどうすればよいですか？
](https://cloudapi.zendesk.com/hc/ja/articles/206367061-Twilio-%E9%9B%BB%E8%A9%B1%E7%95%AA%E5%8F%B7%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E5%9B%BD%E9%9A%9B-SMS-%E3%81%AE%E9%80%81%E5%8F%97%E4%BF%A1%E3%82%92%E8%A1%8C%E3%81%86%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B-#gsc.tab=0)

## ③Twilio Studioで電話自動音声応答システム構築
Twilio Studioは簡単にTwilioシステムを構築できるサービスです。
実際に弊社がTwilio Studioを用いて作成した内容をそのまま貼り付けてお見せします。

▼参考
[Twilio Studioとは](https://cloudapi.zendesk.com/hc/ja/articles/9511907669145-Twilio-Studio-%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6#gsc.tab=0)

### 構築内容と全体図
Twilioで構築した内容は以下の通りです
1.電話を受けた際に自動音声で応答し目的毎に番号を選択入力させる
2.選択された番号を判断
3.選択された番号によって各種処理を実施

こちらが全体図です
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074051/0279a6ea-10d1-db1d-d373-a0166d25b35b.png)

### ③-1 自動音声と番号入力
電話受信 **Incoming Call** がトリガー
音声応答 **Gather Input On Call** で相手に目的の番号を押下させる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074051/4b30217c-4d66-b3fc-e034-a3e78a48497e.png)

言語と音声のキャラ設定も選択可能
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074051/8ac50e3c-563a-f5e3-8a85-5e1f04767c6c.png)

次の処理はTransitionsで設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074051/9e412c43-0401-0a77-1ebb-86fe0a17fa06.png)


### ③-2 番号判断
入力された番号の判断 **Split Based On...**
1から4が正しい選択肢でその場合は先に進む
それ以外が入力されていた場合は 入力誤りを **Say/Play** で知らせて③-1 に戻る 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074051/c6aec143-716e-a8d8-8901-9f5cee013033.png)

Split Based On...の設定は簡単
番号に合わせて次の処理を設定（これを選択の番号分行うだけ）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074051/7dcb845f-ed0f-7c0a-9e35-b0b1b0c480aa.png)

Say/Playの設定ではGather Input On Callでの設定と同様に、音声内容と言語やキャラを設定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074051/d2963a3a-4d13-ba29-478c-e099ecdc2b24.png)

こちらは次の処理として③-1（選択し直し）となる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074051/9e2a3b45-3964-662d-ba65-4ebed951f257.png)

### ③-3 選択毎の各処理
以下処理を行う設定にしています
1.コミュニティやイベント企画の問い合わせ用フォームURLをSMSで発信
2.ITシステム導入・開発関連の問い合わせ用フォームURLをSMSで発信
3.社内窓口（弊社社員）に電話を転送
4.対応終了の旨を音声通知

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074051/89c7184d-19a5-a452-a505-05e64af65b2c.png)

どの選択肢でも、まずは **Say/Play** で「何を行うか」音声で伝えます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074051/496bdbb9-a99a-c452-78f6-c368346dbf69.png)

SMS発信は **Send Message** でメッセージを送信 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074051/f07025e7-363a-a2d6-83d8-a740fa8f24fd.png)

送信するSMS内容を「MESSAGE BODY」に設定（フォームのURLもここに直書き）
どの番号からSMSを発信するかの指定「SEND MESSAGE FROM」には②-2で購入したアメリカの電話番号（SMS発信用）を設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074051/5293e483-c5ca-d18a-273f-82b58a0bf6ef.png)

社内窓口への電話転送は **Connect Call To** で設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074051/f751e07d-cc86-3786-0537-5c6979d182ef.png)

転送する先の電話番号を「CONNECT CALL TO」に設定し、呼び出し元の電話番号を「CALLER ID」に設定
呼び出し元の電話番号について、ここでは②-1で購入している日本国内の電話番号を指定
そうすることで、転送先では「会社窓口からの転送だ」と判断できる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074051/3f9ed4b2-0cc6-86b9-b8ba-39a223aa5d2c.png)

## 結果
②-1で購入した日本国内の電話番号（050～）を弊社代表電話番号にすることで、「直電」の前にワンクッションとして自動で処理振り分けを実現できました。

ちなみに今後追加したい処理は
**営業時間の判定** と **セールス対応の判断追加** です。
追加した際にはまた共有したいと思います。

# 最後に
あれを導入したい！これを開発したい！というエンジニア欲求があるのは当然です。
自分の好きなものを開発する、本当に楽しいです。
でも、本当に業務を助けるIT化・自動化って自分自身の業務範疇からは見えてこない場所に潜んでいることもあるんです。それはこんな「電話対応」かもしれません。
真に評価されるIT導入・開発とは **本当に困っている人やキツい業務を助ける** こと。
これを常に頭に置いておくのが大事ですね。