2022.02.02
2024.03.27

BIZTEL API使ってみた Vol.8 音声認識でSalesforceにお客さまとの通話内容を自動で記録する

「BIZTEL API使ってみた」シリーズでは、BIZTELがもっと便利に使えるようになるAPI連携機能を活用して、サービス担当者が様々な機能の実装にチャレンジします。

前回の記事はこちら

今回は、BIZTELの「API連携コールアクション」と「音声認識サービス履歴連携」を活用して、通話内容をSalesforceに自動で記録する仕組みを作っていきます。

設定の一部は「BIZTEL API使ってみた Vol.6」と重なるところがありますので、こちらの記事も参照しながらご覧ください。

やってみたいこと

コールセンターでは、お客さまとの通話が終わった後にその内容をSalesforceなどのCRMへ記録するオペレーションを組んでいるところが多いと思います。

ですが、手動で通話内容を書き起こして入力するのは非常に手間になります。

そこで終話後、その内容を音声認識でテキスト化し、Salesforceに自動で記録する仕組みを作ってみたいと思います。

チャレンジ担当者紹介

使用するツール

BIZTELの利用ライセンス

・コールセンタープランのご契約

BIZTELで必要なオプション

・API連携コールアクション
・音声認識サービス連携

BIZTEL以外に必要なもの

・Salesforce
・AmiVoice API

※ なお今回の連携設定において、Salesforce上に音声テキストの解析結果を記録するためには、BIZTELのバージョンが3.5.0 以上である必要があります。
※ 詳細な条件についてはお問い合わせください。

動作の流れ

1.お客さまからの着信に対して応答して、その後通話を終了します。
2.終話後、お客さま電話番号より自動的にSalesforceの顧客レコード(※)が特定されます。
 ※顧客レコードの検索先は、「リード」「取引先」「取引先責任者」を対象とします。
3.特定された顧客レコードの活動履歴に、通話情報や音声テキスト解析の結果が記録されます。

記録する内容は以下の通りです。

  • 発信電話番号
  • 着信電話番号
  • 着信アカウント名
  • 着信内線番号
  • 通話開始日時
  • 通話終了日時
  • 通話時間
  • 録音再生URL
  • 音声テキスト解析結果

設定の実践

Salesforceでの事前準備

1. Salesforce管理画面でアプリケーション設定

●Salesforceのアプリケーション作成

●作成したアプリケーションの鍵情報を確認
 ※設定手順は こちら の「設定の実践  1.Salesforce設定準備」を参照してください。

2.Salesforce管理画面でカスタム項目追加

●通話録音の再生リンクを表示するためのカスタム項目をSalesforceの活動履歴に追加
 ※追加方法は こちら の「2.2 カスタム表示ラベルの作成」を参照してください。

BIZTEL管理画面の設定

1. BIZTEL管理画面でOAuth設定

●OAuthアカウント登録

●アクセストークンの取得
 ※設定方法は こちら の「設定の実践 2.BIZTELでのOAuth設定」を参照してください。

2. BIZTEL管理画面でコールアクション設定

●コールアクション機能に対して以下の設定を追加していきます。

  • お客さま電話番号からSalesforceの顧客レコードを特定する処理
  • 特定した顧客レコードの活動履歴に、通話情報や音声テキスト解析の結果を記録する処理

また、特定した顧客レコードの種別が「リード」「取引先」「取引先責任者」のどれにあたるかという判定も行います。

2.1. Salesforce上のリード・取引先・取引先責任者に対して、お客さま電話番号を用いて検索を行い、最初にマッチした顧客レコードの「レコードID」と「オブジェクトの種類」を取得する処理を設定します。

基本情報 イベント種別 着信
  実行順 1
API実行条件 判定用コード  
  判定評価パターン  
API情報 API連携種別 OAuth トークン取得
  OAuthアカウント SalesforceOAuth設定
  URL

{OAUTH_INSTANCE_URL}/services/data/v45.0
/parameterizedSearch/
?q={TEL}&sobject=
Account&sobject=Contact&sobject=Lead

  メソッド GET
  リクエストヘッダ  
  リクエストボディ  
  タイムアウト判定(秒) 10
  変数抽出パターン /"attributes":\{"type":"(?P<TYPE>[a-zA-Z]*)".*?"Id":"(?P<NOID>[a-zA-Z0-9]*)"/
  メモ  

2.2.特定された顧客レコードの活動履歴に、通話情報や音声テキスト解析の結果が記録されるように設定します。

特定した顧客レコードのオブジェクト種類により記録するためのAPIが異なるため、次のようにオブジェクト種類別の設定を実施します。

オブジェクト種類が「リード」あるいは「取引先責任者」の場合の記録処理設定

API8_SFsettings_2

 基本情報 イベント種別 録音完了/音声認識連携完了
  実行順
1
API実行条件 判定用コード {RESPONSE_TYPE}
  判定評価パターン /Contact|Lead/
API情報 API連携種別 OAuth
  OAuthアカウント SalesforceOAuth設定
  URL {OAUTH_INSTANCE_URL}/services/data/v45.0/sobjects/Task/
  メソッド POST
  リクエストヘッダ Content-Type: application/json
  リクエストボディ {
"WhoId": "{RESPONSE_NOID}",
"Subject": "{STARTTIME}に通話(着信)",
"Description": "{VOICE_LOG.JSON_ESCAPE()}",
"WavUrl__c": "https://XXXXXXXX/monitor_link/{ID}",
"CallDisposition":"■発信電話番号:{TEL}■着信電話番号:{CALLED}\\r\\n■着信アカウント名:{AGENT_NAME}■着信内線番号:{AGENT_EXTEN_NO}\\r\n■通話開始時間:{STARTTIME}■通話終了時間:{ENDTIME}\\r\n■通話時間:{CALLSEC}"
}

オブジェクト種類が「取引先」の場合の記録処理設定

API8_SFsettings_3

基本情報 イベント種別 録音完了/音声認識連携完了
  実行順 2
API実行条件 判定用コード {RESPONSE_TYPE}
  判定評価パターン /Account/
API情報 API連携種別 OAuth
  OAuthアカウント SalesforceOAuth設定
  URL {OAUTH_INSTANCE_URL}/services/data/v45.0/sobjects/Task/
  メソッド POST
  リクエストヘッダ Content-Type: application/json
  リクエストボディ {
"WhatId": "{RESPONSE_NOID}",
"Subject": "{STARTTIME}に通話(着信)",
"Description": "{VOICE_LOG.JSON_ESCAPE()}",
"WavUrl__c": "https://XXXXXXXX/monitor_link/{ID}",
"CallDisposition":"■発信電話番号:{TEL}■着信電話番号:{CALLED}\\r\\n■着信アカウント名:{AGENT_NAME}■着信内線番号:{AGENT_EXTEN_NO}\\r\n■通話開始時間:{STARTTIME}■通話終了時間:{ENDTIME}\\r\n■通話時間:{CALLSEC}"
}

オブジェクト種類が「リード」「取引先」「取引先責任者」以外の場合の記録処理設定

API8_SFsettings_4

基本情報 イベント種別 録音完了/音声認識連携完了
  実行順 3
API実行条件 判定用コード {RESPONSE_TYPE}
  判定評価パターン /^(?!.*(Contact|Lead|Account)).*$/
API情報 API連携種別 OAuth
  OAuthアカウント SalesforceOAuth設定
  URL {OAUTH_INSTANCE_URL}/services/data/v45.0/sobjects/Task/
  メソッド POST
  リクエストヘッダ Content-Type: application/json
  リクエストボディ

{
"WhoId": "★★★★★★",
"Subject": "{STARTTIME}に通話(着信)",
"Description": "{VOICE_LOG.JSON_ESCAPE()}",
"WavUrl__c": "https://XXXXXXXX/monitor_link/{ID}",
"CallDisposition":"■発信電話番号:{TEL}■着信電話番号:{CALLED}\\r\\n■着信アカウント名:{AGENT_NAME}■着信内線番号:{AGENT_EXTEN_NO}\\r\n■通話開始時間:{STARTTIME}■通話終了時間:{ENDTIME}\\r\n■通話時間:{CALLSEC}"
}

2.3. 上記の設定を行うことで、通話終了後、顧客レコードの活動履歴に通話情報(※)や音声テキスト解析の結果が記録されます。
また通話履歴再生リンクを押下することで、録音した通話内容が再生・ダウンロード可能です。

※以下の通話情報が記録されます。

  • 発信電話番号
  • 着信電話番号
  • 着信アカウント名
  • 着信内線番号
  • 通話開始日時
  • 通話終了日時
  • 通話時間

API8_SFsettings_5
API8_SFsettings_6

結果

「API連携コールアクション」を用いて、Salesforceの活動履歴に通話情報や音声テキスト解析の結果を記録することが出来ました。

自社の運用に合わせながら簡単に設定できますので、ぜひお試しください!

編集後記

今回は、音声認識した通話内容をSalesforceに自動で記録する、という仕組みを実践しました。

「BIZTEL API使ってみた」シリーズでは、BIZTELの利用者が実際に思いついた業務改善のアイデアをもとに、今後も様々な機能を紹介する予定です。

簡単に実現できるよう、設定方法も交えながらお伝えしますので、読者のみなさまもぜひチャレンジしてみてください。

いまBIZTELをご利用中のお客さまも、「こんなことがしたい」というご希望がございましたら、BIZTELサービス担当までご相談ください!