生成AI | BIZTEL / Just another WordPress site Fri, 05 Jun 2026 09:05:05 +0000 ja hourly 1 https://wordpress.org/?v=5.3.26 コールセンター向けAIの3大種類とCTI連携メリット|要約・自動分類の事例も紹介 /blog/2026/06/05/19146/ /blog/2026/06/05/19146/#respond Fri, 05 Jun 2026 08:55:33 +0000 /?p=19146 コールセンターにおけるAI活用とは?主な種類とCTI連携のメリット 近年、人手不足の解消や業務効率化の切り札として、コールセンターへのAI(人工知能)導入が急速に進んでいます。 コールセンターにおけるAI活用は、単なる「 […]]]>

コールセンターにおけるAI活用とは?主な種類とCTI連携のメリット

近年、人手不足の解消や業務効率化の切り札として、コールセンターへのAI(人工知能)導入が急速に進んでいます。

コールセンターにおけるAI活用は、単なる「自動化」に留まりません。電話とコンピューターを統合する「CTIシステム」と各種AIを連携させることで、オペレーターの業務負担を劇的に軽減し、顧客満足度(CS)の向上とコスト削減を同時に実現できるのが最大のメリットです。

しかし、「自社のコールセンターにはどのAIが最適なのか」「具体的にどう業務が変わるのか」が分からず、導入に踏み切れない担当者の方も多いのではないでしょうか。

本記事では、現在のコールセンターDXを牽引する「3つの主要AI(音声認識AI・生成AI・ボイスボット)」について、それぞれの特徴やCTI連携で実現できること、そして代表的なサービスを分かりやすく解説します。

コールセンター向けAIの3大種類と、CTI連携でできること

音声認識AI

音声認識AIは、文字起こしができるシステムです。

CTIシステムを介して電話と連携することで、通話内容をテキスト化することができます。お客さまの発言のメモや、応対履歴の入力、苦情やトラブルに関する報告書の作成などにかかる手間を大幅に削減することが可能です。また、通話内容を後から確認する際も、録音を聴くのと比較して短時間で行えます。

連携する音声認識AIのサービスによっては、会話に出てきたワードをもとに関連するマニュアルやFAQをオペレーターに表示したり、クレームと類推できる単語やNGワードが発せられたら管理者に通知できたりと、さらに便利な機能が利用できます。

CTI連携ができる代表的な音声認識AI

  • AmiVoice(株式会社アドバンスト・メディア)
  • MSYS Omnis(丸紅情報システムズ株式会社)
  • PKSHA Speech Insight(株式会社 PKSHA Technology)
  • AI Dig(エス・アンド・アイ株式会社)
  • RECAIUS(東芝デジタルソリューションズ株式会社)

生成AI

AIがユーザの指示にしたがって文章を作成したり、情報の整理をしたりと、従来は人が行っていたさまざまな作業が自動化できる技術です。ChatGPTなどのAIチャットボットで利用されていることでもお馴染みです。

CTIシステムによって電話・音声認識AI・生成AIサービスの3つを組み合わせて使うことで、通話内容の書き起こしを要約でき、応対履歴の入力などにかかる作業時間を大幅に削減できます。

そのほか、顧客とオペレーターの会話内容から、VOC(お客さまのご意見・ご要望)の抽出、FAQの作成、言葉づかいのチェック、ヒアリング項目の抜け漏れの確認なども可能です。

CTI連携ができる代表的な生成AI

  • OpenAI API(OpenAI, Inc.)
  • Azure OpenAI API(Microsoft)

ボイスボット

ボイスボットは、AIを活用して電話の自動応対ができるシステムです。 問い合わせ内容への回答や、購入・解約の手続き、予約日時の変更といった対応を自動で行うことができます。

CTIシステムと連携することで、ボイスボットからオペレーターへ通話を取り次ぐ場合に、それまでお客さまとボイスボットの間でしたやり取りの内容や相手方の電話番号を、オペレータに表示できます。

また、内線を経由して取り次げるようになり、オペレーターへの転送にかかる通信費を削減することもできます。

CTI連携ができる代表的なボイスボット

【事例】AIの要約と問い合わせの自動分類で、全国60拠点の電話対応を最適化

コールセンターへのAI導入とCTI連携がどのような成果をもたらすのか、具体的な企業事例を紹介します。

パナソニックグループで住宅設備機器の開発・製造・販売を担うパナソニック ハウジングソリューションズ株式会社さまでは、クラウド型CTI「BIZTEL」とCRMシステム(FastHelp5)を連携し、音声認識AIと生成AIを活用した先進的なコールセンターDXを実現しています。

1. 導入前の課題

  • 手動入力による工数とデータの偏り:通話後の応対履歴を担当者が手動で入力していたため、工数がかかり入力率が上がらなかった。また、人によって入力内容に偏りがあり、正確な業務分析が困難だった。

  • 拠点ごとの電話応対による非効率:全国の各拠点が個別に顧客対応を行っていたため、営業担当者に問い合わせが集中したり、突発的な人員変動へのエリア間相互フォローが難しかった。

2. AI・CTI導入による解決策(取り組み)

  • 「音声認識」と「生成AI」の連携:通話内容をAIで自動的に文字起こし(音声認識)し、そのテキストを生成AIによって自動で要約・分析する仕組みを構築した。

  • 一次受け拠点の新設と集約:電話を一次受けする「ビジネスコンタクトセンター」を新設。BIZTELのクラウド機能を活かし、全国約60拠点・1日約3,200件の入電を集約して各拠点へ柔軟に内線転送できる体制を整えた。

3. もたらされた導入効果

  • 「均質なデータ収集」による業務改善の推進:AIが通話内容から自動で要約や分類(自動ラベル付け)を行うため、客観的かつ均質なデータ収集が可能になった。これにより、主観に頼らないデータに基づいた業務改善を推進できる環境が整った。

  • 後処理時間の短縮と人員の柔軟な配置:AIが要約や問い合わせ内容の自動分類を担うことで、オペレーターの通話後入力にかかる工数を大幅に削減。さらに、拠点間での柔軟な相互フォローが可能になり、全国の電話対応の最適化が実現した。

→事例の詳細を見る

まとめ:CTI×AI連携でコールセンターの未来を変える

コールセンターへのAI導入は、現場の深刻な人手不足を解消し、業務効率を劇的に向上させるための鍵です。

本記事でご紹介したように、音声認識AIによるリアルタイムな文字起こし、生成AIによる自動要約やVOC(顧客の声)の抽出、そしてボイスボットによる電話応対の自動化など、各テクノロジーには明確な強みがあります。

パナソニック ハウジングソリューションズ株式会社さまの事例が示す通り、AIによる「要約」や「問い合わせ内容の自動分類」といった一歩踏み込んだ活用は、オペレーターの負担(後処理時間)を劇的に減らすだけでなく、客観的なデータに基づく高度なマネジメント(組織の最適化)をもたらします。

そして、これらのAIの価値を最大化させるために欠かせないのが、柔軟な外部連携ができる「CTIシステム」の存在です。

自社のコールセンターが抱える課題(応対品質のバラつき、後処理業務の逼迫、あふれ呼の多さなど)に合わせて、まずは最適なAIの選定と、それを支えるCTIシステムの検討から始めてみてはいかがでしょうか。

 

※「CTI」についてもっと知る
→CTIとは?知っておきたい機能や種類、導入のポイントやシステム連携について徹底解説!
→クラウド型CTIシステムの選び方とは〜ポイントと主要5サービスの比較〜
→顧客からの信頼を獲得する!電話窓口を開設するメリット・方法・CTIなどおすすめサービス

]]>
/blog/2026/06/05/19146/feed/ 0
BIZTEL API使ってみた vol.17 コールアクション×生成AIでコールリーズンを自動分類!Salesforce連携で見える化と分析も可能に /blog/2025/11/07/17500/ /blog/2025/11/07/17500/#respond Fri, 07 Nov 2025 03:00:06 +0000 /?p=17500 「BIZTEL API使ってみた」シリーズでは、BIZTELがもっと便利に使えるようになる API連携機能を活用して、サービス担当者が様々な機能の実装にチャレンジします。 前回の記事はこちら やってみたいこと コールリー […]]]>

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

前回の記事はこちら


- biztel.jp

やってみたいこと

コールリーズンとは「お客さまが、なぜコールセンターに問い合わせしたのか」の理由のことです。このコールリーズンを分析することで「どういった内容の問い合わせが多いのか」などが把握でき、商品・サービスの改善につなげたり、センター運営ではFAQ改善、IVR・ACDルーティングの最適化に活かしたりすることができます。

メリットの多いコールリーズン分析ですが、こんなお悩みはありませんか?

  • オペレーターの負担: 通話後の登録作業に時間がかかり、業務効率が低下している
  • データのばらつき: オペレーターごとで判断基準が異なり、データに一貫性がない
  • 入力漏れやミス: 業務が多忙で、入力漏れや設定ミスが発生している
  • 「その他」の多発:どこに分類して良いか判断できず「その他」ばかりになっている

こうした課題を解決するため、今回はBIZTELの「API連携コールアクション」と「生成AI」を組み合わせ、コールリーズンの自動分類に挑戦します!

なお今回の挑戦では、コールリーズン分類に加え、vol.16のブログでご紹介した「カスハラの自動判定」や、問い合わせの解決状況の評価、通話内容の要約まで、まるっと自動化させる内容となっています。

コールリーズンの登録作業が大幅に削減され、顧客対応に集中できるようになることはもちろん、自動分類により一貫性の高いデータが蓄積されるため、顧客ニーズの正確な把握と業務改善への有効活用も可能になります。

コールセンター業務のさらなるDXに向けて、ぜひ一緒にチャレンジしてみましょう!

チャレンジャー

使用するツール

BIZTELの利用ライセンス

・コールセンタープランのご契約
※今回紹介するシステム連携を行うためには、BIZTELのバージョンが3.12.10以上である必要があります。

BIZTELで必要なオプション

・API連携コールアクション
・音声認識連携(AmiVoice API)
※詳細はこちらの「1.音声認識連携(AmiVoice API)」をご覧ください。

BIZTEL以外に必要なもの

・Salesforce
・OpenAI API
※OpenAI APIの使用には、従量制の料金が適用されます。
料金に関する詳細は、OpenAIのWebサイトをご覧ください。
・AmiVoice API
※AmiVoice APIの使用には、従量制の料金が適用されます。
料金に関する詳細は、AmiVoice APIのWebサイトをご覧ください。

動作の全体像


※今回の記事では「インターネット銀行のコールセンター」を例として、通話テキストの内容から、
あらかじめ定義したコールリーズンに自動で分類する仕組みを構築します。

コールリーズンのサンプル(例:インターネット銀行のコールセンター)

▼コールリーズン自動判定結果

設定の流れ

OpenAI 事前準備

OpenAI APIを利用して、お客さまとの会話の要約やコールリーズンの自動分類などを行うため、APIキーの発行します。

Salesforce 事前準備

SalesforceのAPIを利用して通話内容を記録するため、OAuth認証接続アプリケーションの作成やToDoオブジェクトの項目設定、ページレイアウト変更を行います。

BIZTEL 事前設定

お客さまとの会話をテキスト化するため、音声認識連携の設定を行います。さらに、会話の要約・コールリーズン分類・解決状況判定・カスハラ判定を行い、Salesforceに記録するため「コールアクションテンプレート機能」を利用してコールアクションを設定します。

設定の実践

OpenAI 事前準備

OpenAIのAPIキーを発行
OpenAIのアカウント作成および、OpenAI APIキー発行が必要となります。発行手順はこちらの「設定の実践 OpenAI 事前準備」をご参照ください。

Salesforce 事前準備

1.  OAuth認証の接続アプリケーションを作成
こちらの「設定の実践 1.Salesforce 設定準備」を参照しながら、SalesforceのOAuth認証のアプリケーション作成と鍵情報の確認を行います。

2. 活動オブジェクトにカスタム項目を新規作成
抽出した情報を格納する項目が必要なので、以下に従って作成してください。作成方法については、こちらの「2.3 カスタム項目の作成」を参考に作成してください。

◼︎通話録音再生

◼︎通話終了時の解決状況

◼︎コールリーズン大分類

◼︎コールリーズン中分類

◼︎コールリーズン小分類

◼︎カスハラ/クレーム判定

3. ToDoオブジェクトのページレイアウトを変更
以下が連携に必要な項目なので、任意のレイアウトを定義してください。

(ページレイアウトの設定例)

BIZTELの設定

1. 音声認識連携
お客さまの音声をテキスト化するための設定を行います。設定方法については、こちらの「2. 音声認識連携の設定方法」をご参照ください。
※別途、アドバンスト・メディア社の「AmiVoice API」 のご契約が必要です。

2. OAuthアカウント設定
BIZTELとSalesforceを連携するためのOAuth設定を行います。こちらの「設定の実践 2.BIZTELでのOAuth設定」をご参照ください。

3. コールアクション連携
通話内容の要約結果やコールリーズン分類の結果を、Salesforceに記録するコールアクションの設定を「コールアクションテンプレート機能」を利用して行います。

(OpenAIに依頼するプロンプト概要)

<コールアクション連携 手順の概要>
Ⅰ テキストエディタを利用して、コールアクションテンプレートを作成
Ⅱ BIZTEL管理画面から、コールアクションテンプレートをインポート
Ⅲ BIZTEL管理画面から、コールアクション連携を編集
  OAuthアカウント設定 :4件編集
  紐づけ先が特定できない時のレコードID:1件編集
  OpenAI APIキー:1件編集
  ※合計6件修正することで設定が完了します。
Ⅳ お客さまの業務に応じて、OpenAI APIへの指示を調整
Ⅴ 連携対象とする電話番号を選択
Ⅵ コールアクションの設定を有効化

<コールアクション連携 手順の詳細>

Ⅰ コールアクションテンプレートを作成
以下のテキストをすべてコピーして、テキストエディタにペーストして保存してください。

注意事項
●ファイルはJSON形式であるため、ファイルの拡張子は「.json」にしてください。
●文字コードはUTF8で保存してください。

{
  "version_name": "unknown",
  "version_hash": "df34bc1",
  "server_id": "f6c873a3ee5ea9a9c8891aa8596083c8b9943e21ecf8b43f9590461017c9040e",
  "name": "コールリーズン自動判定対応",
  "memo": "gpt-4.1-mini対応版",
  "api_nodes": [
    {
      "api_event_type": 100,
      "api_link_type": 2,
      "error_response_status_code_pattern": null,
      "execution_order": 1,
      "max_retry_count": 3,
      "oauth_account_id": null,
      "precondition_pattern": null,
      "precondition_target_text": null,
      "request_body": null,
      "request_header": null,
      "request_method": "GET",
      "request_url": "{OAUTH_INSTANCE_URL}/services/data/v45.0/parameterizedSearch/?q={TEL}&sobject=Account&sobject=Contact&sobject=Lead",
      "response_variable_pattern": "/\"attributes\":\\{\"type\":\"(?P<TYPE>[a-zA-Z]*)\".*?\"Id\":\"(?P<NOID>[a-zA-Z0-9]*)\"/",
      "result_entry_information_label": null,
      "result_entry_information_text": null,
      "result_entry_prompt_text": null,
      "result_entry_sms_template_id": null,
      "result_entry_summary_text": null,
      "result_entry_tag_code": null,
      "result_entry_tag_id": null,
      "result_entry_tag_pattern": null,
      "result_entry_type": null,
      "retry_interval_milli_sec": 3000,
      "timeout_num": 10,
      "memo": null
    },
    {
      "api_event_type": 5000,
      "api_link_type": 1,
      "error_response_status_code_pattern": null,
      "execution_order": 1,
      "max_retry_count": 3,
      "oauth_account_id": null,
      "precondition_pattern": null,
      "precondition_target_text": null,
      "request_body": "{\r\n  \"model\": \"gpt-4.1-mini\",\r\n  \"messages\": [\r\n        {\r\n      \"role\": \"system\",\r\n       \"content\": \"**【通話テキスト分析タスク】**\\n以下の手順で、通話テキストのコールリーズン分類とカスハラ判定と解決状況判定を行ってください。\\n**## PART1: コールリーズン分類**\\n**STEP1-3: 段階的分類**\\n1. 大分類を特定\\n2. 該当する中分類を特定\\n3. 該当する小分類を特定\\n判断基準:\\n- 複数の分類にまたがる場合は、顧客の最終的な目的・ゴールを重視\\n- 会話の大部分を占める内容で判断\\n- 1つの分類のみを選択\\n- どの分類にも該当しない場合は「なし」と出力\\n**【分類体系】(要修正:業務にあわせて修正)**\\n[大分類1] 検討・情報収集[大分類2] 申し込み[大分類3] 操作方法[大分類4] 解約[中分類1-1] 条件[中分類2-1] 口座開設[中分類3-1] ログイン[中分類4-1] 解約手続き[小分類1-1-1] 利用者の年齢[小分類2-1-1] Webでの手続き[小分類3-1-1] ログイン操作[小分類4-1-1] Webでの手続き[小分類1-1-2] 店舗・口座[小分類2-1-2] 来店での手続き・持ち物[小分類3-1-2] IDが分からない[小分類4-1-2] 来店での手続き・持ち物[小分類2-1-3] 本人確認書類[小分類3-1-3] パスワードが分からない[小分類4-1-3] 郵送での手続き[中分類1-2] サービス内容[小分類3-1-4] パスワードのリセット方法[小分類1-2-1] 定期預金[中分類2-2] インターネットバンキング申し込み[小分類1-2-2] 投資信託[小分類2-2-1] Webでの手続き[中分類3-2] 定期預金[小分類1-2-3] 普通預金・振込[小分類2-2-2] 来店での手続き・持ち物[小分類3-2-1] 預金の操作方法[小分類1-2-4] 住宅ローン[小分類2-2-3] 郵送での手続き[小分類3-2-2] 中途解約の操作[小分類2-2-4] 本人確認書類[小分類3-2-3] 満期手続きの操作[小分類2-2-5] 印鑑が分からない・見つからない[小分類3-2-4] 契約内容の確認[小分類2-2-6] 通帳が分からない・見つからない[小分類3-2-5] 金利[中分類2-3] 会員証・暗証番号の発送[中分類3-3] 投資信託[小分類2-3-1] 発送方法[小分類3-3-1] 購入の操作方法[小分類2-3-2] 発送時期[小分類3-3-2] 解約の操作[小分類2-3-3] 発送状況の確認[小分類3-3-3] 償還の操作[小分類3-3-4] 契約内容の確認[小分類3-3-5] ファンドの質問(転送含む)[中分類3-4] 普通預金・振り込み[小分類3-4-1] 入出金明細の操作[小分類3-4-2] 振り込みの操作[小分類3-4-3] 振り込みの手数料[小分類3-4-4] 振り込み用の暗証番号[中分類3-5] 住宅ローン[小分類3-5-1] 残高照会[小分類3-5-2] 一部繰上返済[小分類3-5-3] 金利コース変更[小分類3-5-4] 相談(転送)[中分類3-6] 会員証・暗証番号の喪失[小分類3-6-1] 利用停止・再発行受付[小分類3-6-2] 再発行状況の確認\\n**## PART2: カスハラ・クレーム判定**\\n**## 【最優先判定ルール】**\\n1. 会話全体から[A][B]に該当する発言を探す\\n2. 該当発言があれば必ず「カスハラ」と判定\\n3. 該当発言がない場合のみ、クレームまたは通常会話と判定\\n**## [A] カスハラの定義(必要に応じてカスタマイズ)**\\n① 従業員に苦痛を与える迷惑行為\\n② 人格・尊厳を侵害し安全を損なう行為\\n**## [B] カスハラのタイプ(業界特性に応じて調整可能だが注意必要!)**\\n1. 精神的攻撃型:暴言・脅迫・人格否定\\n2. 過剰要求型:制度外の要求\\n3. 差別型:差別的発言\\n4. 身体的攻撃型:物理的危害の示唆\\n**## カスハラの明確な事例(必要に応じてカスタマイズ)**\\n### 精神的攻撃型\\n* 「あなたはバカなの?」\\n* 「無能だね」\\n* 「あなたの名前と顔を覚えておくからね」\\n* 「あなた個人に責任を取らせる」\\n### 過剰要求型\\n* 「24時間以内に対応しないと訴える」\\n* 「規約は関係ない、今すぐ特別対応しろ」\\n### 差別型\\n* 「男性スタッフに代われ」\\n* 「若い人より年配の人に代わってほしい」\\n### 身体的攻撃型\\n* 「殴るぞ」\\n* 「あなたの住所を調べるからな」\\n* 「SNSに顔写真を晒すぞ」\\n## [C] クレームの判定基準(業界特性に応じて調整可能)\\nクレームとは、製品・サービスへの不満や改善要望で、感情的表現を含むことがあっても社会通念内であり、業務内容に対する批判や問題指摘を含むものです。\\nクレームと判定する基準:\\n- 製品・サービスの具体的な問題点への言及\\n- 改善や対応を求める明確な意思表示\\n- 具体的な商品不良、不具合の指摘\\n- 交換、返品、修理などの改善要求\\n- サービスの品質に対する明確な不満表明\\n※単なる一般的な問い合わせや軽微な質問は「通常会話」とするが、実質的な不満や改善要求がある場合はクレームとして扱う\\n**## [D] 分析タスク**\\n1. 会話を判定:\\n- タイプ[B]のいずれか\\n- クレーム\\n- なし\\n2. 判定に応じて記載:\\n- カスハラ:[E]の優先順位に基づき、最も深刻な単一のタイプのみ選択\\n * 該当タイプ、発言引用、理由\\n- クレーム:発言引用、内容\\n- 通常会話:「なし」\\n3. 複数のカスハラタイプに該当する場合の判定方法:\\n- [E]の優先順位に従い、最上位の単一タイプのみを選択\\n- 例:身体的攻撃型と精神的攻撃型に該当する場合、「身体的攻撃型」のみ記載\\n**## [E] 優先順位(必要に応じて順序を調整可能)**\\n身体的攻撃型 > 精神的攻撃型 > 差別型 >
過剰要求型\\n**## PART3: 解決状況判定(必要に応じてカスタマイズ)**\\n【解決状況の判定基準】\\n通話終了時点での顧客の問題解決レベルを以下の4段階で判定してください:\\n重要:顧客が具体的な問題や困りごとを抱えている場合は「解決不要」ではありません。必ず問題解決の観点で判定してください。\\n1. 完全解決\\n- 顧客の全ての要求・問題が解決された\\n- 顧客が満足して通話を終了している\\n- 追加の対応や連絡が不要な状態\\n- 判定キーワード例:「ありがとうございました」「助かりました」「よく分かりました」「解決しました」\\n2. 一部解決\\n- 主要な問題は解決したが、軽微な課題や追加の疑問が残る\\n- 顧客は基本的に満足しているが、小さな不明点がある\\n- 判定キーワード例:「これについては分かりましたが」「もう一つ確認したいことが」「基本的には理解できました」\\n3. 未解決\\n- 顧客の主要な問題が解決されていない\\n- 具体的な解決策や対応方法が提示されていない\\n- 問題を抱えたまま通話が終了している\\n- 判定キーワード例:「まだよく分からない」「解決していない」「また連絡します」「どうすればいいですか」\\n- ※顧客が困りごとを相談したが解決策が提示されない場合も「未解決」\\n4. 解決不要\\n- そもそも解決すべき問題や困りごとがない\\n- 単純な情報確認や現状照会のみの通話\\n- 顧客に困りごとがなく、確認事項に対して適切に回答済み\\n- 判定キーワード例:「確認できました」「情報をいただきありがとうございます」「現在の状況が分かりました」\\n- ※重要:顧客が「〜が分からない」「〜できない」等の問題を抱えている場合は「解決不要」ではない\\n**## 出力フォーマット(必要に応じて調整可能だが注意必要!)**\\n【解決状況】:完全解決/一部解決/未解決/解決不要\\n【解決状況の根拠】:[判定理由と該当する顧客発言を簡潔に説明]\\n大分類: [番号] - [選択した大分類]\\n中分類: [番号] - [選択した中分類]\\n小分類: [番号] - [選択した小分類]\\n理由: [判断根拠を簡潔に説明]\\n【カスハラ判定結果】:[精神的攻撃型/過剰要求型/差別型/身体的攻撃型/クレーム/なし]\\n【該当発言】:[カスハラまたはクレームの場合は発言引用、なしの場合は「なし」]\\n【要約結果】:\\n・~~~~\\n・~~~~\\n・~~~~\\n**## 重要な出力ルール(必要に応じてカスタマイズ)**\\n- 要約結果は500文字以内で記載する\\n- 【カスハラ判定結果】にはタイプ名のみを記載(「カスハラ・」は付けない)\\n- カスハラの場合は「精神的攻撃型」「過剰要求型」「差別型」「身体的攻撃型」のいずれか1つのみ\\n- 【カスハラ判定結果】の直後に【該当発言】を記載\\n- 【該当発言】と【要約結果】の間に余計な説明や空行を入れない\\n- クレームの場合、【該当発言】には発言引用のみを記載し、理由説明は含めない\\n- カスハラの場合、【該当発言】には「発言引用:\\\"~\\\" 理由:~ 重度レベル:○○」の形式で記載\"\r\n    },\r\n    {\r\n      \"role\": \"user\",\r\n      \"content\": \"{VOICE_LOG.JSON_ESCAPE()}\"\r\n    }\r\n  ],\r\n  \"max_tokens\": 700,\r\n  \"temperature\": 0.7\r\n}",
      "request_header": "Authorization:Bearer XXXXXXXX\r\nContent-Type:application/json",
      "request_method": "POST",
      "request_url": "https://api.openai.com/v1/chat/completions",
      "response_variable_pattern": "/【解決状況】:\\s*(?P<RESOLUTION_STATUS>[^\\n]+)\\s*【解決状況の根拠】:\\s*(?P<RESOLUTION_REASON>[\\s\\S]*?)大分類:\\s*(?P<DAI_FULL>[^\\n]+)\\s*中分類:\\s*(?P<CHU_FULL>[^\\n]+)\\s*小分類:\\s*(?P<SHO_FULL>[^\\n]+)\\s*理由:\\s*(?P<CATEGORY_REASON>[\\s\\S]*?)【カスハラ判定結果】:\\s*(?P<HARASSMENT>[^\\n]+)\\s*【該当発言】:\\s*(?P<HARASSMENT_DETAIL>[\\s\\S]*?)【要約結果】:\\s*(?P<SUMMARY>[\\s\\S]*?)(?=,\"refusal\":null,\"annotations\":\\[\\]}|\")/",
      "result_entry_information_label": null,
      "result_entry_information_text": null,
      "result_entry_prompt_text": null,
      "result_entry_sms_template_id": null,
      "result_entry_summary_text": null,
      "result_entry_tag_code": null,
      "result_entry_tag_id": null,
      "result_entry_tag_pattern": null,
      "result_entry_type": null,
      "retry_interval_milli_sec": 3000,
      "timeout_num": 60,
      "memo": null
    },
    {
      "api_event_type": 5000,
      "api_link_type": 2,
      "error_response_status_code_pattern": null,
      "execution_order": 2,
      "max_retry_count": 3,
      "oauth_account_id": null,
      "precondition_pattern": "/Contact|Lead/",
      "precondition_target_text": "{RESPONSE_TYPE}",
      "request_body": "{\r\n  \"WhoId\": \"{RESPONSE_NOID}\",\r\n  \"Subject\": \"{STARTTIME}に通話(着信)\",\r\n  \"Description\": \"{VOICE_LOG.JSON_ESCAPE()}\\r\\n------------\\r\\n【解決状況】:{RESPONSE_RESOLUTION_STATUS}\\r\\n【解決状況の根拠】:{RESPONSE_RESOLUTION_REASON}\\r\\n------------\\r\\n【コールリーズン大分類】:{RESPONSE_DAI_FULL}\\r\\n【コールリーズン中分類】:{RESPONSE_CHU_FULL}\\r\\n【コールリーズン小分類】:{RESPONSE_SHO_FULL}\\r\\n【分類理由】:{RESPONSE_CATEGORY_REASON}\\r\\n------------\\r\\n【カスハラ判定結果】:{RESPONSE_HARASSMENT}\\r\\n【該当発言・理由】:{RESPONSE_HARASSMENT_DETAIL}\\r\\n------------\\r\\n【要約結果】:{RESPONSE_SUMMARY}\",\r\n  \"CallDisposition\": \"■発信電話番号:{TEL}■着信電話番号:{CALLED}■着信アカウント名:{AGENT_NAME}\\\\r\\\\n■着信内線番号:{AGENT_EXTEN_NO}■通話開始時間:{START_TIME}\\\\r\\\\n■通話終了時間:{END_TIME}\\\\r\\\\n■通話時間:{CALL_SEC}\",\r\n  \"Resolution_Level__c\": \"{RESPONSE_RESOLUTION_STATUS}\",\r\n  \"Call_Reason_Large__c\": \"{RESPONSE_DAI_FULL}\",\r\n  \"Call_Reason_Medium__c\": \"{RESPONSE_CHU_FULL}\",\r\n  \"Call_Reason_Small__c\": \"{RESPONSE_SHO_FULL}\",\r\n  \"Conversation_Category__c\": \"{RESPONSE_HARASSMENT}\",\r\n  \"WavUrl__c\": \"https://{HOST}:8000/monitor_link/{ID}\"\r\n}",
      "request_header": "Content-Type: application/json",
      "request_method": "POST",
      "request_url": "{OAUTH_INSTANCE_URL}/services/data/v45.0/sobjects/Task/",
      "response_variable_pattern": null,
      "result_entry_information_label": null,
      "result_entry_information_text": null,
      "result_entry_prompt_text": null,
      "result_entry_sms_template_id": null,
      "result_entry_summary_text": null,
      "result_entry_tag_code": null,
      "result_entry_tag_id": null,
      "result_entry_tag_pattern": null,
      "result_entry_type": null,
      "retry_interval_milli_sec": 3000,
      "timeout_num": 10,
      "memo": null
    },
    {
      "api_event_type": 5000,
      "api_link_type": 2,
      "error_response_status_code_pattern": null,
      "execution_order": 3,
      "max_retry_count": 3,
      "oauth_account_id": null,
      "precondition_pattern": "/Account/",
      "precondition_target_text": "{RESPONSE_TYPE}",
      "request_body": "{\r\n\t\"WhatId\": \"{RESPONSE_NOID}\",\r\n\t\"Subject\": \"{STARTTIME}に通話(着信)\",\r\n\t\"Description\": \"{VOICE_LOG.JSON_ESCAPE()}\\r\\n------------\\r\\n【解決状況】:{RESPONSE_RESOLUTION_STATUS}\\r\\n【解決状況の根拠】:{RESPONSE_RESOLUTION_REASON}\\r\\n------------\\r\\n【コールリーズン大分類】:{RESPONSE_DAI_FULL}\\r\\n【コールリーズン中分類】:{RESPONSE_CHU_FULL}\\r\\n【コールリーズン小分類】:{RESPONSE_SHO_FULL}\\r\\n【分類理由】:{RESPONSE_CATEGORY_REASON}\\r\\n------------\\r\\n【カスハラ判定結果】:{RESPONSE_HARASSMENT}\\r\\n【該当発言・理由】:{RESPONSE_HARASSMENT_DETAIL}\\r\\n------------\\r\\n【要約結果】:{RESPONSE_SUMMARY}\",\r\n\t\"CallDisposition\": \"■発信電話番号:{TEL}■着信電話番号:{CALLED}■着信アカウント名:{AGENT_NAME}\\\\r\\\\n■着信内線番号:{AGENT_EXTEN_NO}■通話開始時間:{START_TIME}\\\\r\\\\n■通話終了時間:{END_TIME}\\\\r\\\\n■通話時間:{CALL_SEC}\",\r\n\t\"Resolution_Level__c\": \"{RESPONSE_RESOLUTION_STATUS}\",\r\n\t\"Call_Reason_Large__c\": \"{RESPONSE_DAI_FULL}\",\r\n\t\"Call_Reason_Medium__c\": \"{RESPONSE_CHU_FULL}\",\r\n\t\"Call_Reason_Small__c\": \"{RESPONSE_SHO_FULL}\",\r\n\t\"Conversation_Category__c\": \"{RESPONSE_HARASSMENT}\",\r\n\t\"WavUrl__c\": \"https://{HOST}:8000/monitor_link/{ID}\"\r\n}",
      "request_header": "Content-Type: application/json",
      "request_method": "POST",
      "request_url": "{OAUTH_INSTANCE_URL}/services/data/v45.0/sobjects/Task/",
      "response_variable_pattern": null,
      "result_entry_information_label": null,
      "result_entry_information_text": null,
      "result_entry_prompt_text": null,
      "result_entry_sms_template_id": null,
      "result_entry_summary_text": null,
      "result_entry_tag_code": null,
      "result_entry_tag_id": null,
      "result_entry_tag_pattern": null,
      "result_entry_type": null,
      "retry_interval_milli_sec": 3000,
      "timeout_num": 10,
      "memo": null
    },
    {
      "api_event_type": 5000,
      "api_link_type": 2,
      "error_response_status_code_pattern": null,
      "execution_order": 4,
      "max_retry_count": 3,
      "oauth_account_id": null,
      "precondition_pattern": "/^(?!.*(Contact|Lead|Account)).*$/",
      "precondition_target_text": "{RESPONSE_TYPE}",
      "request_body": "{\r\n\t\"WhoId\": \"XXXXXXXX\",\r\n\t\"Subject\": \"{STARTTIME}に通話(着信)\",\r\n\t\"Description\": \"{VOICE_LOG.JSON_ESCAPE()}\\r\\n------------\\r\\n【解決状況】:{RESPONSE_RESOLUTION_STATUS}\\r\\n【解決状況の根拠】:{RESPONSE_RESOLUTION_REASON}\\r\\n------------\\r\\n【コールリーズン大分類】:{RESPONSE_DAI_FULL}\\r\\n【コールリーズン中分類】:{RESPONSE_CHU_FULL}\\r\\n【コールリーズン小分類】:{RESPONSE_SHO_FULL}\\r\\n【分類理由】:{RESPONSE_CATEGORY_REASON}\\r\\n------------\\r\\n【カスハラ判定結果】:{RESPONSE_HARASSMENT}\\r\\n【該当発言・理由】:{RESPONSE_HARASSMENT_DETAIL}\\r\\n------------\\r\\n【要約結果】:{RESPONSE_SUMMARY}\",\r\n\t\"CallDisposition\": \"■発信電話番号:{TEL}■着信電話番号:{CALLED}■着信アカウント名:{AGENT_NAME}\\\\r\\\\n■着信内線番号:{AGENT_EXTEN_NO}■通話開始時間:{START_TIME}\\\\r\\\\n■通話終了時間:{END_TIME}\\\\r\\\\n■通話時間:{CALL_SEC}\",\r\n\t\"Resolution_Level__c\": \"{RESPONSE_RESOLUTION_STATUS}\",\r\n\t\"Call_Reason_Large__c\": \"{RESPONSE_DAI_FULL}\",\r\n\t\"Call_Reason_Medium__c\": \"{RESPONSE_CHU_FULL}\",\r\n\t\"Call_Reason_Small__c\": \"{RESPONSE_SHO_FULL}\",\r\n\t\"Conversation_Category__c\": \"{RESPONSE_HARASSMENT}\",\r\n\t\"WavUrl__c\": \"https://{HOST}:8000/monitor_link/{ID}\"\r\n}",
      "request_header": "Content-Type: application/json",
      "request_method": "POST",
      "request_url": "{OAUTH_INSTANCE_URL}/services/data/v45.0/sobjects/Task/",
      "response_variable_pattern": null,
      "result_entry_information_label": null,
      "result_entry_information_text": null,
      "result_entry_prompt_text": null,
      "result_entry_sms_template_id": null,
      "result_entry_summary_text": null,
      "result_entry_tag_code": null,
      "result_entry_tag_id": null,
      "result_entry_tag_pattern": null,
      "result_entry_type": null,
      "retry_interval_milli_sec": 3000,
      "timeout_num": 10,
      "memo": null
    }
  ]
}
 

Ⅱ コールアクションテンプレートをインポート
BIZTEL管理画面より「連携オプション>コールアクション連携」をクリックして、画面右上の「インポート」をクリックします。詳細はこちらの「6.2 コールアクションのインポート」をご参照ください。

Ⅲ コールアクション連携を編集
作成されたコールアクション連携の「API連携」タブをクリックしてください。各設定情報を編集していきます。

【必須で修正する箇所(合計6件)】
・!マークが出ている設定は、OAuthアカウントが未設定のため、「BIZTELの設定 2. OAuthアカウント設定」で登録したSalesforce用のOAuthアカウントを選択します(計4件)。

・以下のイベントURL内「XXXXXXXX」で表示されている箇所は、適切な値に書き換えます(計2件)。
<録音完了/音声認識連携完了>実行順1:OpenAI APIキー
<録音完了/音声認識連携完了>実行順4:紐づけ先が特定できない時のレコードID

(録音完了/音声認識連携完了イベント 実行順1:OpenAI APIキー設定例)

(録音完了/音声認識連携完了イベント 実行順4:レコードID設定例)
下の画像の赤線部分には、発信番号から履歴を紐づけるレコードが特定できなかった場合にデータの受け渡し先となる、リードのレコードIDを記載します。

※レコードIDの確認方法(以下の赤線部分がレコードIDです)

Ⅳ お客さまの業務に応じて、OpenAI APIへの指示を調整
<録音完了/音声認識連携完了>実行順1にて、OpenAI APIへ要約や各種判定の指示をしているので、業務にあわせて修正してください。
なお、本プロンプトのコールリーズン事例・カスハラ事例・判断基準などはあくまでも参考情報としてご活用ください。

▼OpenAI APIへの指示内容(APIリクエストボディのcontentを整形して表示したもの)

【通話テキスト分析タスク】
以下の手順で、通話テキストのコールリーズン分類とカスハラ判定と解決状況判定を行ってください。

## PART1: コールリーズン分類

STEP1-3: 段階的分類

  1. 大分類を特定
  2. 該当する中分類を特定
  3. 該当する小分類を特定

判断基準:
- 複数の分類にまたがる場合は、顧客の最終的な目的・ゴールを重視
- 会話の大部分を占める内容で判断
- 1つの分類のみを選択
- どの分類にも該当しない場合は「なし」と出力

【分類体系】(要修正:業務にあわせて修正)

[大分類1] 検討・情報収集[大分類2] 申し込み[大分類3] 操作方法[大分類4] 解約[中分類1-1] 条件[中分類2-1] 口座開設[中分類3-1] ログイン[中分類4-1] 解約手続き[小分類1-1-1] 利用者の年齢[小分類2-1-1] Webでの手続き[小分類3-1-1] ログイン操作[小分類4-1-1] Webでの手続き[小分類1-1-2] 店舗・口座[小分類2-1-2] 来店での手続き・持ち物[小分類3-1-2] IDが分からない[小分類4-1-2] 来店での手続き・持ち物[小分類2-1-3] 本人確認書類[小分類3-1-3] パスワードが分からない[小分類4-1-3] 郵送での手続き[中分類1-2] サービス内容[小分類3-1-4] パスワードのリセット方法[小分類1-2-1] 定期預金[中分類2-2] インターネットバンキング申し込み[小分類1-2-2] 投資信託[小分類2-2-1] Webでの手続き[中分類3-2] 定期預金[小分類1-2-3] 普通預金・振込[小分類2-2-2] 来店での手続き・持ち物[小分類3-2-1] 預金の操作方法[小分類1-2-4] 住宅ローン[小分類2-2-3] 郵送での手続き[小分類3-2-2] 中途解約の操作[小分類2-2-4] 本人確認書類[小分類3-2-3] 満期手続きの操作[小分類2-2-5] 印鑑が分からない・見つからない[小分類3-2-4] 契約内容の確認[小分類2-2-6] 通帳が分からない・見つからない[小分類3-2-5] 金利[中分類2-3] 会員証・暗証番号の発送[中分類3-3] 投資信託[小分類2-3-1] 発送方法[小分類3-3-1] 購入の操作方法[小分類2-3-2] 発送時期[小分類3-3-2] 解約の操作[小分類2-3-3] 発送状況の確認[小分類3-3-3] 償還の操作[小分類3-3-4] 契約内容の確認[小分類3-3-5] ファンドの質問(転送含む)[中分類3-4] 普通預金・振り込み[小分類3-4-1] 入出金明細の操作[小分類3-4-2] 振り込みの操作[小分類3-4-3] 振り込みの手数料[小分類3-4-4] 振り込み用の暗証番号[中分類3-5] 住宅ローン[小分類3-5-1] 残高照会[小分類3-5-2] 一部繰上返済[小分類3-5-3] 金利コース変更[小分類3-5-4] 相談(転送)[中分類3-6] 会員証・暗証番号の喪失[小分類3-6-1] 利用停止・再発行受付[小分類3-6-2] 再発行状況の確認

## PART2: カスハラ・クレーム判定

## 【最優先判定ルール】

  1. 会話全体から[A][B]に該当する発言を探す
  2. 該当発言があれば必ず「カスハラ」と判定
  3. 該当発言がない場合のみ、クレームまたは通常会話と判定

## [A] カスハラの定義(必要に応じてカスタマイズ)

① 従業員に苦痛を与える迷惑行為
② 人格・尊厳を侵害し安全を損なう行為

## [B] カスハラのタイプ ※業界特性に応じて調整可能ですが、この指示内容(白枠内部分)の下に記載の「注意」が必要!

  1. 精神的攻撃型:暴言・脅迫・人格否定
  2. 過剰要求型:制度外の要求
  3. 差別型:差別的発言
  4. 身体的攻撃型:物理的危害の示唆

## カスハラの明確な事例(必要に応じてカスタマイズ)

### 精神的攻撃型

* 「あなたはバカなの?」
* 「無能だね」
* 「あなたの名前と顔を覚えておくからね」
* 「あなた個人に責任を取らせる」

### 過剰要求型

* 「24時間以内に対応しないと訴える」
* 「規約は関係ない、今すぐ特別対応しろ」

### 差別型

* 「男性スタッフに代われ」
* 「若い人より年配の人に代わってほしい」

### 身体的攻撃型

* 「殴るぞ」
* 「あなたの住所を調べるからな」
* 「SNSに顔写真を晒すぞ」

## [C] クレームの判定基準(業界特性に応じて調整可能)

クレームとは、製品・サービスへの不満や改善要望で、感情的表現を含むことがあっても社会通念内であり、業務内容に対する批判や問題指摘を含むものです。

クレームと判定する基準:
- 製品・サービスの具体的な問題点への言及
- 改善や対応を求める明確な意思表示
- 具体的な商品不良、不具合の指摘
- 交換、返品、修理などの改善要求
- サービスの品質に対する明確な不満表明

※単なる一般的な問い合わせや軽微な質問は「通常会話」とするが、実質的な不満や改善要求がある場合はクレームとして扱う

## [D] 分析タスク

  1. 会話を判定:

- タイプ[B]のいずれか
- クレーム
- なし

  1. 判定に応じて記載:

- カスハラ:[E]の優先順位に基づき、最も深刻な単一のタイプのみ選択
 * 該当タイプ、発言引用、理由
- クレーム:発言引用、内容
- 通常会話:「なし」

  1. 複数のカスハラタイプに該当する場合の判定方法:

- [E]の優先順位に従い、最上位の単一タイプのみを選択
- 例:身体的攻撃型と精神的攻撃型に該当する場合、「身体的攻撃型」のみ記載

## [E] 優先順位(必要に応じて順序を調整可能)

身体的攻撃型 > 精神的攻撃型 > 差別型 > 過剰要求型

## PART3: 解決状況判定(必要に応じてカスタマイズ)

【解決状況の判定基準】

通話終了時点での顧客の問題解決レベルを以下の4段階で判定してください:

重要:顧客が具体的な問題や困りごとを抱えている場合は「解決不要」ではありません。必ず問題解決の観点で判定してください。

  1. 完全解決

- 顧客の全ての要求・問題が解決された
- 顧客が満足して通話を終了している
- 追加の対応や連絡が不要な状態
- 判定キーワード例:「ありがとうございました」「助かりました」「よく分かりました」「解決しました」

  1. 一部解決

- 主要な問題は解決したが、軽微な課題や追加の疑問が残る
- 顧客は基本的に満足しているが、小さな不明点がある
- 判定キーワード例:「これについては分かりましたが」「もう一つ確認したいことが」「基本的には理解できました」

  1. 未解決

- 顧客の主要な問題が解決されていない
- 具体的な解決策や対応方法が提示されていない
- 問題を抱えたまま通話が終了している
- 判定キーワード例:「まだよく分からない」「解決していない」「また連絡します」「どうすればいいですか」
- ※顧客が困りごとを相談したが解決策が提示されない場合も「未解決」

  1. 解決不要

- そもそも解決すべき問題や困りごとがない
- 単純な情報確認や現状照会のみの通話
- 顧客に困りごとがなく、確認事項に対して適切に回答済み
- 判定キーワード例:「確認できました」「情報をいただきありがとうございます」「現在の状況が分かりました」
- ※重要:顧客が「〜が分からない」「〜できない」等の問題を抱えている場合は「解決不要」ではない

## 出力フォーマット ※必要に応じて調整可能ですが、この指示内容(白枠内部分)の下に記載の「注意」が必要!

【解決状況】:完全解決/一部解決/未解決/解決不要

【解決状況の根拠】:[判定理由と該当する顧客発言を簡潔に説明]

大分類: [番号] - [選択した大分類]
中分類: [番号] - [選択した中分類]
小分類: [番号] - [選択した小分類]

理由: [判断根拠を簡潔に説明]

【カスハラ判定結果】:[精神的攻撃型/過剰要求型/差別型/身体的攻撃型/クレーム/なし]
【該当発言】:[カスハラまたはクレームの場合は発言引用、なしの場合は「なし」]
【要約結果】:

・~~~~
・~~~~
・~~~~

## 重要な出力ルール(必要に応じてカスタマイズ)

- 要約結果は500文字以内で記載する
- 【カスハラ判定結果】にはタイプ名のみを記載(「カスハラ・」は付けない)
- カスハラの場合は「精神的攻撃型」「過剰要求型」「差別型」「身体的攻撃型」のいずれか1つのみ
- 【カスハラ判定結果】の直後に【該当発言】を記載
- 【該当発言】と【要約結果】の間に余計な説明や空行を入れない
- クレームの場合、【該当発言】には発言引用のみを記載し、理由説明は含めない
- カスハラの場合、【該当発言】には「発言引用:"~" 理由:~ 重度レベル:○○」の形式で記載


※プロンプト指示を変更する際の注意点※

  • コールリーズン分類の【分類体系】の内容を更新する場合
    • 上述の『Salesforce事前準備 2.活動オブジェクトにカスタム項目を新規作成』で作成した、「コールリーズン大分類」「コールリーズン中分類」「コールリーズン小分類」の設定値もあわせて変更してください。
  • [B]のカスハラタイプ内容を更新する場合
    • 上述の『Salesforce事前準備 2.活動オブジェクトにカスタム項目を新規作成』で作成した、「カスハラ/クレーム判定」の設定値もあわせて変更してください。
  • 出力フォーマットを更新する場合
    • 変数抽出パターンの正規表現も変更する必要がありますのでご注意ください。

上記のプロンプト指示をAPIのリクエストボディにそのまま貼り付けるとJSONエラーが発生します。APIで使用する場合は、改行や特殊文字はエスケープ処理が必要です。手動で処理するのは大変なので、生成AIにプロンプト指示の文字列を渡して「APIに情報を渡したいので、JSONエラーにならないようにエスケープ処理してください」というとエスケープ済みの文字列を表示してくれます。

Ⅴ 連携対象とする電話番号を選択
「連携対象」タブをクリックして、連携対象とする電話番号に✓を設定してください。

Ⅵ コールアクションの設定を有効化
「基本情報」タブをクリックして、ステータス項目を無効から有効に変更してください。

連携結果

Salesforceに通話内容を連携した結果、このようになりました。

振り返り・まとめ

今回の挑戦により、通話テキストと生成AIを最大限に活かし、適切なプロンプトを設計することで、高い精度でコールリーズンを自動分類できることがわかりました!

サンプルに基づき動作確認をした後は、ぜひ皆さまの現場の状況に合わせてプロンプトをカスタマイズし、さらに実用的なものに仕上げていただければと思います。また、Salesforceのダッシュボードやレポート機能から、コールリーズン・解決状況・カスハラ(またはクレーム)の発生有無といった情報を組み合わせて多角的に分析できるようになります。

例えば、今回のコールリーズンの分類体系であれば、

  • 未解決が多い問い合わせ
    (例:「ログイン操作」に関する問い合わせの解決率が低い など)
  • クレームが発生しやすい問い合わせ
    (例:「定期預金の相談」でクレームが発生しやすい など)

といったことが把握でき、効果的な対策を講じるための情報として活用できます。

本記事が、働きやすい職場づくりと顧客満足度の両立に役立ちますと、とても嬉しいです!

編集後記

今回は、「生成AI」とBIZTELの「API連携コールアクション」「音声認識連携」機能を活用して、通話内容からコールリーズンを自動分類するとともに、問い合わせの解決状況やカスハラ発生の有無について判定を行い、Salesforceへ連携する仕組みを実践しました。

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

簡単に実現できるよう、設定方法も交えながらお伝えしますので、読者のみなさまもぜひチャレンジしてみてください。
現在、BIZTELをご利用中のお客さまも、「こんなことがしたい」というご希望がございましたら、BIZTELサービス担当までご相談ください!

]]>
/blog/2025/11/07/17500/feed/ 0
BIZTEL API使ってみた vol.16 コールアクション×生成AIでカスハラを自動判定!Salesforceに結果を連携して分析を効率化 /blog/2025/05/28/16323/ /blog/2025/05/28/16323/#respond Wed, 28 May 2025 03:00:27 +0000 /?p=16323 「BIZTEL API使ってみた」シリーズでは、BIZTELがもっと便利に使えるようになる API連携機能を活用して、サービス担当者が様々な機能の実装にチャレンジします。 前回の記事はこちら やってみたいこと 東京都など […]]]>

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

前回の記事はこちら


- biztel.jp

やってみたいこと

東京都などが2025年4月1日に施行した「カスタマー・ハラスメント防止条例」が、全国初の試みとして注目を集めています。北海道や三重県桑名市でも同様の条例が施行され、他の自治体でも検討が進むなど、全国的な広がりを見せています。

カスタマー・ハラスメント(以下 カスハラ)は電話による顧客接点においても発生しており、対策を進めるコールセンターが増えてきました。

そこで今回は「生成AI(※1)」と、BIZTELの「API連携コールアクション」「音声認識連携」を活用し、テキスト化した通話内容からカスハラに該当するかを自動判定する仕組みに挑戦します。
具体的には、通話内容を「カスハラ」「クレーム」「通常会話」に分類(※2)し、その結果をSalesforceに自動で記録してみたいと思います。

※1 今回利用するモデルは、OpenAI APIの「GPT-4.1 mini」です。最大100万トークンの長文処理に対応でき、コスト効率と高精度を兼ね備えたAPI専用モデルです。テキスト化した通話の要約や「カスハラ」「クレーム」「通常会話」といった分類処理において、高い性能を発揮することが期待できます。

※2 本記事では、厚生労働省の定義を参考に、「社会通念を超えた迷惑行為で、精神的攻撃・過剰要求・差別・身体的攻撃のいずれかに該当するもの」をカスハラとし、「製品やサービスへの正当な不満であり、個人攻撃を含まないもの」をクレームとして判定します。

チャレンジャー

使用するツール

BIZTELの利用ライセンス

・コールセンタープランのご契約
※今回ご紹介するシステム間の連携を行うためには、BIZTELのバージョンが3.7.20以上である必要があります。

BIZTELで必要なオプション

・API連携コールアクション

・音声認識連携(AmiVoice API)
※詳細はこちらの「1.音声認識連携(AmiVoice API)」をご覧ください。

BIZTEL以外に必要なもの

・Salesforce

・OpenAI API
※OpenAI APIの使用には、従量制の料金が適用されます。
料金に関する詳細は、OpenAIのWebサイトをご覧ください。

・AmiVoice API
※AmiVoice APIの使用には、従量制の料金が適用されます。
料金に関する詳細は、AmiVoice APIのWebサイトをご覧ください。

動作の全体像

カスハラ自動判定の結果を、Salesforceに記載(GPT-4.1 miniモデルを使用)

設定の流れ

OpenAI 事前準備

OpenAI APIを利用してお客さまとの会話を要約し、さらにカスハラ判定を行うため、APIキーの発行します。

Salesforce 事前準備

SalesforceのAPIを利用して通話内容を記録するため、OAuth認証接続アプリケーションの作成とToDoオブジェクトの項目設定やページレイアウトの変更を行います。

BIZTEL 事前設定

お客さまとの会話をテキスト化するため、音声認識連携の設定を行います。
さらに、通話内容の要約、カスハラの判定結果などをSalesforceに記録するため、「コールアクションテンプレート機能」を利用してコールアクションを設定します。

設定の実践

OpenAI 事前準備

1.OpenAIのAPIキーを発行
お客さまにてOpenAIのアカウント作成および、OpenAI APIキー発行が必要となります。発行手順はこちらの記事の「設定の実践 OpenAI 事前準備」をご参照ください。

Salesforce 事前準備

1.OAuth認証の接続アプリケーションを作成
こちらの記事の「設定の実践 1.Salesforce 設定準備」を参照しながら、SalesforceのOAuth認証のアプリケーション作成と鍵情報の確認を行います。

2.活動オブジェクトにカスタム項目「会話分類」「通話録音再生」を新規作成
カスハラ種別を格納する項目が必要なため、以下に従って作成します。
作成方法については、こちらの「2.3 カスタム項目の作成」をご参照ください。

 ◾︎通話録音再生

 ◾︎会話分類

3.ToDoオブジェクトのページレイアウトを変更
以下が連携に必要な項目なので、任意のレイアウトを定義してください。

(ページレイアウトの設定例)

BIZTELの設定

1.音声認識連携
お客さまの音声をテキスト化するための設定を行います。設定方法については、こちらの「2. 音声認識連携の設定方法」をご参照ください。
※別途、アドバンスト・メディア社の「AmiVoice API」 のご契約が必要です。

2.OAuthアカウント設定
BIZTELとSalesforceを連携するためのOAuth設定を行います。こちらの記事の「設定の実践 2.BIZTELでのOAuth設定」をご参照ください。

3.コールアクション連携
通話内容の要約や、カスハラ判定の結果をSalesforceに記録するコールアクションの設定を「コールアクションテンプレート機能」を利用して行います。

OpenAIに依頼するプロンプト概要

<コールアクション連携 手順の概要>
Ⅰ  テキストエディタを利用して、コールアクションテンプレートを作成
Ⅱ  BIZTEL管理画面から、コールアクションテンプレートをインポート
Ⅲ  BIZTEL管理画面から、コールアクション連携を編集
  OAuthアカウント設定 :4件編集
  紐づけ先が特定できない時のレコードID:1件編集
  OpenAI APIキー:1件編集
  ※合計6件修正することで設定が完了します。
Ⅳ お客さまの業務に応じて、OpenAI APIへの指示を調整

<コールアクション連携 手順の詳細>
Ⅰ コールアクションテンプレートを作成
以下のテキストをすべてコピーして、テキストエディタにペーストして保存してください。

注意事項
●ファイルはJSON形式であるため、ファイルの拡張子は「.json」にしてください。
●文字コードはUTF8で保存してください。

{
  "version_name": "unknown",
  "version_hash": "962c54e",
  "name": "カスタマーハラスメント自動判定版",
  "memo": "gpt-4.1-mini対応版",
  "api_nodes": [
    {
      "api_event_type": 100,
      "api_link_type": 2,
      "error_response_status_code_pattern": null,
      "execution_order": 1,
      "max_retry_count": 3,
      "precondition_pattern": null,
      "precondition_target_text": null,
      "request_body": null,
      "request_header": null,
      "request_method": "GET",
      "request_url": "{OAUTH_INSTANCE_URL}/services/data/v45.0/parameterizedSearch/?q={TEL}&sobject=Account&sobject=Contact&sobject=Lead",
      "response_variable_pattern": "/\"attributes\":\\{\"type\":\"(?P<TYPE>[a-zA-Z]*)\".*?\"Id\":\"(?P<NOID>[a-zA-Z0-9]*)\"/",
      "result_entry_information_label": null,
      "result_entry_information_text": null,
      "result_entry_prompt_text": null,
      "result_entry_summary_text": null,
      "result_entry_type": null,
      "retry_interval_milli_sec": 3000,
      "timeout_num": 10,
      "memo": null
    },
    {
      "api_event_type": 5000,
      "api_link_type": 1,
      "error_response_status_code_pattern": null,
      "execution_order": 1,
      "max_retry_count": 3,
      "precondition_pattern": null,
      "precondition_target_text": null,
      "request_body": "{\r\n  \"model\": \"gpt-4.1-mini\",\r\n  \"messages\": [\r\n     {\r\n     \"role\": \"system\",\r\n     \"content\": \"# 通話内容をカスタマーハラスメント定義に基づき判定します。\\n## 【最優先判定ルール】\\n1. 会話全体から[A][B]に該当する発言を探す\\n2. 該当発言があれば必ず「カスハラ」と判定\\n3. 該当発言がない場合のみ、クレームまたは通常会話と判定\\n## [A] カスハラの定義\\n① 従業員に苦痛を与える迷惑行為\\n② 人格・尊厳を侵害し安全を損なう行為\\n## [B] カスハラのタイプ\\n1. 精神的攻撃型:暴言・脅迫・人格否定\\n2. 過剰要求型:制度外の要求\\n3. 差別型:差別的発言\\n4. 身体的攻撃型:物理的危害の示唆\\n## カスハラの明確な事例\\n### 精神的攻撃型\\n* 「あなたはバカなの?」\\n* 「無能だね」\\n* 「あなたの名前と顔を覚えておくからね」\\n* 「あなた個人に責任を取らせる」\\n### 過剰要求型\\n* 「24時間以内に対応しないと訴える」\\n* 「規約は関係ない、今すぐ特別対応しろ」\\n### 差別型\\n* 「男性スタッフに代われ」\\n* 「若い人より年配の人に代わってほしい」\\n### 身体的攻撃型\\n* 「殴るぞ」\\n* 「あなたの住所を調べるからな」\\n* 「SNSに顔写真を晒すぞ」\\n## [C] クレームの判定基準\\nクレームとは、製品・サービスへの不満や改善要望で、感情的表現を含むことがあっても社会通念内であり、業務内容に対する批判や問題指摘を含むものです。 \\n\\nクレームと判定する基準:\\n- 製品・サービスの具体的な問題点への言及\\n- 改善や対応を求める明確な意思表示\\n- 具体的な商品不良、不具合の指摘\\n- 交換、返品、修理などの改善要求\\n- サービスの品質に対する明確な不満表明\\n\\n※単なる一般的な問い合わせや軽微な質問は「通常会話」とするが、実質的な不満や改善要求がある場合はクレームとして扱う\\n## [D] 分析タスク\\n1. 会話を判定:\\n- タイプ[B]のいずれか\\n- クレーム\\n- なし\\n2. 判定に応じて記載:\\n- カスハラ:[E]の優先順位に基づき、最も深刻な単一のタイプのみ選択\\n  * 該当タイプ、発言引用、理由\\n- クレーム:発言引用、内容\\n- 通常会話:「なし」\\n3. 複数のカスハラタイプに該当する場合の判定方法:\\n- [E]の優先順位に従い、最上位の単一タイプのみを選択\\n- 例:身体的攻撃型と精神的攻撃型に該当する場合、「身体的攻撃型」のみ記載\\n## [E] 優先順位\\n身体的攻撃型 > 精神的攻撃型 > 差別型 > 過剰要求型\\n## [F] 出力フォーマット\\n1. 【判定結果】と【該当発言】は同じ行に必ず記載\\n2. 通話内容の要約(500文字以内)\\n3. 【判定結果】は必ず以下の形式で出力:\\n   - カスハラの場合:「【判定結果】:型名」\\n   - クレームの場合:「【判定結果】:クレーム」\\n   - 通常会話の場合:「【判定結果】:なし」\\n\\n【判定結果】:[B]のいずれかの型名のみ/クレーム/なし【該当発言】:\\n- 発言引用:「~~~~」/なし\\n- 理由/内容:~~~。※カスハラの場合:〇〇(軽度/中度/重度)\\n\\n【要約結果】:\\n- ~~~~\\n- ~~~~\\n※要約できない場合は「要約できません」\"\r\n   },\r\n    {\r\n      \"role\": \"user\",\r\n      \"content\": \"{VOICE_LOG.JSON_ESCAPE()}\"\r\n    }\r\n  ],\r\n  \"max_tokens\": 700,\r\n  \"temperature\": 0.7\r\n}",
      "request_header": "Authorization:Bearer XXXXXXXX\r\nContent-Type:application/json",
      "request_method": "POST",
      "request_url": "https://api.openai.com/v1/chat/completions",
      "response_variable_pattern": "/【判定結果】:(?P<CATEGORY>[\\s\\S]*?)(?=【該当発言】)【該当発言】:(?P<COM>[\\s\\S]*?)(?=【要約結果】)【要約結果】:(?P<SUM>[\\s\\S]*?)(?=\",\"refusal\"|$)/",
      "result_entry_information_label": null,
      "result_entry_information_text": null,
      "result_entry_prompt_text": null,
      "result_entry_summary_text": null,
      "result_entry_type": null,
      "retry_interval_milli_sec": 3000,
      "timeout_num": 60,
      "memo": null
    },
    {
      "api_event_type": 5000,
      "api_link_type": 2,
      "error_response_status_code_pattern": null,
      "execution_order": 2,
      "max_retry_count": 3,
      "precondition_pattern": "/Contact|Lead/",
      "precondition_target_text": "{RESPONSE_TYPE}",
      "request_body": "{\r\n\t\"WhoId\": \"{RESPONSE_NOID}\",\r\n\t\"Subject\": \"{STARTTIME}に通話(着信)\",\r\n\t\"Description\": \"{VOICE_LOG.JSON_ESCAPE()}\\r\\n【判定結果】:{RESPONSE_CATEGORY}\\r\\n【該当発言】:{RESPONSE_COM}\\r\\n【要約結果】:{RESPONSE_SUM}\",\r\n\t\"CallDisposition\": \"■発信電話番号:{TEL}■着信電話番号:{CALLED}■着信アカウント名:{AGENT_NAME}\\\\r\\\\n■着信内線番号:{AGENT_EXTEN_NO}■通話開始時間:{START_TIME}\\\\r\\\\n■通話終了時間:{END_TIME}■通話時間:{CALL_SEC}\",\"Conversation_Category__c\": \"{RESPONSE_CATEGORY}\",\"CallAudioUrl__c\":\"https://{HOST}:8000/monitor_link/{ID}\"\r\n}",
      "request_header": "Content-Type: application/json",
      "request_method": "POST",
      "request_url": "{OAUTH_INSTANCE_URL}/services/data/v45.0/sobjects/Task/",
      "response_variable_pattern": null,
      "result_entry_information_label": null,
      "result_entry_information_text": null,
      "result_entry_prompt_text": null,
      "result_entry_summary_text": null,
      "result_entry_type": null,
      "retry_interval_milli_sec": 3000,
      "timeout_num": 10,
      "memo": null
    },
    {
      "api_event_type": 5000,
      "api_link_type": 2,
      "error_response_status_code_pattern": null,
      "execution_order": 3,
      "max_retry_count": 3,
      "precondition_pattern": "/Account/",
      "precondition_target_text": "{RESPONSE_TYPE}",
      "request_body": "{\r\n\t\"WhatId\": \"{RESPONSE_NOID}\",\r\n\t\"Subject\": \"{STARTTIME}に通話(着信)\",\r\n\t\"Description\": \"{VOICE_LOG.JSON_ESCAPE()}\\r\\n【判定結果】:{RESPONSE_CATEGORY}\\r\\n【該当発言】:{RESPONSE_COM}\\r\\n【要約結果】:{RESPONSE_SUM}\",\r\n\t\"CallDisposition\": \"■発信電話番号:{TEL}■着信電話番号:{CALLED}■着信アカウント名:{AGENT_NAME}\\\\r\\\\n■着信内線番号:{AGENT_EXTEN_NO}■通話開始時間:{START_TIME}\\\\r\\\\n■通話終了時間:{END_TIME}■通話時間:{CALL_SEC}\",\"Conversation_Category__c\": \"{RESPONSE_CATEGORY}\",\"CallAudioUrl__c\":\"https://{HOST}:8000/monitor_link/{ID}\"\r\n}",
      "request_header": "Content-Type: application/json",
      "request_method": "POST",
      "request_url": "{OAUTH_INSTANCE_URL}/services/data/v45.0/sobjects/Task/",
      "response_variable_pattern": null,
      "result_entry_information_label": null,
      "result_entry_information_text": null,
      "result_entry_prompt_text": null,
      "result_entry_summary_text": null,
      "result_entry_type": null,
      "retry_interval_milli_sec": 3000,
      "timeout_num": 10,
      "memo": null
    },
    {
      "api_event_type": 5000,
      "api_link_type": 2,
      "error_response_status_code_pattern": null,
      "execution_order": 4,
      "max_retry_count": 3,
      "precondition_pattern": "/^(?!.*(Contact|Lead|Account)).*$/",
      "precondition_target_text": "{RESPONSE_TYPE}",
      "request_body": "{\r\n\t\"WhoId\": \"XXXXXXXX\",\r\n\t\"Subject\": \"{STARTTIME}に通話(着信)\",\r\n\t\"Description\": \"{VOICE_LOG.JSON_ESCAPE()}\\r\\n【判定結果】:{RESPONSE_CATEGORY}\\r\\n【該当発言】:{RESPONSE_COM}\\r\\n【要約結果】:{RESPONSE_SUM}\",\r\n\t\"CallDisposition\": \"■発信電話番号:{TEL}■着信電話番号:{CALLED}■着信アカウント名:{AGENT_NAME}\\\\r\\\\n■着信内線番号:{AGENT_EXTEN_NO}■通話開始時間:{START_TIME}\\\\r\\\\n■通話終了時間:{END_TIME}■通話時間:{CALL_SEC}\",\"Conversation_Category__c\": \"{RESPONSE_CATEGORY}\",\"CallAudioUrl__c\":\"https://{HOST}:8000/monitor_link/{ID}\"\r\n}",
      "request_header": "Content-Type: application/json",
      "request_method": "POST",
      "request_url": "{OAUTH_INSTANCE_URL}/services/data/v45.0/sobjects/Task/",
      "response_variable_pattern": null,
      "result_entry_information_label": null,
      "result_entry_information_text": null,
      "result_entry_prompt_text": null,
      "result_entry_summary_text": null,
      "result_entry_type": null,
      "retry_interval_milli_sec": 3000,
      "timeout_num": 10,
      "memo": null
    }
  ]
}


Ⅱ コールアクションテンプレートをインポート

BIZTEL管理画面より「連携オプション>コールアクション連携」をクリックして、画面右上の「インポート」をクリックします。詳細はこちらの「6.2 コールアクションのインポート」をご参照ください。

Ⅲ コールアクション連携を編集
作成されたコールアクション連携の「API連携」タブをクリックしてください。各設定情報を編集していきます。

【必須で修正する箇所(合計6件)】

・!マークが出ている設定は、OAuthアカウントが未設定のため、「OAuthアカウント設定」で登録したSalesforce用のOAuthアカウントを選択します(計4件)。

・以下のイベントURL内「XXXXXXXX」で表示されている箇所は、適切な値に書き換えます(計2件)。
<録音完了/音声認識連携完了>実行順1:OpenAI APIキー
<録音完了/音声認識連携完了>実行順4:紐づけ先が特定できない時のレコードID

(録音完了/音声認識連携完了イベント 実行順1:OpenAI APIキー設定例)

(録音完了/音声認識連携完了イベント 実行順4:レコードID設定例)
下の画像の赤線部分には、発信番号から履歴を紐づけるレコードを特定することができなかった場合に、紐づけるリードのレコードIDを記載します。

※レコードIDの確認方法(以下の赤線部分がレコードIDです)

Ⅳ お客さまの業務に応じて、OpenAI APIへの指示を調整
<録音完了/音声認識連携完了>実行順1にて、OpenAI APIへ要約やカスハラ判定の指示をしているので、必要に応じて修正してください。
なお、本プロンプトのカスハラ事例・判断基準などは、あくまでも参考情報としてご活用ください。

▼OpenAI APIへの指示内容(APIリクエストボディのcontentを整形して表示したもの)

# 通話内容をカスタマーハラスメント定義に基づき判定します。

## 【最優先判定ルール】

  1. 会話全体から[A][B]に該当する発言を探す
  2. 該当発言があれば必ず「カスハラ」と判定
  3. 該当発言がない場合のみ、クレームまたは通常会話と判定

## [A] カスハラの定義(必要に応じてカスタマイズ)

① 従業員に苦痛を与える迷惑行為
② 人格・尊厳を侵害し安全を損なう行為

## [B] カスハラのタイプ ※業界特性に応じて調整可能ですが、この指示内容(白枠内部分)の下に記載の注意が必要!

  1. 精神的攻撃型:暴言・脅迫・人格否定
  2. 過剰要求型:制度外の要求
  3. 差別型:差別的発言
  4. 身体的攻撃型:物理的危害の示唆

## カスハラの明確な事例(必要に応じてカスタマイズ) 

### 精神的攻撃型

* 「あなたはバカなの?」
* 「無能だね」
* 「あなたの名前と顔を覚えておくからね」
* 「あなた個人に責任を取らせる」

### 過剰要求型

* 「24時間以内に対応しないと訴える」
* 「規約は関係ない、今すぐ特別対応しろ」

### 差別型

* 「男性スタッフに代われ」
* 「若い人より年配の人に代わってほしい」

### 身体的攻撃型

* 「殴るぞ」
* 「あなたの住所を調べるからな」
* 「SNSに顔写真を晒すぞ」

## [C] クレームの判定基準(業界特性に応じて調整可能)

クレームとは、製品・サービスへの不満や改善要望で、感情的表現を含むことがあっても社会通念内であり、業務内容に対する批判や問題指摘を含むものです。 

クレームと判定する基準:

- 製品・サービスの具体的な問題点への言及
- 改善や対応を求める明確な意思表示
- 具体的な商品不良、不具合の指摘
- 交換、返品、修理などの改善要求
- サービスの品質に対する明確な不満表明

※単なる一般的な問い合わせや軽微な質問は「通常会話」とするが、実質的な不満や改善要求がある場合はクレームとして扱う

## [D] 分析タスク

  1. 会話を判定:

- タイプ[B]のいずれか
- クレーム
- なし

  1. 判定に応じて記載:

- カスハラ:[E]の優先順位に基づき、最も深刻な単一のタイプのみ選択
 * 該当タイプ、発言引用、理由
- クレーム:発言引用、内容
- 通常会話:「なし」

  1. 複数のカスハラタイプに該当する場合の判定方法:

- [E]の優先順位に従い、最上位の単一タイプのみを選択
- 例:身体的攻撃型と精神的攻撃型に該当する場合、「身体的攻撃型」のみ記載

## [E] 優先順位(必要に応じて順序を調整可能)

身体的攻撃型 > 精神的攻撃型 > 差別型 > 過剰要求型

## [F] 出力フォーマット ※必要に応じて調整可能ですが、この指示内容(白枠内部分)の下に記載の注意が必要!

  1. 【判定結果】と【該当発言】は同じ行に必ず記載
  2. 通話内容の要約(500文字以内)
  3. 【判定結果】は必ず以下の形式で出力:

  - カスハラの場合:「【判定結果】:型名」
  - クレームの場合:「【判定結果】:クレーム」
  - 通常会話の場合:「【判定結果】:なし」

【判定結果】:[B]のいずれかの型名のみ/クレーム/なし【該当発言】:

- 発言引用:「~~~~」/なし
- 理由/内容:~~~。※カスハラの場合:〇〇(軽度/中度/重度)

【要約結果】:

- ~~~~
- ~~~~

※要約できない場合は「要約できません」


※プロンプト指示を変更する際の注意点※

・[B]のカスハラタイプ内容を更新する場合
上述の『Salesforce事前準備 2.活動オブジェクトにカスタム項目「会話分類」「通話録音再生」を新規作成』の値の設定も併せて変更してください。

・[F]の出力フォーマットを更新する場合
変数抽出パターンの正規表現も変更する必要がありますのでご注意ください。

上記のプロンプト指示をAPIのリクエストボディにそのまま貼り付けるとJSONエラーが発生します。APIで使用する場合は、改行や特殊文字はエスケープ処理が必要です。手動で処理するのは大変なので、生成AIにプロンプト指示の文字列を渡して「APIに情報を渡したいので、JSONエラーにならないようにエスケープ処理してください」というとエスケープ済みの文字列を表示してくれます。


Ⅴ 連携対象とする電話番号を選択
「連携対象」タブをクリックして、連携対象とする電話番号に✓を設定してください。

Ⅵ コールアクションの設定を有効化
「基本情報」タブをクリックして、ステータス項目を無効から有効に変更してください。

結果

Salesforceに通話内容を連携した結果、このようになりました。

<カスハラと判定された場合>

<クレームと判定された場合>

<通常会話と判定された場合>

振り返り・まとめ

今回は「コールアクション」と「生成AI」を活用したカスタマー・ハラスメントの自動判定を実践しました。

適切なプロンプト設計をすることで、高い精度の判定が実現できることがわかりました。現場の声を取り入れた試行錯誤を重ねることで、より高い精度になることが期待できます。まずは、サンプル通りに動くことを確認し、その後、皆さまの運用に合わせたプロンプトにカスタマイズしてみてください。

管理者はSalesforceのダッシュボード・レポート機能から、カスハラやクレームの発生状況を簡単に確認できるようになります。「いつ」「どのような」カスハラが発生しているのかを把握しながら、効果的な対策の検討ができるでしょう。

カスハラ対策は、働きやすい職場づくりと顧客満足度の両立に貢献できます。具体的には、以下のような効果につながります。

①働きやすい職場づくり
・カスハラをいち早く見つけて、スタッフの心の負担を軽減
・「いつ」「どの部署」でカスハラが多いかを把握し、サポート体制を整備
・カスハラタイプごとに適切な対応フローを構築し、SV・管理者などへのスムーズなエスカレーションを実現

②顧客満足度の向上
・お客さまの不満や要望を一元管理して、商品・サービスの改善に役立てる
・過去のカスハラ事例の分析から、トラブルが起きそうな場面を予測して先手を打ち、事前に回避できるようにする
・応対マナーが原因でカスハラを誘発してしまった事例を参考に、説明の仕方や相手に与える印象などを改善

本記事が、皆さまのカスハラ対策推進のお役に立てば幸いです。

編集後記

今回は、「生成AI」とBIZTELの「API連携コールアクション」「音声認識連携」機能を活用して、通話内容をもとにカスハラを自動判定し、Salesforceへ連携する仕組みを実践しました。

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

簡単に実現できるよう、設定方法も交えながらお伝えしますので、読者のみなさまもぜひチャレンジしてみてください。
現在、BIZTELをご利用中のお客さまも、「こんなことがしたい」というご希望がございましたら、BIZTELサービス担当までご相談ください!

]]>
/blog/2025/05/28/16323/feed/ 0
【リリースノート】BIZTEL バージョン3.11.10 〜BIZTELの「AI連携」がAzure OpenAI Serviceに対応〜 /blog/2025/03/14/15800/ /blog/2025/03/14/15800/#respond Fri, 14 Mar 2025 04:00:11 +0000 /?p=15800 BIZTELでは機能の追加や改善を目的としたメジャーバージョンアップと、既知の不具合改修をメインとしたマイナーバージョンアップを提供しています。 本記事では、2025年3月に提供開始した最新バージョン3.11.10で追加 […]]]>

BIZTELでは機能の追加や改善を目的としたメジャーバージョンアップと、既知の不具合改修をメインとしたマイナーバージョンアップを提供しています。

本記事では、2025年3月に提供開始した最新バージョン3.11.10で追加された機能をご紹介します。

AI連携のAzure OpenAI Service対応

BIZTELでは、音声認識機能を利用してテキスト化された通話内容を、OpenAI社が提供するOpenAI APIに連携し、評価・要約などがノーコードで簡単にできる「AI連携」を提供しています。

今回のアップデートでは、本機能の連携先に「Azure OpenAI Service」を追加します。
これにより、セキュリティに懸念があったコールセンターでも、セキュアな生成AI活用が実現するため、業務効率化の一助として利用することができます。

その他の機能追加

⚫︎録音方式変更(2ch録音)

BIZTELの録音機能は、モノラル録音ファイルの生成が標準となっていますが、今回追加した「録音方式変更(2ch録音)」を利用すれば、L /R チャンネルが分かれた1つのステレオ録音ファイルの生成に切り替えることができます。

これにより、録音ファイルを利用した音声テキスト化や感情分析といった活用の幅が広がります。

]]>
/blog/2025/03/14/15800/feed/ 0