Article

ブログ

2022/04/04

外部CRMに録音テキストを書き出す新機能について

こんにちは。エンジニアの牧です。

弊社プロダクトのCallConnectでは、先日、一部CRM(顧客管理ツール)との連携機能を強化しました。 録音データをテキスト化して、CRMの画面上へ書き出せる機能です。
対象となる連携先はHubSpot CRM、Zoho CRM、Salesforceです。

本記事では、私たちが機能アップデートを進めていく中で、技術面や運用面でどのようなことに悩み、検討してきたかをご紹介します。
また、本記事を通して新機能の特性について理解を深めていただければ幸いです。

技術面について

以前のCallConnectにおいても、通話終了時に通話メモなどをCRMへ書き出す機能は存在していました。通話終了時点だけではなく、不在着信など成立していない通話についても書き出し対象になります。
これらは通話終了時にすぐに書き出される仕様でした。

一方で、音声をテキスト変換するには処理時間がかります。
CallConnectは機械学習の機構を含んだテキスト変換タスクを採用しており、安定した負荷率でサービスを提供するために約10分間隔のバッチ処理にてタスク結果を回収、運用しています。
タスクはおおむね10分以内に完了しますが、長時間の録音であれば20分以上かかることも考えられます。

そのため、CRMへの書き出しのタイミングを考えることになりました。

実装案1
まずは通話終了時点で録音テキスト以外を書き出して、テキスト変換完了時にテキストデータを書き出す方式。(データ更新)

一見すると、テキスト化タスクの残件や録音データ数の管理が省力化できる案1が魅力的です。
しかし、書き出した情報は運用者が直接編集・削除できなければなりません。
運用者が直接操作した後でCallConnectによる編集を加えてしまうと、削除したはずの
情報が再度書き出される/編集結果の形式が入り乱れてしまうといった問題につながります。
また、CallConnectからは運用者ごとの編集形式まで検出・適用することができないため、
最初に書き出した形式から変更のない前提で書かざるを得ません。

そこで、以下の実装案を検討し、採用しました。

実装案2
録音のテキスト変換処理が完了するのを待って、テキスト変換が完了したタイミングで、1度に全ての情報(通話相手、通話メモ、録音URL、録音テキストなど)を書き出す方式。

案2の実現に向けては、録音データがテキスト変換の途中で手動削除された場合や、保留中に電話が切れた場合なども考慮し、テキスト変換データが正しくCRMに書き出されるようにテストを重ねました。
技術職としてこの機能を仕上げる大変さもありましたが、私たちの特長である網羅的な検証の見せどころでもあったと思います。
録音テキストの書き出し以外でも、実は録音の保持性能が上がっています。

運用面について

HubSpot CRM、Zoho CRM は、録音のテキスト変換が完了したタイミングに関わらず、CRM上では通話開始日時順で通話履歴が並びます。 これは通話履歴の書き出し先となるHubSpot CRMのアクティビティ、Zoho CRMの活動において、“日時”を保持できるからです。

しかし、SalesforceにTodoとして通話履歴を書き出す際は、Todoの仕様として通話開始した日時を完了日時として保持できません。 そのため、同日の予定であればTodoの更新が新しい順で繰り上がってしまいます。

これにより、例えば、今日Aさんと「20分の通話-①」が終わった後、またすぐに「3分の通話-②」をした場合に、テキスト変換の完了タイミングが②の通話よりも①の通話の方が遅くなってしまうと、SalesforceのTodoの並び順としては、直近でテキスト変換が完了した①の通話履歴が最上部に表示されることになります。
結果として、稀に通話開始日時順に並ばないケースが起きる可能性があります。

CallConnectにおけるSalesforce連携では、以前から通話終了時にはTodoへ書き出されるようになっております。また、Salesforce側のヘルプ記事などを確認すると、デフォルトで通話記録はTodoとして書き出されるようになっており、Salesforceにおいては通話記録をTodoとして管理するのが一般的でした。
Salesforceへ通話履歴を書き出す際、時間が保持できない現状のTodoではなく、時間を保持できるTaskという概念に移行すれば、更新順ではなく、通話開始日時のとおりに時系列で並びます。

しかし、通話記録をTodoで書き出すのはSalesforce側でもデフォルトとなっており、今回はSalesforce連携中の現ユーザーさんへの影響も考慮し、Todoへ書き出すことを選択しました。
技術的にはTaskへの移行は簡単に行えますが、Todoに書き出される通話履歴を元にSalesforce内で通話件数の集計や分析を行っている場合もあるため、まずはこれまでの運用性を損なわない形で追加実装としました。
これにより、ユーザーさんにこれまで通り、違和感なく使っていただけることを期待しています。
※こちらについては、ユーザーさんの声を聞きながら常に何が最適な連携形式かを検討していきます。

おわりに

さて、今回CallConnectへ追加された「外部CRMへの録音テキスト書き出し機能」ですが、 上記のような協議や検討の結果、選択肢が多い中でのリリースとなりました。 新しい機能ですので、まずは使ってみていただき、ご意見などお寄せいただければ幸いです。

連携機能の概要は、以下から確認いただけます。

HubSpot CRMと連携する
Zoho CRMと連携する
Salesforceと連携する

今後も継続的にCallConnectを改善し、より良いサービスを提供していきます。