Amazon Connect Customerで会話から任意の情報を生成AIで自動抽出し、ACW中に確認できるようになりました
はじめに
Amazon Connect Customerで、顧客との会話から任意の情報を生成AIで抽出できるようになりました。
公式ドキュメントに、音声およびチャットの情報抽出機能を設定する手順が追加されています。
また、会話分析ルールのイベントソースとして、ACW(After Contact Work、アフターコンタクトワーク)中に情報抽出を実行できる「アフターコールワーク分析が利用可能」も設定できるようになっていました。
情報抽出機能では、主に以下の2つを設定します。
- 情報の抽出定義を作成し、会話から何を抽出するかを定義する
- 会話分析ルールを作成し、どのコンタクトで抽出を実行するかを定義する
今回、音声通話から顧客の解約理由を抽出する設定を行い、ACW中に以下の結果が表示されることを確認しました。
解約理由:月額料金が高くなったため
さらに、抽出結果がContact LensのS3分析結果ファイルにも含まれることを確認しました。
本記事では、情報抽出機能の設定方法、ACW中の表示、Step-by-Step Guideとの組み合わせ、S3分析結果ファイルの内容を紹介します。
何ができるようになったのか
これまでも、Contact Lensの生成AIによるコンタクト後要約を利用して、会話全体の概要を確認できました。
今回の情報抽出機能では、要約とは別に、業務上必要な情報をキーと値の形式で取得できます。
例えば、解約受付業務では以下のような項目が考えられます。
解約理由:月額料金の値上げ
対象サービス:スタンダードプラン
引き留め結果:提案を拒否
競合サービス:他社サービス
フォローアップ:不要
要約と情報抽出の用途は異なります。
| 機能 | 主な用途 |
|---|---|
| コンタクト後要約 | 会話全体の経緯や結果を文章で確認する |
| 情報抽出 | 指定した業務項目をキーと値の形式で取得する |
公式ドキュメントでは、会話で述べられた情報をそのまま抽出する例として、顧客が名乗った名前、請求書番号、予約IDが紹介されています。
また、会話から判断した情報を抽出する例として、以下が紹介されています。
- 問い合わせ理由
- エージェントが実施した対応
- 顧客に案内した次のアクション
抽出結果は、同じルールに追加した以下のアクションへ変数として挿入することもできます。
- Eメールを送信
- タスクを作成
- ケースを作成
- 通知を送信
例えば、抽出した問い合わせ理由をAmazon Connect Customer Casesのフィールドへ設定する構成が可能です。
検証環境
今回の検証環境は以下です。
| 項目 | 内容 |
|---|---|
| リージョン | 東京リージョン(ap-northeast-1) |
| チャネル | 音声 |
| 会話分析 | Contact Lensのリアルタイム音声分析 |
| 抽出対象 | 顧客の解約理由 |
| 抽出定義名 | cancellation_reason |
| 表示ラベル | 解約理由 |
| ルールイベント | アフターコールワーク分析が利用可能 |
| ルール条件 | 指定したキューに一致 |
ACW中に入力フォームを表示するため、AWSが提供するSample after contact work flowも使用しました。
ただし、Step-by-Step Guideは情報抽出機能の必須要件ではありません。抽出結果をContact Control Panel(CCP)で確認するだけであれば、Step-by-Step Guideの設定は省略できます。
設定
セキュリティプロファイルへ権限を追加する
情報抽出機能には、以下のセキュリティプロファイル権限が追加されています。
| 画面上の権限 | API上の権限 | 用途 |
|---|---|---|
| 情報の抽出 - 定義 | InformationExtraction.Definitions.Createなど |
情報の抽出定義を作成、表示、編集、削除する |
| 情報の抽出 - 結果 - 表示 | InformationExtraction.Results.View |
CCPやコンタクト詳細画面で抽出結果を表示する |
情報の抽出定義を管理するユーザーには、必要な操作に応じて「情報の抽出 - 定義」の権限を付与します。
エージェントがACW中に抽出結果を確認するには、「情報の抽出 - 結果 - 表示」の権限が必要です。

セキュリティプロファイルに追加された情報抽出の権限
セキュリティプロファイル権限の一覧は、以下の公式ドキュメントで確認できます。
情報の抽出定義を作成する
Amazon Connect Customer管理画面で、ルールを開きます。
情報の抽出タブを選択すると、情報の抽出定義を管理できます。

ルール画面に追加された情報の抽出タブ
情報の抽出定義を作成を選択し、抽出する情報を設定します。
今回、最初は名前に日本語の解約理由を指定しましたが、保存時にエラーになりました。

名前に日本語を指定したところ、今回の検証環境では保存時にエラーになった
名前を半角英数字とアンダースコアで構成したcancellation_reasonに変更すると作成できました。
今回確認した範囲では、日本語を指定したことがエラーの直接的な原因であると判断できる詳細なエラーメッセージは表示されませんでした。そのため、すべての環境で日本語を使用できないとまでは断定できませんが、内部名には半角英数字を利用するのが扱いやすそうです。
日本語は、エージェントに表示される表示ラベル - オプションへ指定しました。
設定内容は以下です。
| 項目 | 設定値 |
|---|---|
| 名前 | cancellation_reason |
| 表示ラベル - オプション | 解約理由 |
| プロンプトのヒント | 顧客が商品またはサービスの解約を希望している理由を抽出してください。 |
| 情報が見つからない場合 | 代替語に置き換え |
| 代替語 | 確認できませんでした |

解約理由を抽出する定義の設定例
名前は抽出処理の入力にも利用されます。
一方、表示ラベル - オプションは画面上の表示に利用され、抽出処理の入力には利用されません。
公式ドキュメントでは、プロンプトのヒントを複雑にしすぎず、短く説明的な内容にするよう案内されています。何を取得したいかが分かる内容に留めるのがよさそうです。
情報が見つからない場合は、以下から選択できます。
| 設定 | 動作 |
|---|---|
| 省略 | 抽出結果に項目を表示しない |
| 代替語に置き換え | 指定した固定値を表示する |
検証時は、抽出処理が実行されたものの対象の情報を検出できなかったケースを判別しやすくするため、確認できませんでしたなどの代替語を設定すると確認しやすいです。
会話分析ルールを作成する
情報の抽出定義を作成しただけでは、抽出処理は実行されません。
ルールから会話分析ルールを作成し、抽出するタイミングと対象を指定します。
今回の設定は以下です。
| 項目 | 設定値 |
|---|---|
| イベントソース | アフターコールワーク分析が利用可能 |
| 条件 | キューがcm-hiraiに一致 |
| コンタクトカテゴリ | CancellationReasonExtraction |
| アクション | 情報を抽出 |
| 情報の抽出定義 | cancellation_reason |
まず、イベントソースにアフターコールワーク分析が利用可能を指定します。

アフターコールワーク分析をイベントソースに指定し、対象キューを設定した画面
アフターコールワーク分析が利用可能を選択した場合、情報抽出はACW中に処理され、結果はCCPの「抽出された情報」ウィジェットとコンタクト詳細画面に表示されます。
今回の検証では、特定のキューで処理された通話を対象にしました。
多くのコンタクトを抽出対象にする場合は、キーワードではなくエージェントまたはキューを条件にする方法が公式ドキュメントで案内されています。
続いて、アクションに情報を抽出を追加し、先ほど作成したcancellation_reasonを選択します。
今回の画面ではコンタクトカテゴリ名の入力も必要だったため、CancellationReasonExtractionを設定しました。

情報を抽出アクションにcancellation_reasonを指定した画面
最後にルールを保存します。
情報抽出で選択できる主なイベントソースと処理タイミングは以下です。
| 画面上のイベントソース | 処理タイミング | 結果の表示先 |
|---|---|---|
| アフターコールワーク分析が利用可能 | ACW中 | CCP、コンタクト詳細画面 |
| チャット後の作業分析が利用可能 | ACW中 | コンタクト詳細画面 |
| 通話後の分析が利用可能 | コンタクト終了後かつACW完了後 | コンタクト検索、コンタクト詳細画面 |
| チャット後分析が利用可能 | コンタクト終了後かつACW完了後 | コンタクト検索、コンタクト詳細画面 |
ACW中にエージェントへ結果を表示したい場合は、アフターコールワーク分析が利用可能を選択します。
通話後の分析が利用可能を選択した場合は、コンタクトが閉じられ、ACWが完了した後に処理されるため、ACW中のCCPには抽出結果が表示されません。
着信フローを設定する
着信フローでは、記録分析と処理動作を設定ブロックでContact Lensの会話分析を有効化します。
今回の音声フローでは、以下を有効化しました。
- 顧客とエージェントの通話録音
- リアルタイム音声分析
- 日本語
ja-JP - コンタクト後要約
コンタクト後要約と情報抽出は別の機能です。ここでは後ほど比較できるように、両方を有効化して検証します。
今回の着信フローは以下のように設定しました。

会話分析とACW用イベントフローを設定した着信フロー
このフローでは、音声とチャットを判定した後、それぞれのチャネルに対応する会話分析を有効化しています。
その後、作業キューを設定して、コンタクトをキューへ転送しています。
画面内のイベントフローの設定ブロックは、次に説明するACW用Step-by-Step Guideを起動するための設定です。
Step-by-Step Guideを使用しない場合は、イベントフローの設定ブロックを削除できます。情報抽出に必要な会話分析の設定や、エージェントへ接続するためのキュー設定、キュー転送は残します。
ACW用Step-by-Step Guideを設定する
今回の検証では、AWSが提供するACW用Step-by-Step Guideも設定しました。
Step-by-Step Guideは、エージェントがACW状態に入ったときに、対応分類、要約、フォローアップ、メモなどを入力する画面をエージェントワークスペースに表示する機能です。
この設定は情報抽出機能の必須設定ではありません。CCPに表示される抽出結果だけを利用する場合は、本章の設定を省略できます。
Sample after contact work flowをインポートする
以下の公式ドキュメントに掲載されているフローJSONをコピーし、Amazon Connect Customerへインポートします。
インポートしたフローには、AWS管理のAfter Contact Workビューを表示するビューを表示ブロックが含まれています。

インポートしたSample after contact work flow
インポート後、ビューを表示ブロックを開き、ビューのドロップダウンからAWS管理のAfter Contact Workを選択し直します。
公式ドキュメントでも、インポート時にビュー名が表示されている場合でも、ドロップダウンから明示的に選択するよう案内されています。
設定後、フローを保存して発行します。
着信フローからACWフローを参照する
着信フローにはイベントフローの設定ブロックを追加し、先ほどインポートしたSample after contact work flowを指定します。
今回のフローでは、コンタクトをキューへ転送する前にイベントフローの設定ブロックを配置しました。
記録分析と処理動作を設定
↓
イベントフローの設定
↓
プロンプトの再生
↓
作業キューの設定
↓
キューへ転送
これにより、この着信フローを通じて処理されたコンタクトでは、エージェントがACW状態に入るとAfter Contact Workビューが自動的に起動します。
なお、サンプルフローには以下の固定値が含まれています。
Jane Doe
(880) 953-0129
Support
Billing inquiries
Very Satisfied
During this contact, the customer...
本番で利用する場合は、固定値を削除するか、実際のコンタクト属性などに置き換える必要があります。
動作確認
以下の内容でテスト通話を行いました。
Customer:
月額料金が高くなったため、サービスを解約したいです。
Agent:
承知しました。解約対応いたします。ありがとうございました。
通話終了後、エージェントがACW状態に入ると、Contact Lensの要約と抽出された情報が表示されました。
要約
顧客は月額料金の値上げを理由にサービスの解約を希望した。
担当者は解約対応を承知し、解約手続きを実施した。
抽出された情報
解約理由:月額料金が高くなったため

ACW中に生成AIの要約と解約理由が表示された画面
要約は、Contact Lensの生成AIによるコンタクト後要約です。
一方、解約理由:月額料金が高くなったためは、今回作成したcancellation_reasonの情報抽出結果です。
| 表示内容 | 設定 |
|---|---|
| 要約 | 記録分析と処理動作を設定ブロックでコンタクト後要約を有効化 |
| 抽出された情報 | 情報の抽出定義と会話分析ルールを作成 |
どちらも生成AIを利用していますが、設定と用途は異なります。
コンタクト終了後は、コンタクト詳細画面でも同じ抽出結果を確認できました。

コンタクト詳細画面に表示された解約理由
抽出結果は、ACW中のCCPだけでなく、コンタクト終了後も確認できます。
Step-by-Step Guideへ入力した内容を確認する
After Contact Workビューでは、以下のような項目を入力できます。
- 対応分類
- 問い合わせ理由
- 顧客満足度
- フォローアップ要否
- 解決状況
- 修正後の要約
- コンタクトメモ
今回使用したSample after contact work flowでは、Submit時に入力内容が以下のコンタクト属性へ保存されます。
Category
Driver
Satisfaction
FollowUp
Resolved
ModifiedSummary
ContactNotes
コンタクト詳細画面では、ユーザー定義の属性として確認できました。

After Contact Workビューで入力した内容がコンタクト属性として保存された結果
Sample after contact work flowでは、ビューを表示ブロックから返された値を、コンタクト属性を設定ブロックで現在のコンタクトと関連コンタクトへ保存しています。
CCPに表示された抽出結果を確認し、Step-by-Step Guideの修正後の要約やコンタクトメモへ入力することもできます。
解約理由:月額料金が高くなったため
この方法では、生成AIが抽出した値をエージェントが確認してから、コンタクト属性として保存できます。
ただし、今回の検証では、CCPに表示された抽出結果がAfter Contact Workビューへ自動入力されるわけではありませんでした。エージェントが抽出結果を確認し、必要な入力欄へ転記する構成になります。
S3分析結果ファイルを確認する
Contact LensのS3分析結果ファイルを確認したところ、抽出結果は以下に含まれていました。
ConversationCharacteristics
.ExtractedInformation
.ExtractedInformation[]
関連部分のみを抜粋すると以下です。IDは例示用に置き換えています。
{
"ConversationCharacteristics": {
"ExtractedInformation": {
"ExtractedInformation": [
{
"AnalyticsMode": "RealTime",
"ExtractionDefinitionDisplayLabel": "解約理由",
"ExtractionDefinitionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ExtractionDefinitionName": "cancellation_reason",
"Values": [
{
"Content": "月額料金が高くなったため",
"PointsOfInterest": [
{
"BeginOffsetMillis": 2767,
"EndOffsetMillis": 6047
}
]
}
]
}
]
}
}
}
各項目の内容は以下です。
| JSONキー | 内容 |
|---|---|
AnalyticsMode |
情報抽出が実行された分析モード |
ExtractionDefinitionDisplayLabel |
エージェント画面に表示するラベル |
ExtractionDefinitionId |
情報の抽出定義を一意に識別するID |
ExtractionDefinitionName |
情報の抽出定義の内部名 |
Values[].Content |
抽出された値 |
PointsOfInterest |
抽出の根拠となった発言の位置 |
今回の例では、以下の値を取得できます。
ExtractionDefinitionName:cancellation_reason
Values[].Content:月額料金が高くなったため
CRMなどの外部システムと連携する場合は、表示ラベルではなくExtractionDefinitionNameを連携用のキーとして使用するのが扱いやすそうです。
表示ラベルは運用中に変更する可能性がありますが、内部名を固定しておけば、CRM側のフィールドとの対応を維持しやすくなります。
なお、Valuesは配列です。外部システムと連携する場合は、1つの抽出定義に複数の値が含まれるケースも考慮した実装にする必要があります。
CRM連携にも利用できる
ACW終了後にAmazon EventBridgeのCOMPLETEDイベントを受け取り、AWS LambdaでContact LensのS3分析結果ファイルを取得すれば、抽出結果をCRMへ転記できます。
ACW終了
↓
Amazon EventBridge
↓
AWS Lambda
↓
Contact LensのS3分析結果ファイルを取得
↓
ExtractedInformationを読み取る
↓
CRMを更新
COMPLETEDイベントは、該当する場合はACWを含め、コンタクトが完全に終了したことを示すイベントです。
これまでLambdaからAmazon Bedrockへトランスクリプトを送信し、CRM用の項目を生成していた場合、Bedrockの推論部分をAmazon Connect Customerの情報抽出機能へ置き換えられる可能性があります。
これにより、LambdaからAmazon Bedrockのモデルを呼び出す必要がなくなるため、そのBedrock呼び出しで発生していたモデル推論料金を削減できます。また、プロンプト管理、レスポンスの解析、エラー時の再試行といった実装も簡略化できます。
今回の検証では、DescribeContact APIのレスポンスに情報抽出結果は含まれていませんでした。そのため、今回確認した構成では、抽出結果をContact LensのS3分析結果ファイルから取得します。
一方、Step-by-Step Guideでエージェントが入力した内容はコンタクト属性として保存されるため、DescribeContact APIのContact.Attributesから取得できました。
まとめ
Amazon Connect Customerで、顧客との会話から任意の情報を生成AIで抽出できるようになりました。
今回の検証では、顧客の発言から解約理由を抽出し、ACW中のCCPとコンタクト詳細画面で確認できました。また、抽出結果はContact LensのS3分析結果ファイルにも含まれていました。
Step-by-Step Guideを組み合わせると、エージェントが抽出結果を確認し、要約やメモなどとあわせてコンタクト属性へ保存できます。
これまでAmazon EventBridge、AWS Lambda、Amazon Bedrockを組み合わせてCRM用の項目を生成していた場合、Amazon Connect Customerの情報抽出結果を利用することで、LambdaからAmazon Bedrockを呼び出す処理を削減できる可能性があります。これにより、連携処理を簡略化できるだけでなく、そのBedrock呼び出しで発生していたモデル推論料金も削減できます。









