使用したもの
Typescript, React, Electron, Express, Node.js, PostgreSQL
作成経緯
当時勤務していた自動車小売業ではビジネスフォンは導入されていましたがCTIシステムは導入していませんでした。
店舗に入電があった際、即座にその顧客の情報を得ることができず、会話の中で名前や車両番号などを確認したうえで顧客管理システムに手打ちして顧客情報を確認していました。
そのため顧客の確定まで時間がかかり、お客様にお伺いする要件も多く、通話品質が悪い場合は何度も聞き返しが必要になる事もあるなど電話対応の効率が悪化していました。
そこで市販のナンバーディスプレイ(アロハUSB)をビジネスフォンの主装置に接続、ナンバーディスプレイをRaspberry Piに接続し、Raspberry Pi上にCTIサーバーを構築しました。
また、各PCにElectronで作成したデスクトップアプリケーションをインストールし、サーバーと通信を行うシステムを構築しました。
アピールポイント
顧客システムから出力したデータを照合することで、電話機に残っている単純な番号だけの履歴ではなく、顧客名・保有車両などのデータをまとめて閲覧できるようになりました。
またデスクトップアプリケーションに通知機能を搭載することで、2コール以内にはデスクトップ上に通知が届き、通知をクリックすることでお客様の簡易的な情報が即座に確認できるようになりました。
改善点
今回リアルタイムデスクトップ通知機能が必要であったためElectronを初めて使用しました。
まだまだ理解不足な面が多く、デスクトップアプリケーションとして実行する関係上OS機能へのアクセスがあるにも関わらずセキュリティ面のアプローチがほぼできていない状態です。
またバージョンアップ機能を組み込むところまでは至らず、バージョンアップを行う際に各PCを手動でインストーラーを操作する必要があるなど、セキュリティも含め多台数環境での運用には課題が残る形となりました。