2020.02.05

2219

CTIを知らない私たちが2ヶ月でAmazon Connectを導入した話

こんにちは。ハコベルコネクトのサーバーサイドの開発を担当している加藤です。

今日はハコベルコネクトと呼ばれる今年の2月にローンチした大手物流荷主・一般貨物事業者など運送会社を自由度高くつなぐ物流プラットフォームにCTI(電話システム)を導入した話をご紹介したいと思います。

ハコベルコネクトとは

物流業界では複数の運送会社によって仕事が行われていることでシステム化が進まず紙・電話・FAXなどアナログな媒体がまだまだ多く残っています。これにより生産性が上がりにくく、ドライバー不足にも繋がっています。ハコベルコネクトはこのような現在の物流業界における課題を解決すべく開発されました。

一般的な概念で整理すると、ハコベルコネクトは以下の2つの側面を持っています。

  1. 企業間TMS (Transportation Management System: 輸配送管理システム) のSaaS
  2. 求荷・求車のマッチングプラットフォーム

物流業界ではドライバーの他に「配車マン」と呼ばれる職種があるのをみなさんご存知ですか。配車マンはドライバーへの配達状況指示・運行状況の確認・交通状況の確認・他社の配車係との連携を担う重要な職種です。ハコベルコネクトは、「1. 企業間TMSのSaaS」として配車マンやドライバーのコミュニケーションをサポートするサービスとして開発されてきました。

また「2. 求荷・求車のマッチングプラットフォーム」として、荷主様からハコベルが直接配送案件を受付け、連携している運送会社につないでいます。その際にシステムを提供するだけでなく、業界を熟知した専任サポートチームが電話やFAX・メールなどでコミュニケーションをとりながら、マッチングを支援しています。

電話のシステムを入れ替えたい!

ハコベルの配車サポートチーム(以下、配車Sと記載)では、これまでのメンバーの経験からオフィスフォンを使ってきました。一日最低4時間は電話をしており、しかも一人2台用意して、荷主・運送会社の担当者と同時に通話する(!)こともあるそうです。

配車S オフィスフォン利用イメージ
オフィスフォンの利用イメージ。電話番号は手が覚えているそう。

ただ、チームの人数が増え配送案件数が増えるに従って、オフィスフォンの機能で提供されている保留数が足りなくなってきました。また、電話をかけようと受話器を持ち上げたタイミングで受信があった場合、予期せぬ電話に出てしまうという問題も発生してきました。

そこでCTI (Computer Telephony Integration)を導入しようという話が持ち上がり、各ベンダーにお話を伺っていきました。エンジニアとしては中々ピンとくるものがないなと思っていたところ、インフラチームからAmazon Connectはどうかという提案があり、AWSの方から直接話を聞くことができました。

ラクスルではインフラもAWSの利用が多く、既存のサービスとの親和性も良さそうだったので、他の要件ポイントも比較しつつAmazon Connectにすることが決定しました。

チームで未知のものに取り組む

さて、Amazon Connectを採用するということが決まったものの、スクラムメンバーには誰一人としてCTIに詳しい人はいません。なんとなく大丈夫だろうという自信はあるものの、そもそもどんな機能を開発すれば良いのか検討も立っていない状況でした。本格的に開発に入る前に、まずは未知の部分を既知にするために検証・プロトタイプフェーズを設けました。

余談ですが、この検証を行っている時期にラクスルではちょうど外部講師の方を招いてスクラム研修がありました。その中で”The adapted Stacey matrix” 、Requirements とTechnology の二つの側面で known <> unknown の度合いが違ってくると取るべきアプローチが変わってくるという概念を紹介していただきました。

The adapted Stacey matrix
The adapted Stacey matrix

このMatrix から見てみると、私たちのスクラムにとってCTIの導入は、Chaoticに近いComplexの領域。スクラム全体での学習を深めつつ、少しずつ全体像を明らかにしたり、MVP(Minimum Viable Product)を見極めていくというやり方をとるのはやはり良いアプローチのようです。

まずは開発環境にAmazon Connectのインスタンスを立てて、分担して検証を進めていきました。

  • PdM: 営業時間外や問い合わせフローの設定
  • サーバサイド: Lambdaを利用した問い合わせフローの条件分岐の方法
  • フロントエンド: Amazon Connect Streams API (Streams)と呼ばれるJSライブラリの利用方法
    • これを用いることで自分たちのアプリケーションの中で受発信を行うことができる

検証を通してAmazon Connectの基本的な概念はもちろん、できること・できないこともだんだんと見えてきました。やればできるものです!

通常のコールセンターとは異なる要求に立ち向かう

また、今回は製品やサービスごとに担当者チームが決まっているような通常のコールセンターと違う配車Sならではの要求がありました。

  1. 【受信】取引先一社一社に複数の担当者が決まっているので、その取引先から受信した場合にはその担当者につないで欲しい。
  2. 【発信】発信も頻繁に行っており、案件の荷主や運送会社の担当者の他、エクセルやスプレッドシートで管理している未取引の会社にも営業電話をかけたい。
  3. 【履歴】全体とユーザごとに絞り込んだ通話履歴を見たい。時間外の時にも誰から電話があったかわかるようにしてほしい。

ちなみにAmazon Connectは他のCTIのように内部に電話帳を持ちません。電話番号と顧客データの紐付けを行たい場合はLambdaを経由してデータベース・APIを呼び出したり、フロントエンドでStreamsを使ってカスタマイズを行う必要があります。

また管理画面上で通話履歴を検索することは可能ですが、それに顧客名や担当者名を見やすく整形して表示することや、履歴の一覧をSDKで取得することもできません。その代わりに「データストリーミング(問い合わせ追跡レコード)」の有効化を行い、Kinesis経由でハンドリングする必要があります。

この二つは重要ポイントなので、ぜひ今後Amazon Connectを自サービスと連携しようとする方は頭の片隅に覚えておいておいていただけると開発がスムーズになるかと思います。

(SalesforceやZendeskでは、Amazon Connectのプラグインが用意されており、対応サービスを利用している場合は設定のみで低コストで導入できるようです。)

配車Sの要求とAmazon Connect ならではの仕様を把握したところで、ハコベルコネクトとしての仕様を決めて開発していきました。

【受信】

  1. 取引先に担当者を設定できる機能
  2. 事業所やユーザなど様々なテーブルに分散している電話番号を統一的に扱う連絡先を導入し、電話番号から連絡先の名前を逆引きする機能
      1. を合わせて、電話番号から担当者を逆引きできる機能

【発信】

  1. 受発信時の相手先表示と受発信履歴の表示を組み込んだソフトフォン画面
  2. 電話番号が表示されている箇所からClick to call する機能
  3. スプレッドシートやエクセルから領域コピーしてペーストするとClick to callできるコールリスト機能(これは感激の嵐を呼び起こした神機能となりました)

【履歴】

  1. Kinesis > Lambda から通話履歴を受け取って連絡先や担当者を紐づけて蓄積する機能
  2. 取引先や担当者で絞り込んで通話履歴データをリストする機能
ハコベルコネクトCTI機能
ハコベルコネクトのCTI機能

いよいよ結合

インフラ準備やAmazon Connect内の問い合わせフローの設定など、ここには書ききれないぐらいの作業や試行錯誤を経て、いよいよ結合です。

実際に検証用の電話やデータを用意してスクラムメンバー全員集まり、結合テストを行う会を開きました。モブプロならぬ、モブ結合テストです。問題が出たら、即その場でアクションを決めたり、修正を行なったり。これを2時間も行うとみんなぐったりです。

第1回目の後、QAエンジニアがテストケースを改めてきちんと起こしてくれてレビューもしたので、そのあとはカオス度が減ったような気がします。テストケース重要ですね。

配車Sへのレクチャー会も数回に分けて行いました。リテラシーもバラバラなので、ちゃんと使えるのだろうかとドキドキハラハラする場面もありましたが、前のめりなフィードバックが返ってきてほっと一息。

最終移行まで再度スクラム内でタスクを整理して、確認を行ったり他のチームと連携を行ったり、修正を行ったりしていきました。

ついにリリース!

移行当日から問題なく利用開始。当日は開発メンバーで配車Sの島に張りつき利用状況を見守りましたしたが、杞憂に終わりました。「メンバー間の転送がわかりにくい」という意見以外は「電話かけるのがすごく楽になりました」という声が多数。まるで以前から使っているような自然さで利用いただいていました。検証から2ヶ月ほどで導入に至り、配車Sの生産性の改善が期待されます。

CTIはまずは配車S向けですが、ハコベルコネクトでは他の機能もスピーディーにリリースしており、最近ではサービスが次々に改善されていることがお客様に選ばれる要因にもなってきています。

ビジネスの世界では、アナログの媒体も根強い人気があります。今回のようにシームレスにデジタルとアナログの世界を繋ぐことでデジタルへの移行をスムーズにして、今後も業界全体の前進につなげていきたいと思います。

ハコベルチーム

 

ハコベルおよびラクスルではエンジニアリングの力で世界を変えたいフロントエンドエンジニア、サーバサイドエンジニアを絶賛募集中です!

ハコベルは、 SaaSかつマッチングのプラットホーム。モデリングがチャレンジングな領域であると同時に通常のサービスの機能開発だけでなく、分析基盤・AIを利用したプロジェクトなど多岐に渡る技術領域に触れることができる環境です。腕に覚えがあるエンジニアの応募をお待ちしております!


Amazon Connect, AWS Lambda, Amazon Kinesisは、Amazon Web Services, Inc.またはその関連会社の商標または登録商標です。

Salesforceは、salesforce.com, inc.の商標または登録商標です。

Zendeskは、Zendesk, Inc. その関連会社の商標または登録商標です。

印刷のラクスル( https://raksul.com/ ) の開発を経て、2018年8月より物流マッチングサービスのハコベル( https://hacobell.com/ ) でハコベルコネクトのサーバサイドを担当しています。ハコベルではRails で書いています。

ハコベルチーム
2020.02.05 #Products
2219

CTIを知らない私たちが2ヶ月でAmazon Connectを導入した話

この記事のURLをコピーする
この記事をシェアする ツイート シェア はてな