ハック総研

NPO法人ハックジャパンが運営するプログラムから誕生したちょっとした豆知識、アイディア、ケーススタディが詰まったハックジャパン総合研究所(ハック総研)の公開ブログ。

電話回線をAWSで全てクラウド化しカスタマイズした結果、業務効率も顧客満足度も急上昇させた分散型オフィス

全ては「Amazonが日本で050番号を利用できるようにしたらしいぞ」から始まった

2017年9月のある日、社内でこれまで課題に感じていた問題を解決するためのビッグニュースが入ってきた。それこそがAmazon Web Serviceのクラウド型コールセンターサービス「Amazon Connect」で日本の電話番号が取得可能になるというニュースだった。

これは、弊社ならではの問題もあり、今後多くの会社にも適用されるであろう問題だと思う。全ての社員がリモートワークをしていると、もちろんのこと隣に同僚も上長もいるわけではない。これまでは交代しながら一つのIP電話を利用していたが言わずとも非常にリアルタイム着信率が悪かった。確かにIP電話などでは1人のみに着信するものであれば安価に導入ができるものの、複数名が同時着信するようなサービスの構築には初期費用だけで10万円を超えるものがほとんどだった。最初からそのようなサービスを導入出来なかったのもそれが理由である。

 

Amazon Connect は着信に気づかず、最初は導入を断念した

Amazon Connect ではCTIが全てブラウザー上でしか開けないため、PCを起動していないときや打ち合わせのときなどには起動していないことが多く、ログインの面倒さなどを理由にあまり社員の間で肯定的な意見は少なかった。

1日あたりの電話による問い合わせは平均10件以下ということもあり、お電話頂いた後に不在着信を辿りながら折り返しお電話をすることが約9割に上っていたため、Amazon Connectの標準機能のみでは足りず、拡張の必要に迫られていた。

 

f:id:koyamaps:20180327085449p:plain

うちの会社、プログラミング教育の会社でしょ?なんでコードを書いて解決しないの?

Amazon Connect では Amazon Lambda に10数行のコード、Amazon Simple Notification Service (Amazon SNS) との連携をさせるだけで、スマートフォンへのプッシュ通知やSMSへの通知などあらゆるプラットフォームに対して通知を送ることが出来る。今回はその機能を活用し Slack へ通知をすることを試みた。

なるべく書きやすい言語で書くこと、開発から本番環境までの移行期間は1日未満であることであるという条件の中で、Amazon Connect から Amazon Lambda への情報の受け渡しは Python を採用した。関数をそのまま変換するだけでのシンプルなコードのみを実行する。

def lambda_handler(event, context):
topic_arn = os.environ['<Amazon SNSのARNの環境変数>']
msg = event['Parameters']['message']
client = boto3.client('sns')
client.publish(TopicArn = topic_arn, Message = msg)

 LambdaからAmazon SNSに受け渡された後はそのまま送信するだけだが、今回はSlackのImbound APIに送信するため再度Lambdaに戻してからJson形式に変換してAPI経由で通知する。

 

たった数時間の開発で電話が着信前に通知され、20秒以内の応対率が90%に達した

同時着信などをした際に他に対応できるスタッフがいれば、すぐに Amazon Connect にログインし待機するといった対応が出来るようになった。これにより、お客様のお電話がAmazon Connectの番号に発信され、お客様がお電話で接続部署番号選択している時間の間にスタッフが待機することで、お待たせする時間を最小限にするための弊社ならではの工夫である。

特に今後は、小規模なスタートアップやカスタマーサポート部門を専属で置かないが、電話サポートを置きたいといったスタートアップが顧客の満足度を上げつつ、人材リソースを最小限に割くための策とも言えるでしょう。